【问题标题】:Problem with Apache and PHP (using PEAR)Apache 和 PHP 的问题(使用 PEAR)
【发布时间】:2011-01-02 02:17:40
【问题描述】:

当我想在浏览器中打开 PHP 代码时,我遇到了 Apache 的问题,它重新启动。 代码:

require_once 'DB.php';
PEAR::setErrorHandling(PEAR_ERROR_DIE);

$db_host = 'localhost';
$db_user = 'root';
$db_pass = 'marylover';
$db_name = 'test';
$dsn = "mysql://$db_user:$db_pass@unix+$db_host/$db_name";
$db = DB::connect($dsn);

我认为它在最后一行崩溃了 -> 无法连接到 MySQL。我想使用 PEAR 和 Apache,但似乎它们彼此不喜欢。请帮帮我!谢谢。

【问题讨论】:

  • 我觉得应该是require_once("DB.php"),试试加括号看看有没有区别。
  • require/include 和 require_once/include_once 都不需要括号,那不会是问题。
  • 你有 error_reporting 吗?还是记录了所有 PHP 错误?
  • 你试过取出 PEAR::setErrorHandling(PEAR_ERROR_DIE);行来查看数据库是否会连接?
  • include('login.php'); require_once('DB.php'); PEAR::setErrorHandling(PEAR_ERROR_DIE); $query = "SELECT * FROM books NATURAL JOIN authors"; $dsn = "mysql://$db_username:$db_password@$db_host/$db_database"; $connection = DB::connect($dsn);这是我使用的另一个代码,但结尾是相同的。浏览器告诉我,Apache HTTP 出现大错误并进入连接故障页面。 Apache 日志中没有错误。似乎所有问题都在 PEAR+Apache 中。顺便说一句,使用 MDB2 也是如此。

标签: php apache pear


【解决方案1】:

当你说:

我认为它在最后一行崩溃了 -> 无法连接到 MySQL。我想使用 PEAR 和 Apache,但似乎它们彼此不喜欢。请帮帮我!谢谢。

我假设您的意思是 PHP 级别(即您的脚本退出,网络服务器级别没有“崩溃”)?

与 Apache 一起使用的 PHP 构建很可能与您在 IDE (phpDesigner) 中使用的不同。与 Apache 一起使用的 PHP 构建中的 mysql 扩展可能会尝试以不同的方式连接到 MySQL(例如通过不存在的套接字文件)。

除非我有误解,否则脚本似乎正在退出,因为它无法连接到数据库服务器。

这条线看起来会导致这种情况发生:

PEAR::setErrorHandling(PEAR_ERROR_DIE);

您应该尝试运行一些示例代码来查看错误是否在于建立与 MySQL 的连接:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$conn = mysql_connect('localhost', 'root', 'marylover');
mysql_select_db('test', $conn);

还可以通过 phpinfo() 检查您的配置命令,并查看您的任何 PHP 构建是否已使用 --with-mysql-sock 选项进行编译

【讨论】:

  • Ok.. 1) 否 PEAR::setErrorHandling(PEAR_ERROR_DIE); --->同样的问题; 2)使用此示例代码--->同样的问题(浏览器中的Apache HTTP Server错误); 3) phpinfo()中没有--with-mysql-sock字符串;
  • 在运行我发布的示例代码时,您是否收到来自 Apache 的内部服务器错误 (HTTP 500) 响应?听起来您的 PHP 构建或 mysql 扩展配置有问题,因为即使该示例代码中的连接失败,您也应该只收到 PHP E_WARNING 通知。
  • 授予'deadlyhunta'的权限;现在 当我从浏览器运行它时,我收到带有已发送错误报告或不发送的 Windows 通知(Apache HTTP 服务器遇到问题,需要关闭)。点击不发送,浏览器继续“思考”,然后再次点击那个窗口,以此类推。 phpinfo.php 的 MySQL 部分是否需要有值?像mysql.default_host、mysql.default_password等?
  • 马安。我是愚蠢的俄罗斯白痴。在大规模重新安装 PHP/Apache/MySQL 期间,我将 windows/system32 目录中的 libmysql.dll 更改为错误的目录。没有变回来,一切正常!谢谢你的灵感!抱歉,这么无脑的名词耽误了你的时间。再次感谢!
  • 我建议您安装 XAMPP (apachefriends.org/en/xampp.html) 以用于本地测试,以替换您当前的设置,因为您当前的 Apache 和 PHP 设置中存在严重问题,导致它崩溃。 php.ini 中不正确的默认 mysql 选项不应导致这样的完整服务器崩溃。
猜你喜欢
  • 2011-01-18
  • 1970-01-01
  • 2012-04-04
  • 2014-12-30
  • 2013-04-02
  • 1970-01-01
  • 2017-09-16
  • 2015-04-17
  • 2010-11-30
相关资源
最近更新 更多