所以我有一个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)
?>
答案 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)。