更改服务器后,PHP文件无法访问MySQL数据库

时间:2014-08-19 18:03:50

标签: php mysql ubuntu session-cookies zend-server

所以我有一个PHP应用程序在我的本地服务器上运行良好,由Zend Server提供支持。在我上传到ubuntu服务器之后,它停止工作,除了两个php文件,index.php和register.php,它们处理用户注册部分。当我说工作时,这意味着我可以在本地服务器中查看页面,但内部进程无法正常工作。例如,当我尝试注册用户时,它应该告诉我它是否成功。相反,它只是一个空白页面。

我排除了目录问题。所有路径都是相对的,它们工作正常。我也排除了MySQL数据库问题,因为我可以访问数据库并用它做任何事情。所以我编写了以下脚本来测试php可以访问mySQL的位置(MySQL数据库设置在同一主机中)。所以我写了以下脚本:

<?php
ini_set("display_errors", 1);
error_reporting(E_ALL); 

require_once("config/connect_database_viewer.php");
echo $db_hostname;
echo "<br>";
echo "1";
echo $db_username;

$sql = "CREATE TABLE writer (UPC VARCHAR(15)) ENGINE MyISAM";
if ($db_server->query($sql)) {
        echo "the database works";
} else {
        echo "so it didn't even reach the server";
}

致命错误:致命错误:第3行的/var/www/viewer/angelo/config/connect_database_viewer.php中找不到“mysqli”类。

但是当我尝试通过此命令安装php5-mysql时,它对我没有意义:     sudo apt-get install php5-mysql 它回到我说php5-mysql已经是最新版本。我检查了ubuntu页面的版本,php5-mysql模块应该包含一个mysqli扩展名。 php模块也启用了!这是我的connect_database_viewer.php文件:

<?php
    $db_hostname = '127.0.0.1';
    $db_database = 'viewer';
    $db_username = 'juvo1';
    $db_password = 'juvo1';
    $db_server = new mysqli($db_hostname, $db_username, $db_password, $db_database);

    if ($db_server->connect_error) die($db_server->connect_error)

?>

3 个答案:

答案 0 :(得分:0)

您需要检查错误日志。它会告诉您PHP脚本中发生错误的位置。尝试查看

/var/log/httpd/error.log

看看它说的是什么。

答案 1 :(得分:0)

如果只打印测试脚本的第一行,则include脚本会创建错误。原因可能是您的包含失败(可能是由于权利问题)或脚本内部的某些内容。我会包括

ini_set("display_errors", 1);
error_reporting(E_ALL); 

如果您的控制台(=错误日志?)没有提及任何其他内容,则在浏览器中获取错误。

答案 2 :(得分:0)

这个过程似乎有两个问题。第一个是我的php版本没有内置的mysqli模块。人们可以使用以下命令安装php mysqli模块:

sudo apt-get install php5-mysqlnd

这会阻止白页显示。但是仍有关于尝试通过tcp连接的警告。所以我将数据库conf php文件从127.0.0.1更改为localhost。有关详细信息,请参阅此链接:mysqli::mysqli(): (HY000/2002): Can't connect to local MySQL server through socket 'MySQL' (2)