Tuesday, November 10, 2009

 

Problème de RSA Host Key après régénération d'un VDS Amen

J'ai du régénerer mon Vds / Serveur Privé Amen :
- pour repartir avec une config propre parce que j'avais installé beaucoup de mauvaises choses en SSH :-(
- pour choisir l'OS FEDORA

Après régénération, tous les fichiers et dossiers de site, les domaines, les sous-domaines, les comptes sont effacés. Ce qui est normal. Il faut tout reconfigurer.
Nota : les noms de domaines (gérés dans l'Espace Revendeur d'Amen, ou chez un autre Registrar) qui pointent vers le VDS ne sont pas affectés car l'IP de mon VDS n'a pas changé.

Je m'aperçois avec joie que la version de php sur un Serveur Privé Amen est 5.2.6 en choisissant FEDORA comme OS  !!
En effet, j'avais choisis - au pif - CentOS, qui délivrait une version php 5.1.6. J'ai tenté - en vain - de mettre à jour cette version de php mais je n'ai jamais réussi à ajouter les dépendances python requises pour l'installation de YUM (voir : http://www.atomicorp.com/wiki/index.php/PHP). Je n'ai pas plus réussi à installer SMART (voir : http://shamsweb.50webs.com/faq.html#smart). Et les deux programmes ne s'entendaient plus sur le même serveur :-(

Pourquoi voulais-je cette version de php ? Pour faire tourner mon site en Symfony, pardi ! (Symfony requiert php 5.2.4 ou higher)

++++++++++++++++

Mon Vds régénéré, je me connecte en ssh.
--> message d'erreur :
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
5e:c7:01:2d:f3:91:04:32:02:09:25:df:cd:32:c1:88.
Please contact your system administrator.
Add correct host key in /Users/flho/.ssh/known_hosts to get rid of this message.
Offending key in /Users/flho/.ssh/known_hosts:5
RSA host key for has changed and you have requested strict checking.
Host key verification failed.
[L’opération a été arrêté - code d’arrêt 255]

En fait, c'est normal : Mon Mac a conservé une clé RSA de mon Vds pour le reconnaître. Comme le Vds a été régénéré, il possède une NOUVELLE clé RSA pour la MËME IP ! Donc, mon Mac n'est pas content ;-)

Pour m'en sortir, j'ai lu l'excellent Post : http://www.commentcamarche.net/forum/affich-3081643-pb-connexion-ssh

J'ai donc ouvert le Terminal de mon Mac pour m'y connecter en administrateur (rappel : à mon Mac, pas à mon Vds)
su
mon password puisqu'on me le demande
J'affiche avec "vi" le fichier indiqué dans le message d'erreur (nota : "flho" est mon nom d'utilisateur sur mon Mac)
vi /Users/flho/.ssh/known_hosts
--> le contenu du fichier s'affiche.
a (je passe en mode "insert" pour modifier)
 je localise la ligne : elle commence par l'IP de mon Vds. Je place mon curseur sur cette ligne
(je retourne en mode "command")
dd (supprime la ligne)
:w (enregistre le fichier)
:x (quitte le fichier)

Je me reconnecte en SSH à mon VDS. J'ai droit au message du premier jour :

The authenticity of host ' ( )' can't be established.
RSA key fingerprint is .
Are you sure you want to continue connecting (yes/no)?

Je fais "yes" et ça marche !


Sunday, November 8, 2009

 

Installation de Symfony sur un Serveur Privé Amen : modifier le DocumentRoot

Point de départ : le site tourne en local
J'ai généré en local une application Symfony.
Cette appli symfony est donc constitué des dossiers suivants :
/apps
/cache
/config
/data
/doc
/lib
/log
/plugins
/test
/web
/symfony (qui est un fichier et non un dossier)

Toujours en local, j'ai configuré le vhost de mon apache 2 pour faire tourner mon appli en local à l'URL :
http://dev.toto.com

Lorsque je tape cette url, j'affiche le fichier index.php de mon dossier /web, c'est-à-dire le fichier /web/index.php

Ok. Maintenant je voudrais placer le site toto sur le web, donc chez un hébergeur. J'ai choisi un Serveur Privé chez Amen, serveur qui permet d'héberger plusieurs domaine.

Déploiement sur un serveur privé Amen :
Mon objectif est donc de voir ma page d'index à l'URL : http://www.toto.com
Grâce à Plesk, je crée un client "Client_toto" .
Je sélectionne ce client et je sélectionne "domaines".
Dans la page "domaines", je fais "créer un domaine" que je nomme toto.com.

++++++

A ce stade, j'ai bien un domaine toto.com reconnu par les serveurs DNS de mon VDS (= Serveur Privé Amen) mais quand je saisis : http: //www.toto.com, j'ai un message qui me dit que le nom de domaine n'existe pas ???
C'est normal : je ne suis pas encore propriétaire de ce domaine toto.com sur la toile.
Deux solutions :
1. J'achète le nom de domaine toto.com chez Amen et je demande que ce nom soit redirigé vers mon VDS (par un menu déroulant). Après propagation des DNS sur le réseau (quelques heures - pour mon poste -puisque l'on reste chez Amen), je tape http://www.toto.com et je vois ma page d'index ou la page par défaut d'un domaine Plesk (si je n'ai rien déposé sur mon serveur)

2. j'achète le nom de domaine toto.com chez un autre registrar et je demande que ce nom soit traité par les serveurs DNS de mon Vds, c'est-à-dire : j'indique non pas un nom de serveur DNS mais l'IP de mon serveur Vds.
Puis j'attends la propagation des DNS (qui peut être un peu plus longue puisqu'on n'est plus chez Amen)

++++++

A ce stade, j'ai créé mais rien déposé !
Je dois donc recopier par ftp TOUT mon site en local dans le repertoire /httpdocs de mon domaine toto.com

Pour un site "normal", no souci : je copie et veille à ce qu'il y ait une page qui s'appelle index.php, c'est la page d'entrée de mon site (on peut virer les dossiers et fichiers générés par Plesk dans ce dossier /httpdocs. j'ai personnellement laissé les dossiers "plesk_stat" et "picture_library" en nonobstant que cela serait utile pour afficher les futurs stats de mon site toto.com. On verra ...)
Ma page index est donc bien placée ainsi : /httpdocs/index.php

Pour un site avec framework (Symfony en ce qui me concerne), je dois modifier le Doc Root. En effet :
- j'ai transféré tous les dossiers (sauf "cache" et "log") dans httpdocs
- ma page d'index de mon site Symfony est donc placée ainsi : /httpdocs/web/index.php

Donc : on ne voit pas la page index de mon appli Symfony !!

Modification du DocumentRoot sur un serveur web : est-ce possible par Plesk ?
J'ai contacté le support technique d'Amen car je ne voyais pas la fonction/le bouton dans Plesk qui permettait de redefinir un autre dossier racine web, ce qui m'aurait permis de redefinir le dossier /httpdocs/web comme doc root , à la place de /httpdocs et l'affaire était faite !

Réponse du Support Technique (texto) :
- "En tant qu'administrateur, vous pouvez modifier votre serveur comme bon vous semble.
Il n'y a pas de moyen simplifié dans plesk de changer l'arborescence de votre hébergement et en plaçant simplement votre fichier index.php dans httpdocs, vous pourrez le visualiser automatiquement à l'(ouverture du site (supprimer index.html ou le renommer au préalable).
Traduction :
- en plaçant index.php à la racine de /httpdocs, on peut visualiser l'index à l'ouverture du site. --> ça, on l'avait un peu noté ;-)
- vous êtes censés vous en sortir sans notre aide --> merci!

+++++++++++++++
Que propose de mieux la concurrence ?
Evidemment, lorsque l'on commande un Serveur, c'est que l'on est censé savoir l'administrer ... Les Supports Techniques sont-ils aussi intransigeants dans la concurrence ?

> Premier exemple : hostingRails
Personnellement, ma meilleure expérience de support technique est américaine : http://www.hostingrails.com/

J'ai du acheter l'année dernière un hébergement pour une application Ruby on Rails (http://www.leportaildurecrutement.com ) et je n'ai pas trouvé d'hébergement mature en RoR en France. Hostingrails a une FAQ vraiment utilisable (ahem... on ne peut pas en dire autant d'Amen) et le Support Technique est vraiment rapide et pertinent. Certains interlocuteurs m'ont même lancé des commandes SSH sur mon serveur et modifié mon fichier de config "pour que ça marche". On sent bien que leur objectif est que le site hébergé tourne (ce qui peut paraître une vérité première ...) !!
- Si votre demande est saugrenue ou déjà traitée, il vous envoie le lien directe de la question traitée en FAQ ou en forum
- Si votre demande est plus perso, il fait une réponse plus personnalisée
- Si votre demande est délicate ( à expliquer ou à mettre en oeuvre), il attaque à la ligne de commande ou modifie un fichier de config.

J'ai, à leur contact, appris la différence entre faire tourner une appli RoR en fastCGI ou sur une instance Mongrel.


> Second exemple : Aptana
Ma précédente appli , développée cette fois avec le framework PHP Symfony, a été hébergé chez un autre américain : Cloud. Pour ceux qui travaillent avec l'excellent IDE Aptana (http://www.aptana.org), Aptana propose de rester sur la même interface de développement et d'utiliser leur service payant d'hébergement : Cloud. La synchronisation des fichiers se fait alors avec une facilité déconcertante !! Et en bonus, il y a LE fameux bouton "change Doc Root" pour déterminer /httpdocs/web comme répertoire racine (et non pas /httpdocs). En un clic, votre appli Symfony tourne !!

Le Support Technique, néanmoins, m'a répondu (justement) une seule fois sur mes deux demandes ...

Pourquoi ne pas continuer à héberger chez eux ?
Pour une raison toute simple : Google référence comme entreprise française les sites hébergées sur une IP française. Si la société dont vous créer le site est Française, il vaut mieux l'héberger avec une IP Française (je dis bien une IP française, pas un hébergeur français ou en Français : renseignez-vous pour savoir où sont localisés les Datas Centers) sinon vous partez avec un handicap ...

fin de l'apparté ;-)

++++++++++++++++++++++

Modification du DocumentRoot sur un serveur web : par SSH ?
L'aide - inégale - de Plesk propose un passage intéressant :
Vous pouvez ajouter des instructions pour la configuration d'Apache spécifiques aux domaines dans le fichier de configuration du serveur Web. Dans Parallels Plesk Panel, la configuration des hôtes virtuels de chaque domaine est sauvegardée dans un fichier distinct httpd.include.

Sur tous les systèmes sous Linux, ce fichier se trouve dans le répertoire /var/www/vhosts//conf/.


Je veux donc me connecter en ssh à mon serveur VDS et afficher ce fichier de configuration "httpd.include". Lorsque je serai dans ce fichier, je modifierai le DocumentRoot de mon domaine toto.com.
Allons-y :
je me connecte en root au VDS en SSH grâce au terminal et je donne mon mot de passe qui est demandé. Ma fenêtre de Terminal affiche alors :
--> [root@vds-XXXXXX ~]# (XXXXXX est mon numéro de VDS, 6 chiffres que je masque ici)
Vu le "tilde", je suis au niveau "utilisateur Plesk" et pas au niveau RACINE. Je remonte donc AU DESSUS :
cd ../
--> [root@vds-XXXXXX /]#
Voilà, nous sommes au niveau racine !!
ls (afficher la liste des fichiers/dossiers)
--> aquota.group bin dev home lib64 mnt proc sbin srv tmp var
aquota.user boot etc lib media opt root selinux sys usr
C'est le dossier "var" qui nous intéresse : il contient le dossier "www" qui contient lui-même le dossier "vhosts" qui contient tous les noms de domaine du serveur. On peut donc y accéder directement :
cd var/www/vhosts/toto.com/conf
--> [root@vds-XXXXXX conf]#
ls (pour vérifier que le fichier "httpd.include" existe)
--> httpd.include

Parfait ! Comme j'ai peur de faire une mauvaise manip, je l'affiche juste en lecture seule pour en connaître le contenu :
cat httpd.include
-> le fichier s'affiche avec le vhost de notre toto.com! Voici l'extrait qui nous concerne :
:80>
ServerName toto.com:80
ServerAlias www.toto.com
UseCanonicalName Off
SuexecUserGroup tintin45vu psacln
DocumentRoot /var/www/vhosts/toto.com/httpdocs
... etc
ON A TROUVÉ LE DOC ROOT !!

Nota : plus d'infos sur les commandes Linux à : http://www.linux-france.org/article/debutant/debutant-linux.html

++++

Malheureusement, le début du fichier annonce :
# ATTENTION!
# DO NOT MODIFY THIS FILE OR ANY PART OF IT. THIS CAN RESULT IN IMPROPER PLESK
# FUNCTIONING OR FAILURE, CAUSE DAMAGE AND LOSS OF DATA. IF YOU REQUIRE CUSTOM
# MODIFICATIONS TO BE APPLIED TO THE CONFIGURATION, PLEASE, PERFORM THEM IN THE
# FOLLOWING FILE(S):
# /var/www/vhosts/coufidou.fr/conf/vhost.conf
# /var/www/vhosts/coufidou.fr/conf/vhost_ssl.conf
# /var/www/vhosts/coufidou.fr/subdomains//conf/vhost.conf

D'ailleurs, la documentation de Plesk précisait :
Chaque fois que la configuration d'un hôte virtuel change, le fichier est mis à jour. Toutes les modifications du fichier faites individuellement sont alors supprimées. Pour pouvoir utiliser des instructions personnalisées ou redéfinir celles ajoutées par Parallels Plesk Panel, il faut créer les fichiers vhost.conf et/ou vhost_ssl.conf comprenant les instructions nécessaires dans le répertoire /path_to_vhosts//conf/ pour un domaine, et /path_to_vhosts//subdomains//conf/ pour un sous-domaine.

Si un de ces fichiers existe au moment où le fichier de configuration principal est créé, Parallels Plesk Panel insère l'Include approprié dans le contexte HTTP et/ou HTTPS de l'hôte virtuel.


Donc ... vous pouvez le faire. En ce qui me concerne, je suis tellement content d'avoir mon "httpd.include" sous les yeux que je vais le modifier directement !!

La commande unix "cat" a affiché tout le contenu du fichier et est revenu à notre point de départ :
--> [root@vds-XXXXXX conf]#
J'affiche maintenant ce même fichier avec la commande unix "vi" qui va me permettre de modifier ce fichier :
vi httpd.include
--> le contenu du fichier s'affiche
puis a
--> une ligne --INSERT-- apparait en bas de page (on est donc en "mode insertion").

Grâce aux flèches de mon clavier, je me déplace dans le fichier jusqu'à la ligne de mon DocumentRoot et modifie ainsi :
DocumentRoot /var/www/vhosts/toto.com/httpdocs/web
Ceci fait, je sors du "mode insertion" pour passer au "mode commande"

--> la ligne --INSERT-- en bas de page disparait.
:w ("write", pour écrire/enregistrer le fichier)
--> confirmation en bas de page "fichier truc written, nb de lignes ..."
:x (pour sortir du fichier)
--> on revient à : [root@vds-XXXXXX conf]#

++++
A ce stade, j'ai donc modifié le fichier de config des vhosts de mon Apache 2. La documentation de Plesk précise :
Pour que les modifications soient prises en compte, vous devez exécuter la commande suivante :

/parallels_plesk_panel_installation_directory/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=


Que ceux qui ont trouvé ledit fichier et ladite commande me le fasse savoir !! En ce qui me concerne, je les cherche encore ;-)

Je ferme donc ma fenêtre de Terminal, retourne sur mon interface Plesk et redemarre mon serveur Apache :
- Sur la page d'accueil de Plesk (juste après s'être logué), il y a une partie "Serveur" : cliquez sur "Gestion des Services".
On arrive sur une page qui propose tous les services de votre Vds :
Serveur WEB (Apache)
Serveur SMTP (Postfix)
Serveur IMAP/POP3 (Courier-IMAP)
Serveur DNS (BIND)
Dr.Web Antivirus
Au bout de la ligne "Apache", un bouton permet de redémarrer ce service.
Clic sur ce bouton, on vous demande un peu de patience...

Après quelques secondes, vous pouvez consulter l'URL :
http://www.toto.com
Elle affiche maintenant la page : /httpdocs/index.php, donc votre première page de votre site Symfony.

++++++++++++++++++

Page blanche : mauvaise version de php
A ce stade, j'ai obtenu une page blanche car la version courante de php sur mon Plesk est 5.1.6, ce qui ne convient pas à Symfony.
Comme j'ai recopié le fichier "check_configuration.php" dans mon repertoire /web (fichier que je supprimerai lorsque mon appli fonctionnera), j'affiche cette page :
http://www.toto.com/check_configuration.php
-->
********************************
* *
* symfony requirements check *
* *
********************************

php.ini used by PHP: /etc/php.ini


** Mandatory requirements **

[[ ERROR ]] PHP version is at least 5.2.4: FAILED
*** Current version is 5.1.6 ***
You must fix this problem before resuming the check.

Too bad ! Je vais maintenant upgrader la version de php: c'est le sujet de mon prochain Post (il faut vraiment tout faire quand on prend un Serveur Privé ;-)

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]