在 openBSD 上 chrooted Apache+MsSQL;无法确定服务器的完全限定域名

Posted

技术标签:

【中文标题】在 openBSD 上 chrooted Apache+MsSQL;无法确定服务器的完全限定域名【英文标题】:chrooted Apache+MsSQL on openBSD; Could not determine the server's fully qualified domain name 【发布时间】:2010-10-09 07:05:24 【问题描述】:

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


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

[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 服务器的连接,系统错误:/htdocs/.../myImage.php 第 4 行中的 0

在我找到的 MySQL 服务器上的/var/www/logs/error_log 中:

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

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

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

我对@9​​87654323@ 和my.cnf(没找到)的了解非常有限。 有什么想法吗?

【问题讨论】:

您的设置和问题不是很清楚。为什么 MySQL 服务器上出现 httpd 错误? MySQL 服务器上的 httpd 是否以某种方式参与其中?您的名称解析设置和网络设置是什么?两台机器在同一个网段?使用 DNS 或主机文件,还是使用 IP 地址? 【参考方案1】:

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

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

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

注意:

不要使用符号链接,因为它不能通过 chroot 工作 不要使用硬链接,因为在 chroot 中修改文件会修改 /etc 中的文件!

【讨论】:

【参考方案2】:

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

根据http://dev.mysql.com/doc/refman/5.0/en/error-lost-connection.html 和http://bugs.mysql.com/bug.php?id=28359,这听起来像是一个慢速网络,或者一个无法足够快地响应连接的过载 mysql。

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

【讨论】:

以上是关于在 openBSD 上 chrooted Apache+MsSQL;无法确定服务器的完全限定域名的主要内容,如果未能解决你的问题,请参考以下文章

带有 gunicorn+uvicorn 的 openbsd httpd -- 远程协议错误:非法请求行

OpenBSD内核之引导MBR

在 Android 上配置 GNU/Linux Chroot 环境

在 chroot 环境中启动程序会立即返回

OpenBSD内核之引导PBR

OpenBSD 6.2 发布,类 Unix 操作系统