首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP5:调用外部函数和日志记录错误

PHP5:调用外部函数和日志记录错误
EN

Stack Overflow用户
提问于 2008-11-10 16:29:48
回答 4查看 925关注 0票数 2

我对PHP非常陌生,并试图在我的本地站点上设置phpBB。我有一个股票debian安装apache2和php5。phpBB安装程序运行良好,连接到数据库并创建了它的所有表,没有任何问题。但是当我试图打开登录页面时,我得到了一个0字节的响应。

稍微深入一下就会发现,它从来没有通过对mysql_pconnect()的调用。php二进制文件只是在没有错误或消息的情况下退出。什么都没有。我尝试运行以下代码:

代码语言:javascript
复制
<?php
$id = @mysql_pconnect('localhost','myusername', 'mypassword', true);
print "id=".$id."\n";
?>

而"id=“字符串从不打印。它只是什么都没做。我不知道在哪里可以看到发生了什么错误,或者到底发生了什么。我只安装了"mysql“用梨..。也许我错过了别的什么?

这肯定是个路径问题。mysql扩展很好地构建在

代码语言:javascript
复制
/usr/lib/php5/20060613+lfs/mysql.so

答案:

jishi:通知我,"@“操作符会抑制输出,包括错误消息(@echo off,有人吗?)

tomhaigh:必须在php.ini文件中显式启用扩展名。在将"extension=mysql.so“行添加到php.ini后,以下代码运行良好:

代码语言:javascript
复制
% 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 #4

JOY!

EN

回答 4

Stack Overflow用户

发布于 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

票数 6
EN

Stack Overflow用户

发布于 2008-11-10 16:50:15

删除mysql_pconnect正在抛出的错误消息静音的"@“。

文档

票数 1
EN

Stack Overflow用户

发布于 2008-11-10 16:38:47

有时,当PHP找到一个它找不到的函数时,它会从‘黑洞’向下移动。

您能验证mysql扩展安装是否正确吗?

您可以通过创建如下的php页面来做到这一点:

代码语言:javascript
复制
<?php
phpinfo();
?>

把它保存在你的webroot中,然后访问它。它应该包含关于服务器当前运行的PHP模块的所有信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/278351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档