Poulpatine Posté(e) le 15 mai 2006 Partager Posté(e) le 15 mai 2006 Salut @ vous :). Bon, je vais vous présenter mon problème. J'ai décidé d'installer un serveur Lighttpd, PHP + Mysql sous Openbsd 3.9. Lighttpd à l'avantage d'offir un sytème de chroot simple à mettre en place. Avec seulement quelques directives dans le fichier de conf. Je me suis inspiré de ce guide pour faire ma configuration : http://blowfishbsd.blogspot.com/2006_04_01...sd_archive.html . J'ai donc créé une arborescence dans mon /www/ avec les librairies qui vont bien ( trouvées en faisant ldd /opt/php5/bin/php ). Et là ! C'est le drame, lorsque j'essaie d'accéder au mirroir de mon blog sur le serveur je tombe sur l'erreur : MySQL Error : 2002 - Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2) J'ai donc fait quelques recherches sur le net et je suis tombé sur cet article : http://www.freeyourbox.org/tutorials/bsd/o..._php_mysql.html qui explique qu'il faut faire un lien entre le /var/run/mysql/mysql.sock et l'arborescence chrooté. Ce que j'ai essayé de faire : ln -f /var/run/mysql/mysql.sock /www/var/run/mysql/mysql.sock Mais je me retrouve avec l'erreur suivante : ln: mysql.sock: Cross-device link Je n'ai pas trouvé de solution. Si vous pouviez m'aider ? :) edit : Hum ... Je viens de comprendre. Le hard link ne fonctionne pas car /www/ et /var/ sont sur deux partitions différentes. Bon, je vais faire un petit déplacement :). Lien vers le commentaire Partager sur d’autres sites More sharing options...
fabien29200 Posté(e) le 15 mai 2006 Partager Posté(e) le 15 mai 2006 Ca remonte un peu, mais j'avais sur mon serveur Web chrooté Apache ainsi que MySQL. Je devais donc linker le fichier sock de la partition chrootée de MySQL vers la partition chrootée de Apache. Cela avait bien fonctionner. Je ne sais plu quelle option de ln j'avais utilisé. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Poulpatine Posté(e) le 15 mai 2006 Auteur Partager Posté(e) le 15 mai 2006 Ok, j'étais pas sûr que ça passerait avec un lien symbolique donc j'ai pas cherché et j'ai tout déplacé. Lien vers le commentaire Partager sur d’autres sites More sharing options...
zoto Posté(e) le 15 mai 2006 Partager Posté(e) le 15 mai 2006 salut hummm, un poulpe et un Diodon, ça va donner -->[] a+ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Poulpatine Posté(e) le 15 mai 2006 Auteur Partager Posté(e) le 15 mai 2006 Ah bah moi je suis ouvert à tout hein :) . Surtout à ce qui est open à son tour. Lien vers le commentaire Partager sur d’autres sites More sharing options...
zoto Posté(e) le 15 mai 2006 Partager Posté(e) le 15 mai 2006 Salut Pour un exam je presente bientot un serveur dns+dhcp sous OpenBsd . J'espere que les prof connaissent autre chose que windows, car là ils vont souffir :) . a+ Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 15 mai 2006 Partager Posté(e) le 15 mai 2006 Le lien symbolique ne suffit pas. Le hard link ne passe pas pour cause de partition différente. D'ailleurs je ne sais pas qui a donné cette connerie de solution à base de hard link, mais c'est de la connerie. Bon ok, on peut se contenter d'une partition /var globale et tout mettre dedans, mais bon. Le mieux c'est quand même de séparere le /var/log histoire de ne pas avoir un système qui part en vrille pour cause de plus de place car trop de logs. De même un /var/www et un /var/mail en cas de serveur www et mail seraient pas plus mal. Il y a bien l'option -bind de mount qui permet de passer outre les partitions, mais (bienvenur dans le monde (Open)BSD) comme c'est KISS world (Keep It Simple Stupid), mount comme le reste est minimal et ce qui n'est pas strictement indispensable est viré. En supposant que ton chroot soit dans /www, ton lightTPD verra /www comme étant son /. Il lui faut donc un /www/var/run/mysql/mysql.sock. La solution est de demander à mysql directement de foutre son socket là dedans. Mysql n'étant pas chrooté, ça doit rouler. mv /etc/my.cnf /etc/my.cnf.back && echo " [client] socket = /var/www/var/run/mysql/mysql.sock [mysqld] socket = /var/www/var/run/mysql/mysql.sock" > /etc/my.cnf (Je ne me souviens plus si les deux directives sont nécessaires ou juste une seule) Ensuite un restart de mysql puis d'apache et ça devrait le faire. Lien vers le commentaire Partager sur d’autres sites More sharing options...
fabien29200 Posté(e) le 15 mai 2006 Partager Posté(e) le 15 mai 2006 Voilà, j'ai retrouvé la méthode que j'avais employée. Mysql était chrooté dans /chroot/mysql, Apache chrooté dans /chroot/apache. Ces deux répertoires étant bien évidemment 2 partitions séparées. C'était une Hardened Gentoo, j'avais créé un /etc/init.d/mysql_chroot , qui contenait : start() { ebegin "Starting mysqld" chrootuid /chroot/mysql mysql /usr/sbin/mysqld & sleep 2 ln /chroot/mysql/tmp/mysql.sock /chroot/apache/tmp/mysql.sock chmod 666 /chroot/apache/tmp/mysql.sock eend $? } Voili, voilou ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Poulpatine Posté(e) le 16 mai 2006 Auteur Partager Posté(e) le 16 mai 2006 Merci à vous deux pour vos explications, je vais bidouiller un peu tout ça et je ferai un petit feedback sur le forum. Bisous Lien vers le commentaire Partager sur d’autres sites More sharing options...
Poulpatine Posté(e) le 16 mai 2006 Auteur Partager Posté(e) le 16 mai 2006 J'ai fait comme m'a dit theo, à savoir, créer directement le sock dans le /var/www/var/run/ , ça m'évite d'avoir à le recréer au démarrage et comme seul lighttpd aura besoin d'accéder à MySQL ça ne me gène pas. Merci bisous :)) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.