Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 30/07/2014, à 20:14

NinJoDo

[Résolu] Serveur LAMP planté changements de répertoires de travail

Salut les potos !

Ça faisait longtemps !

Ce qui est ci-dessous a l'air long mais c'est très rapide à lire. J'ai juste pas mal détaillé pour que tout soit bien clair.

J'ai un problème de serveur qui commence à me retarder considérablement dans mon travail.

J'ai installé LAMP en faisant :

sudo apt-get install apache2 php5 mysql-server libapache2-mod-php5 php5-mysql

Classique quoi...

Résultat :
- un bel "It works !" sur 127.0.0.1
- une connexion impossible sur 127.0.0.1/phpmyadmin

Boum : j'installe phpmyadmin !

sudo apt-get install phpmyadmin

127.0.0.1/phpmyadmin -> Ça marche.

Ensuite je décide de personnaliser mes répertoires de travail comme je le fais habituellement (ouais je suis comme ça moi : je personnalise !)

Deux répertoires :
- un pour les fichiers de mes sites sur : /home/tusauraspas/Sites/lamp ;
- un pour les tables Mysql sur : /home/tusauraspas/Sites/mysql.

Pour ça un petit script bien de chez moi qui, habituellement, fonctionne :

 chmod -R -v -f 777 /home/tusauraspas/Sites/lamp/

 sudo /etc/init.d/apache2 stop

 sudo find /etc/apache2/ -type f -name "*" -print0 | xargs -0 grep -l "/var/www/html" | xargs sed -i '' -e 's/\/var\/www\/html/\/home\/tusauraspas\/Sites\/lamp/g'
 sudo find /etc/apache2/ -type f -name "*" -print0 | xargs -0 grep -l "/var/www/" | xargs sed -i '' -e 's/\/var\/www\//\/home\/tusauraspas\/Sites\/lamp\//g'
 
 sudo /etc/init.d/apache2 start

sudo /etc/init.d/mysql stop

sudo find /etc/mysql/ -type f -name "my.cnf" -print0 | xargs sed -i '' -re 's/datadir.*\=\/var\/lib\/mysql/datadir.*\=\/home\/tusauraspas\/Sites\/mysql/g'
sudo find /etc/apparmor.d/ -type f -name "usr.sbin.mysqld" -print0 | xargs -0 grep -l "/var/lib/mysql" | xargs sed -i '' -e 's/\/var\/lib\/mysql/\/home\/tusauraspas\/Sites\/mysql/g'

sudo /etc/init.d/apparmor reload
sudo /etc/init.d/mysql start

Et là :
1) 127.0.0.1 -> erreur 403 dans la face (pourtant tous mes fichiers sont en 777)

2) 127.0.0.1/phpmyadmin fonctionne, mais impossible de se logger

Est-ce que quelqu'un qui maîtrise pourrait m'éclairer parce que je vois pas là... :-(

P.S. : Note aux petits rigolos (toujours les mêmes) :
- j'ai déjà cherché sur internet, sinon je ne posterai pas (d'ailleurs je poste rarement) ;
- j'ai bien compris qu'il y avait un tuto ici : http://doc.ubuntu-fr.org/tutoriel/lamp_ … de_travail -> ça n'a pas mieux fonctionné, j'ai toujours les mêmes erreurs, et de toutes façons je préfère comprendre ce qui cloche. C'est la meilleure façon de pouvoir aider les autres après ;

Dernière modification par NinJoDo (Le 02/08/2014, à 20:16)

Hors ligne

#2 Le 30/07/2014, à 22:03

Clem38

Re : [Résolu] Serveur LAMP planté changements de répertoires de travail

Salut,

Juste pour la partie 1) as tu un fichier index dans ton repertoire? Sinon apache retourne une erreur 403
Sinon tu peux donner le retour de la commande :

 tail -f /var/log/apache2/error.log

Pour la partie 2) t'as un message d'erreur lors de la connexion?

Hors ligne

#3 Le 31/07/2014, à 01:25

NinJoDo

Re : [Résolu] Serveur LAMP planté changements de répertoires de travail

Merci d'avoir pris le temps de répondre !

1) non, pas d'index

[Thu Jul 31 01:00:17.474607 2014] [core:notice] [pid 1393] AH00094: Command line: '/usr/sbin/apache2'
[Thu Jul 31 01:06:04.203221 2014] [mpm_prefork:notice] [pid 1393] AH00169: caught SIGTERM, shutting down
[Thu Jul 31 01:06:43.806706 2014] [mpm_prefork:notice] [pid 1396] AH00163: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.3 configured -- resuming normal operations
[Thu Jul 31 01:06:43.807052 2014] [core:notice] [pid 1396] AH00094: Command line: '/usr/sbin/apache2'
[Thu Jul 31 01:09:44.297176 2014] [core:error] [pid 1400] (13)Permission denied: [client 127.0.0.1:37764] AH00035: access to / denied (filesystem path '/home/tusauraspas/Sites') because search permissions are missing on a component of the path
[Thu Jul 31 01:09:44.372637 2014] [core:error] [pid 1400] (13)Permission denied: [client 127.0.0.1:37764] AH00035: access to /favicon.ico denied (filesystem path '/home/tusauraspas/Sites') because search permissions are missing on a component of the path
[Thu Jul 31 01:09:44.374707 2014] [core:error] [pid 1400] (13)Permission denied: [client 127.0.0.1:37764] AH00035: access to /favicon.ico denied (filesystem path '/home/tusauraspas/Sites') because search permissions are missing on a component of the path
[Thu Jul 31 01:14:34.855740 2014] [mpm_prefork:notice] [pid 1396] AH00169: caught SIGTERM, shutting down
[Thu Jul 31 01:15:10.875240 2014] [mpm_prefork:notice] [pid 1429] AH00163: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.3 configured -- resuming normal operations
[Thu Jul 31 01:15:10.875424 2014] [core:notice] [pid 1429] AH00094: Command line: '/usr/sbin/apache2'

2) #2002 Connexion au serveur MySQL non permise
et
La connexion au controluser tel que défini dans votre configuration a échoué.

Hors ligne

#4 Le 31/07/2014, à 09:33

bruno

Re : [Résolu] Serveur LAMP planté changements de répertoires de travail

Bonjour,

Il faut arrêter avec les chmod 777… Je passe sur le script qui tente de modifier tous les fichiers dans ./etc/apache2 !

Bon je suppose que tu as apache 2.4 et qu'il te manque une directive dans ton hôte virtuel pour autoriser l'access à /home/truc/machin, du genre :

<directory /home/truc/machin>
…
    Require all granted
....
</directory>

Hors ligne

#5 Le 31/07/2014, à 16:11

NinJoDo

Re : [Résolu] Serveur LAMP planté changements de répertoires de travail

Salut,

Merci pour ta réponse.

Je ne suis pas à mon ordi, mais de tête je ne pense que cette ligne y est déjà. J'avais déjà fait la modif. Je confirme dès que je suis devant ma machine.
Quel est le problème avec les 777 ? Quitte à changer après, au moins on sait qu'il n'y a pas de problème de permissions au moment du debug!

Pour le script de debug, au contraire il faudrait ne pas passer, ce n'est pas très constructif. Quel est le problème ?

Hors ligne

#6 Le 31/07/2014, à 18:17

bruno

Re : [Résolu] Serveur LAMP planté changements de répertoires de travail

NinJoDo a écrit :

Quel est le problème avec les 777 ?

C'est une très mauvaise habitude de donner tous les droits à tout le monde. Surtout le droit d'exécution sur des fichiers de site web ; c'est particulièrement stupide et dangereux. Personnellement, j'aurais même tendance à fortement déconseiller l'utilisation de la commande chmod en mode octal à moins de parfaitement comprendre ce que l'on fait.

NinJoDo a écrit :

Quitte à changer après, au moins on sait qu'il n'y a pas de problème de permissions au moment du debug!

La preuve que si, il y a des problèmes :

access to / denied (filesystem path '/home/tusauraspas/Sites') because search permissions are missing on a component of the path

Et donc vérifier que tous les dossiers de l’arborescence depuis /home sont accessibles et on un droit en lecture au minimum pour l'utilisateur www-data…


NinJoDo a écrit :

Pour le script de debug, au contraire il faudrait ne pas passer, ce n'est pas très constructif. Quel est le problème ?

Je ne comprends pas cette histoire de « debug ». Qu'est-ce qu'il y a à déboguer ? Le problème est que ton script fait un rechercher/remplacer sur tous les fichiers du dossier /etc/apache2 (donc susceptible de bousiller toute la configuration d'Apache) alors qu'il suffit d'en modifier un seul (celui qui gère ton hôte virtuel).

Dernière modification par bruno (Le 31/07/2014, à 18:18)

Hors ligne

#7 Le 31/07/2014, à 19:07

NinJoDo

Re : [Résolu] Serveur LAMP planté changements de répertoires de travail

Nop, c'est bien ce que je pensais, ça y est déjà (je suppose que c'est dans apache2.conf):

<Directory /home/tusauraspas/Sites/lamp>
	Options Indexes FollowSymLinks MultiViews
	AllowOverride All
	Require all granted
</Directory>

En revanche j'ai rajouté les droits pour www-data (par l'IG, Droits d'accès avancés, utilisateur nommé : www-data) avec un récursif sur les dossiers de toute l'arborescence, mais ça ne règle pas le problème.

Bon, ok, tu n'aimes pas les 777 (je précise que ce ne sont pas les sites de prod mais ok). Cependant, si les fichiers sont en 777, pourquoi rajouter les droits à www-data aurait pu résoudre le problème (that's a pure innocent question) ?

Le problème est que ton script fait un rechercher/remplacer sur tous les fichiers du dossier /etc/apache2 (donc susceptible de bousiller toute la configuration d'Apache) alors qu'il suffit d'en modifier un seul (celui qui gère ton hôte virtuel)

Ha bah ça ça m'intéresse ! Surtout si c'est plus simple ! :-) Comment aurais-tu fait ?

Dernière modification par NinJoDo (Le 01/08/2014, à 10:31)

Hors ligne

#8 Le 01/08/2014, à 09:46

bruno

Re : [Résolu] Serveur LAMP planté changements de répertoires de travail

Je crois que tu devrais lire une bonne documentation sur la gestion des droits d'accès. J'avais écrit cela il y a quelques années. Ta manip pour www-data est inutile il fallait juste vérifier que /home est accessible (droit x) et lisible par tout le monde, et donc aussi pour www-data (droit r), de même pour /home/truc, /home/truc/machin, etc.

Tu devrais également lire les docs d'Apache2.
Pourquoi fait-tu un script alors qu'il suffit de modifier un seul fichier : celui de ton hôte virtuel avec un simple éditeur de texte (vi, nano, gedit, kate , …). Les fichiers sont situés dans /etc/apache2/site-available/ et en principe il est inutile de toucher au fichier apache2.conf.

Hors ligne

#9 Le 01/08/2014, à 10:10

Compte supprimé

Re : [Résolu] Serveur LAMP planté changements de répertoires de travail

Salut.
Je rejoins bruno. Le problème avec un chmod777, si il y a une faille Apache ou dans ton code, n'importe qui pourra uploader ce qu'il veut puisque tu leurs donne tous les droits. Un chmod 644 suffit généralement.

Dernière modification par ignus (Le 01/08/2014, à 10:11)

#10 Le 01/08/2014, à 17:15

NinJoDo

Re : [Résolu] Serveur LAMP planté changements de répertoires de travail

lol... bon vous avez l'avantage du nombre, c'est vrai. Mais n'empêche que c'est en 777 sur mon dd, et que dès que c'est passé en prod, c'est téléchargé avec les droits d'utilisateurs du compte FTP (Filezilla), ce qui change automatiquement les droits, donc je ne vois pas où est le risque.
Mais trêve de nourrir le troll :-) Il faut vraiment que je règle mon problème.

Je vais lire les docs de Bruno. J'espère que ça m'aidera à résoudre la question du forbidden et de la non connexion à phpmyadmin.

Merci les potos !

Hors ligne

#11 Le 01/08/2014, à 19:58

NinJoDo

Re : [Résolu] Serveur LAMP planté changements de répertoires de travail

Bon... Après lecture du sympathique cours de Bruno, j'ai

- Désinstallé tout puis réinstallé tout : apache, mysql, phpmyadmin
Résultat : It Works !

- changé dans le default.conf le Document Root, en mettant le dossier /home/tusauraspas/Sites/lamp
Résultat : forbidden

- changé les droits des dossiers concernés :

$ sudo chmod go+xr /home
$ sudo chmod go+xr /home/tusauraspas
$ sudo chmod go+xr /home/tusauraspas/Sites
$ sudo chmod go+xr /home/tusauraspas/Sites/lamp
$ sudo chmod go+xr /home/tusauraspas/Sites/lamp/*
$ sudo service apache2 reload

Résultat : Forbidden

Maintenant je fais quoi ?

Hors ligne

#12 Le 01/08/2014, à 20:14

jplemoine

Re : [Résolu] Serveur LAMP planté changements de répertoires de travail

- Ça fonctionne
- Tu fais une modification
- Ça ne fonctionne plus...

Tu en déduis quoi ?

Dernière modification par jplemoine (Le 01/08/2014, à 20:15)


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#13 Le 01/08/2014, à 21:11

NinJoDo

Re : [Résolu] Serveur LAMP planté changements de répertoires de travail

J'en déduis que savoir ce qui fait foirer ne dit pas ce qui fait marcher.

Hors ligne

#14 Le 01/08/2014, à 21:40

jplemoine

Re : [Résolu] Serveur LAMP planté changements de répertoires de travail

pourquoi vouloir absolument :
- mettre les sites web dans le home : ce n'est pas fait pour
- changer les propriétés du site par défaut : histoire de bien être emm...dé à chaque mise à jour d'Apache
?


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#15 Le 01/08/2014, à 22:31

NinJoDo

Re : [Résolu] Serveur LAMP planté changements de répertoires de travail

J'ai deux partitions sur mon ordi : un / et un /home.
Si je réinstalle / je perds tout. Je pourrais faire une copie, mais mes sites sont très lourds. Je pourrais faire une autre partition, mais je rencontrerai probablement les mêmes problèmes, alors autant le mettre dans mon home qui est sauvegardé et sécurisé.

Je suis preneur de toute meilleure solution, mais jusqu'à présent, ça avait bien bien fonctionné. Je ne comprends pas pourquoi là ça ne fonctionne pas.

Hors ligne

#16 Le 02/08/2014, à 12:34

NinJoDo

Re : [Résolu] Serveur LAMP planté changements de répertoires de travail

yop bidoo bou ?

Hors ligne

#17 Le 02/08/2014, à 13:21

NinJoDo

Re : [Résolu] Serveur LAMP planté changements de répertoires de travail

Bon je poste mes progrès pour ceux qui auraient les mêmes problèmes :

1) J'ai mis une page index.html dans lamp, pour voir si ça donnait quelque chose.
Résultat : elle s'affiche parfaitement bien.

2) D'habitude quand je fais mon 127.0.0.1, j'avais l'index des dossiers des sites. Là je ne l'ai plus.
Qu'à cela ne tienne, puisque la page index.html s'affiche, je décide de tenter d'accéder directement à mon site 1
Dans le navigateur : http://127.0.0.1/site1
Résultat : Une erreur 500.

3) En mode console j'active le mode rewrite

sudo a2enmod rewrite && sudo service apache2 restart

Résultat : Le php fonctionne ! Ouf !
Dans le navigateur : http://127.0.0.1/site1
Mais il me reste une erreur d'accès à la base de données.

Error : Unable to connect to database

4) Je désinstalle ce qui a un rapport avec Mysql :

sudo apt-get purge mysql-server php5-mysql

Puis réinstallation

sudo apt-get install mysql-server php5-mysql

Puis rechargement de mysql

sudo service mysql restart

Résultat : Problème d'écriture dans le cache des smarty

5) Je redéfini les droits

sudo chmod -R -v -f go-rwx /home/tusauraspas/lamp

Résultat : ça marche ! Le site s'affiche !

Le problème est donc résolu.

Dernière modification par NinJoDo (Le 02/08/2014, à 20:15)

Hors ligne