0

php 使用第二台服务器上的数据库在 Web 服务器上生成 GIF。该页面显示 20 个 GIF,因此在短时间内有一些负载(多个连接)


某些 GIF 已加载,但有些未加载,在/var/www/logs/error_log

[2009 年 2 月 23 日星期一 10:05:56] [错误] PHP 警告:mysql_connect() [function.mysql-connect]:在“读取初始通信数据包”时丢失与 MySQL 服务器的连接,系统错误:/htdocs/ 中的 0。 ../myImage.php 在第 4 行
[2009 年 2 月 23 日星期一 10:05:56] [错误] PHP 致命错误:在“读取初始通信数据包”时丢失与 MySQL 服务器的连接,系统错误:第 4 行 /htdocs/.../myImage.php 中的 0

/var/www/logs/error_log我发现的 MySQL 服务器上:

[警报] httpd:无法确定服务器的完全限定域名,使用 127.0.0.1 作为 ServerName

重新启动 MySQL 服务器“解决”了问题......几天。

两台服务器是运行 OpenBSD、chroot'ed Apache 和 MySQL + phpMyAdmin 的虚拟机。不幸的是,在不同的版本中(OpenBSD 4.2(web)和 3.9(mysql))

我的知识 /var/www/conf/httpd.confmy.cnf(没有找到)非常有限。
有任何想法吗 ?

4

2 回答 2

1

可以忽略“无法确定服务器的完全限定域名”错误,这是内部 apache 的事情。

根据http://dev.mysql.com/doc/refman/5.0/en/error-lost-connection.htmlhttp://bugs.mysql.com/bug.php?id=28359这听起来要么很慢网络,或无法足够快地响应连接的过载 mysql。

鉴于重新启动解决了这个问题,我猜你有一个缓慢的资源泄漏。可能像在mysql上运行的昂贵查询之类的东西。您应该能够通过随时间跟踪系统负载来验证这一点。

于 2009-03-27T23:20:08.887 回答
1

您是否尝试过将 resolv.conf 放入 chroot 中?如:

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

如果您发现您的 Web 服务器时间与您的时区不同,您可能还希望对 /etc/localtime 执行相同的操作。

笔记:

  • 不要使用符号链接,因为它不能通过 chroot 工作
  • 不要使用硬链接,因为在 chroot 中修改文件会修改 /etc 中的文件!
于 2009-03-27T23:33:21.553 回答