【问题标题】:Installing MySQLi on AWS server在 AWS 服务器上安装 MySQLi
【发布时间】:2021-07-07 04:58:32
【问题描述】:

我的数据库在我的计算机上本地运行,但过去几个小时一直在尝试找出 AWS 权限和服务器。我终于找到了我的网站问题到 mysqli 连接功能。关于如何解决这个问题的任何想法?我收到错误:

Failed to load resource: the server responded with a status of 500 ()

这不是超级有用的错误代码。然后我的代码是这样的(请记住,我从代码中删除了我的个人信息以访问数据库。)

<?php
header("Access-Control-Allow-Origin: http://bucketsiteurl");
header('Access-Control-Allow-Credentials: true');
header("Access-Control-Allow-Methods: PUT, GET, POST, DELETE");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
header("Content-Type: application/json; charset=UTF-8");


$db_host = 'databaseurl:3306';
$db_username = 'user';
$db_password = 'password'; 
$db_name = 'dbname';
$mysqli = new mysqli($db_host, $db_username, $db_password,$db_name);

if ($mysqli->connect_error) {
die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
}

define('post_host', 'databaseurl:3306');
define('post_user', 'user');
define('post_pass', 'password');
define('post_name', 'dbname');

function connect()
{
  $connect = new mysqli(post_host ,post_user ,post_pass ,post_name);

  if (mysqli_connect_errno($connect)) {
    die("Failed to connect:" . mysqli_connect_error());
  }

  mysqli_set_charset($connect, "utf8");

  return $connect;
}

$con = connect();
?>

当我在我的计算机内部托管它并转到脚本位置时,我的 php 脚本运行良好,但是当我尝试在 AWS 服务器上运行它时,我收到上述错误。我知道服务器正常工作,因为我做了一些其他的 php 脚本,只是有

<?php
echo phpinfo();
?>

这个脚本执行得很好,显示了 php 信息。我的其他脚本也可以正确处理标题信息。我唯一遇到问题的脚本是连接到我的 MySQL 服务器的数据库 php 脚本。任何建议都非常感谢,谢谢!

更新: 我正在使用 PuTTY 访问 php 脚本。

[Mon Apr 12 05:17:46.467711 2021] [:error] [pid 1067] [client ip] PHP Fatal error:  Class 'mysqli' not found in /var/www/html/database.php on line 13

【问题讨论】:

  • 你有日志吗?里面有什么东西吗?
  • @Evert 我不知道 AWS 如何拥有日志。到今天为止,我对它还是个新手。
  • @Evert 我正在使用 PuTTY 连接和创建 php 脚本。有没有办法可以通过它访问日志?或者 AWS 控制面板是否有我可以访问的日志?谢谢!
  • 我同意 Felix,你不能在 lambda 中使用 Putty (ssh)。
  • 所以,这是你的答案 - 你需要安装(yum 或 apt,取决于你的操作系统)php-mysqli

标签: php mysql amazon-web-services server


【解决方案1】:

您需要安装(yum 或 apt,取决于您的操作系统)php-mysqli。当你这样做时,你的 phpinfo() 将有 mysqli 部分 顺便说一下,这个问题与 AWS 无关。

【讨论】:

  • 谢谢!我将补充一点,一旦在服务器上安装了 php-mysqli,就需要重新启动 apache 服务器。你是对的,它不是 AWS。一切都没有安装。我将更新我的标题以反映本文的内容。然后我将其标记为已解决。再次感谢。
猜你喜欢
  • 1970-01-01
  • 2015-05-26
  • 1970-01-01
  • 1970-01-01
  • 2015-10-18
  • 1970-01-01
  • 2016-06-05
  • 2016-08-11
  • 2018-12-22
相关资源
最近更新 更多