chroot Apache+MsSQL на openBSD; Не удалось определить полное доменное имя сервера

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 решает проблему... на несколько дней.

Два сервера представляют собой виртуальные машины с OpenBSD, chroot Apache и MySQL + phpMyAdmin. к сожалению в разных версиях (OpenBSD 4.2(web) и 3.9(mysql))

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


person user66899    schedule 23.02.2009    source источник
comment
Ваша установка и проблема не кристально ясны. Почему ошибка httpd на сервере MySQL? Причастен ли к этому httpd на сервере MySQL? Какова ваша настройка разрешения имени и настройка вашей сети? Обе машины в одном сегменте сети? Используя DNS или файл hosts, или используя IP-адреса?   -  person dwc    schedule 23.02.2009


Ответы (2)


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

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

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

Примечание:

  • не используйте символическую ссылку, потому что она не будет работать через chroot
  • не используйте жесткую ссылку, потому что изменение файла в chroot приведет к изменению файла в /etc!
person dwc    schedule 27.03.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. Вы должны быть в состоянии проверить это, отслеживая загрузку системы с течением времени.

person brian-brazil    schedule 27.03.2009