0

私が開発している webapp でエラーが発生しました。これは非常に基本的なエラーであると確信しています。

Web でこのコードを実行するたびに、クロム デバッガーから次のエラーが返されます。

 POST http://my_ip/server_wrapper.php 500 (Internal Server Error) 
  1. PHP サーバーは正常に動作し、phpinfo() はすべての情報を正しく返します
  2. Web サーバーは Apache です。
  3. iptables は完全にオープンで、LAN 環境で使用しています。
  4. Web ルート ディレクトリ内のすべてのファイルのパーミッションは 755 です。

これがJQUERY、jsファイルフラグメントです」

this.post    = function () {
 $.post ("server_wrapper.php",
  {
   _id:          this.id,
   _question:    this.question,
   _type:        "none"
  },
  function (data, status) {
   alert ("DATA: " + data + " status: " + status);
  }
 );
}

これがphpファイルです:

<?php

if (isset($_POST["_question"]) && isset($_POST["_type"]) && isset($_POST["_id"])) {

$question = $_POST["_question"];
$type     = $_POST["_type"];
$id       = $_POST["_id"];

$con      = mysqli_connect ("localhost", "user", "pass", "database");

if (mysqli_connect_errno($con)) {
    echo "Failed to connecto to db";

} else {
    mysqli_query ($con, "INSERT INTO questions (id, question, type) VALUES ('$id','$question','$type')");
}

mysqli_close ($con);
 }
?>

編集

これは、ログが何度も返すものです。

PHP Fatal error:  Call to undefined function mysqli_connect() in /var/www/server_wrapper.php
4

2 に答える 2

10

ページにエラーを表示するには:

<?php
    ini_set('display_errors', '1');
    ini_set('error_reporting', E_ALL);
?>

まず、500 エラーを生成する代わりに、ページ自体にエラー表示を有効にします。

次に、すべてのエラーが報告されていることを確認します。これには通知が含まれます。

アドバイス: 通知を 1 つも発生させないコードを作成してください。

PHP エラー ログ ファイルを見つけるには、次の手順を実行します。

grep error_log /etc/php.ini
grep ^error_log /etc/php.ini

MySQL を RedHat ファミリ サーバーにインストールするには、次の手順を実行します。

yum install mysql.x86_64
yum install mysql mysql-server
chkconfig --level 2345 mysqld on
service mysqld start
mysqladmin -u root password somepassword

最新の PHP バージョンにアクセスしたい場合は、次のリポジトリを使用することをお勧めします。

wget http://mirrors.coreix.net/fedora-epel/6/x86_64/epel-release-6-7.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

インストールするには:

rpm -Uvh remi-release-*.rpm epel-release-*.rpm
/bin/rm epel-release-*.noarch.rpm remi-release-*.rpm
perl -pi -e 's/enabled=0/enabled=1/g' /etc/yum.repos.d/remi.repo
yum update (optional - not recommended unless you know what you are doing)
yum install yum-plugin-priorities

リポジトリをインストールした後、それらを編集し、必要に応じて選択的に使用できるように有効に 0 に設定してください。

yum --enablerepo=remi,epel install whatever
于 2013-06-11T17:30:11.117 に答える