我正在尝试在 lubuntu 14.04.5 上设置 LAMP 服务器,我删除了 index.html 并将其替换为:
/var/www/html/index.php
问题是此<?php
标记之前的所有内容都会执行,这似乎会导致服务器崩溃。我不知道为什么,是不是因为我必须有 index.html?
<?php
$dbhost = "localhost:3306";
$dbuser = "user1";
$dbpass = "pass1";
$connection = mysqli_connect($dbhost, $dbuser, $dbpass);
if(!$connection){
die("connection error " . mysqli_error());
}
echo "connected successfully";
mysqli_close($connection);
?>
因此,在我的 php 错误日志中,我收到未定义的函数 mysqli_connect()。如何使其成为可用函数?
当我执行 aptitude search php5-mysql 时,会显示一个 i,表示已安装。除了 mysqlnd 之外没有其他 mysql 模块,我认为我不需要它,因为它只是本机目录和 mysqlnd-ms 我该如何解决这个问题?
编辑:我想我需要添加 mysqli 扩展,但在定位它时遇到了麻烦。
答案1
您的代码有语法错误,正确的代码如下:
<?php
$dbhost = "localhost:3306";
$dbuser = "user1";
$dbpass = "pass1";
$connection = mysqli_connect($dbhost, $dbuser, $dbpass);
if(!$connection){
die("connection error " . mysqli_error());
}
echo "connected successfully";
mysqli_close($connection);
?>
错误:
mysqli_erro()
==>mysqli_error()
dbpass
==>$dbpass
答案2
所以我所做的是sudo apt-get install php5-mysql
然后我仍然得到相同的网页所以我认为什么都没有发生,但在检查之后/var/log/php5/error.log
发现错误从“未定义的命令 mysqli_connect()”变为一些与代码相关的错误,如“mysqli_error 需要 1 个参数和“类 mysqli 的对象无法转换为字符串”和“未知的 mysql 服务器‘localhost:3306’”。localhost:3306 已更改为 locahost。因此在更新我的代码后,一切都正常。
<html>
<head>
<title>Connecting MySQL Server</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'user1';
$dbpass = 'pass1';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_connect_error());
}
echo 'Connected successfully';
mysqli_close($conn);
?>
</body>
</html>
答案3
你说你做过这个……
sudo apt-get install php5-mysql
你从来没有提到过这样做,这也是必需的......
sudo service apache2 restart
仅仅因为您安装了 php5-mysql,并不意味着 Apache 已经加载了 PHP 或 PHP MySQL 模块。
您可以通过创建包含以下内容的 phpinfo.php 文件来确定发生了什么...
<?php
print_r (phpinfo());
?>
然后检查 + 确保 PHP 已加载 + PHP mysql 模块已加载。
如有疑问,请务必检查 phpinfo.php 文件输出作为第一步调试。
很多时候,有了这个简单的输出,复杂的问题就能快速解决。