昨天我在VPC中设置了Amazon EC2和RDS,在EC2上安装了PHP和Apache。我可以做的是连接到EC2,通过运行PHP脚本从EC2连接到DB(mySQL),使用MySQL工作台和SSH隧道连接来自本地机器的数据库。问题是我不能在我的PHP脚本中使用POST方法,脚本运行但它没有获取任何值。这是我最容易进行测试的脚本(我使用Postman进行测试):
<?php
$response = array();
if (isset($_POST['login']) && isset($_POST['password']) && $_POST['login'] != '' && $_POST['password'] != '' ){
$login = $_POST['login'];
$md_password = md5($_POST['password']);
require_once 'config.php';
$con = mysqli_connect(hostname, username, password, db_name) or die("Connection error");
$result = mysqli_query($con, "insert into users(login, md_password) values ('$login', '$md_password')");
if($result) {
$response["success"] = 1;
$response["message"] = "Registration successful.";
echo json_encode($response);
} else {
$user_exist_check = mysqli_query($con, "select * from users where login = '$login'");
if ($user_exist_check) {
$response["success"] = 0;
$response["message"] = "User already exists.";
echo json_encode($response);
} else {
$response["success"] = 0;
$response["message"] = "Error. Try again.";
echo json_encode($response);
}
}
} else {
$response["success"] = 0;
$response["message"] = "Fill all the fields.";
echo json_encode($response);
}
?>
如果我在本地主机上从Apache运行脚本,它可以正常工作:
但是,当我尝试从EC2执行相同的脚本时,我得到500内部服务器错误或200 OK但没有良好的响应:
我是否必须设置其他内容才能使其正常工作?只插入数据库(没有任何POST方法)的脚本可以正常工作。
如果它很重要 - 我的计划是构建一个通过EC2(传递JSONS)连接到mySQL数据库的Android应用程序,并为S3上的照片添加额外存储空间。另外我想稍后构建一个webapp,它也可以使用相同的S3存储和数据库。我认为它应该工作,现在只有那些POST方法不起作用...