chroot Apache + MsSQL на openBSD; Не удалось определить полное доменное имя сервера - PullRequest
0 голосов
/ 23 февраля 2009

php генерирует GIF-файлы на веб-сервере, используя базы данных на втором сервере. На странице показано 20 GIF-файлов, поэтому некоторая загрузка происходит в течение короткого времени (несколько подключений)


Некоторые GIF загружены, а некоторые нет, в /var/www/logs/error_log

[Mon Feb 23 10:05:56 2009] [error] PHP Warning:  mysql_connect() [function.mysql-connect]: Lost connection to MySQL server at 'reading initial communication packet', system error: 0 in /htdocs/.../myImage.php on line 4
[Mon Feb 23 10:05:56 2009] [error] PHP Fatal error: Lost connection to MySQL server at 'reading initial communication packet', system error: 0 in /htdocs/.../myImage.php on line 4

в /var/www/logs/error_log на сервере MySQL, который я нашел:

[alert] httpd: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

Перезагрузка сервера MySQL "решает" проблему ... на несколько дней.

2 сервера - это виртуальные машины, работающие на OpenBSD, Apache в Chroot и MySQL + phpMyAdmin. к сожалению, в разных версиях (OpenBSD 4.2 (web) и 3.9 (mysql))

мои знания в /var/www/conf/httpd.conf и my.cnf (не найдены) очень ограничены.
Есть идеи?

Ответы [ 2 ]

1 голос
/ 28 марта 2009

Вы пытались поместить resolv.conf в chroot? Такие как:

mkdir -p /var/www/etc/ && cp -p /etc/resolv.conf /var/www/etc/

Вы также можете сделать то же самое для / etc / localtime, если обнаружите, что время вашего веб-сервера отключено от вашего часового пояса.

Примечание:

  • не используйте ссылку sym, потому что она не будет работать через chroot
  • не используйте жесткую ссылку, потому что изменение файла в chroot приведет к изменению файла в / etc!
1 голос
/ 28 марта 2009

Ошибка «Не удалось определить полное доменное имя сервера» может быть проигнорирована, это внутренняя проблема apache.

За http://dev.mysql.com/doc/refman/5.0/en/error-lost-connection.html и http://bugs.mysql.com/bug.php?id=28359 это звучит как медленная сеть или перегруженный mysql, который не может достаточно быстро реагировать на соединения.

Учитывая, что перезагрузка устраняет проблему, я предполагаю, что у вас медленная утечка ресурсов. Вероятно, что-то вроде дорогих запросов осталось работать на MySQL. Вы сможете это проверить, отслеживая загрузку системы с течением времени.

...