我对PHP非常陌生,并试图在我的本地站点上设置phpBB。我有一个股票debian安装apache2和php5。phpBB安装程序运行良好,连接到数据库并创建了它的所有表,没有任何问题。但是当我试图打开登录页面时,我得到了一个0字节的响应。
稍微深入一下就会发现,它从来没有通过对mysql_pconnect()的调用。php二进制文件只是在没有错误或消息的情况下退出。什么都没有。我尝试运行以下代码:
<?php
$id = @mysql_pconnect('localhost','myusername', 'mypassword', true);
print "id=".$id."\n";
?>而"id=“字符串从不打印。它只是什么都没做。我不知道在哪里可以看到发生了什么错误,或者到底发生了什么。我只安装了"mysql“用梨..。也许我错过了别的什么?
这肯定是个路径问题。mysql扩展很好地构建在
/usr/lib/php5/20060613+lfs/mysql.so答案:
jishi:通知我,"@“操作符会抑制输出,包括错误消息(@echo off,有人吗?)
tomhaigh:必须在php.ini文件中显式启用扩展名。在将"extension=mysql.so“行添加到php.ini后,以下代码运行良好:
% cat d.php
<?php
ini_set('display_errors', true);
error_reporting(E_ALL | E_NOTICE);
$id = mysql_pconnect('localhost','myusername', 'mypassword', true);
print "id=".$id."\n";
?>
% php -c /etc/php5/apache2/php.ini d.php
id=Resource id #4JOY!
发布于 2008-11-10 16:48:24
刚刚注意到您在mysql_pconnect()前面使用了一个@。这会抑制所有的错误,在这种情况下,这是一个非常糟糕的想法。如果将其删除,您可能会看到输出。
否则:
检查您的php.ini,应该在/etc/php5 5/apache2/php.ini中查找debian。
检查名为display_errors的行,如果希望在浏览器中输出错误(不推荐用于生产系统,但在调试和开发过程中有用),则设置为true。
指定log_errors on for apache将错误记录到,在debian中默认情况下是这样(除非为phpBB-站点指定了其他错误文件):
/var/log/apache2/error.log
发布于 2008-11-10 16:50:15
删除mysql_pconnect正在抛出的错误消息静音的"@“。
发布于 2008-11-10 16:38:47
有时,当PHP找到一个它找不到的函数时,它会从‘黑洞’向下移动。
您能验证mysql扩展安装是否正确吗?
您可以通过创建如下的php页面来做到这一点:
<?php
phpinfo();
?>把它保存在你的webroot中,然后访问它。它应该包含关于服务器当前运行的PHP模块的所有信息。
https://stackoverflow.com/questions/278351
复制相似问题