<?php
session_start();
$hostname="samplehost";
$username="sampleuser";
$password="samplepass";
$dbname="sampledb";
$link = mysql_connect($hostname, $username, $password) or die(mysql_error());
mysql_select_db($dbname, $link);
?>
将抛出Unknown MySQL server host 'samplehost' (2)
。如果我们删除session_start()
或仅在session_destroy()
之前执行mysql_connect()
,则可以正常使用。基本上,如果我们打开一个会话,它就像mysql_connect一样不会解析主机名。我们用于服务器的主机名已正确添加到/ etc / hosts。
这是一个运行PHP 5.3.2-1ubuntu4.7的生产服务器 - 刚刚开始发生。有人碰到这个吗?
编辑:应该提及,无论是否有会话,我们都可以指定数据库服务器的IP,并且它可以正常工作。
答案 0 :(得分:2)
如果有人遇到这个问题 - 结果证明我们在Apache中拥有的虚拟主机数量存在问题。当您开始达到文件描述符的限制时出现,您会遇到一些奇怪的症状 - 当我们开始在PHP中收到“太多打开文件”错误时,它最终被诊断出来。
这是我们如何为新域自动生成虚拟主机的遗留设置。更好地管理这个过程,减少虚拟主机的数量,问题就消失了。
答案 1 :(得分:0)
为什么不先连接,然后开始会话?