我试图在Amazonec2上使用php连接到MySQL数据库,但它甚至没有返回错误消息。我想是因为mysqli.so没有加载。
我的php:
<?php
require_once "login.php";
$db_server = new mysqli($db_hostname, $db_username, $db_password);
if (!$db_server):
echo ("Unable to connect to MySQL: " . mysql_error());
?>
login.php包含我使用的MySQL的登录详细信息。
我已经运行
php -m | grep mysqli
哪个返回
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/mysqli.so' - /usr/lib64/php/modules/mysqli.so: cannot open shared object file: No such file or directory in Unknown on line 0
mysqli
/use/lib64/php/modules/
不包含mysqli.so
。
我在另一个位置找不到mysqli.so
,我已经在php.ini
文件的顶部添加了extension=mysqli.so
行,我不知道下一步该怎么做。
根据请求我的login.php文件(X是我通过ssh登录时使用的用户名和密码):
<?php
$db_hostname = 'localhost';
$db_database = 'publications';
$db_username = 'XXX';
$db_password = 'XXX';
?>
你能尝试这些来排除任何进一步的故障吗
-
打开错误日志
<?php error_reporting(E_ALL); ini_set('error_reporting', E_ALL); ini_set('display_errors', 'On'); $mysql = mysqli_connect($db_hostname, $db_username, $db_password); //maybe it is required to add your database_name here if ($mysqli->connect_error) { die('Connect Error: ' . $mysqli->connect_error); } ?>
- 尝试回显php信息
要么这个:
<?php echo 'Configuration file (php.ini) path: ', get_cfg_var('cfg_file_path');
或
<?php
// Show all information, defaults to INFO_ALL
phpinfo();
// Show just the module information.
// phpinfo(8) yields identical results.
phpinfo(INFO_MODULES);
?>