PHP5 : calling external functions, 和记录错误

标签 php mysql pear

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

一点点挖掘表明它从未通过对 mysql_pconnect() 的调用。 php 二进制文件直接退出,没有错误或消息。什么都没有。我尝试运行以下代码:

<?php
$id = @mysql_pconnect('localhost','myusername', 'mypassword', true);
print "id=".$id."\n";
?>

并且“id=”字符串从不打印。它什么都不做。我不知道去哪里查看发生了什么错误,或者根本不知道发生了什么。我安装的只是使用 pear 的“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 #4

快乐!

最佳答案

刚刚注意到您在 mysql_pconnect() 前面使用了 @。这会抑制所有错误,在这种情况下这是一个非常糟糕的主意。删除它,您可能会看到输出。

否则:

检查你的 php.ini,对于 debian 应该在/etc/php5/apache2/php.ini 中。

检查名为 display_errors 的行,如果您希望在浏览器中输出错误,请将其设置为 true(不推荐用于生产系统,但在调试和开发期间很有用)。

为 apache 指定 log_errors on 以将您的错误记录到 apaches 错误日志文件,默认情况下在 debian 中将是(除非为 phpBB 站点指定了其他错误文件):

/var/log/apache2/error.log

关于PHP5 : calling external functions, 和记录错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/278351/

相关文章:

php - 在单个脚本中连接多个数据库的优缺点

MySQL:服务已关闭 || Zabbix 代理 ubuntu

php - FreeBSD PHP 执行权限被拒绝

php - 获取碳中两个日期之间的所有月份名称

php - 找出大海捞针中所有针的位置

mysql - 需要为多列唯一键列创建索引?

php - SQL - 选择彼此相似的 %...% 的所有行(所有相似的行)

phploc 安装不适用于 ubuntu

linux - 更改 Pecl 安装目录

email - 第 697 行上的 fatal error : Class 'PEAR' not found in/home/user1/public_html/go-pear. php