Я застрял с ошибкой в webapp, который я разрабатываю, я уверен, что это довольно простая ошибка.
Всякий раз, когда я запускаю этот код в Интернете, хром debbuger возвращает мне эту ошибку:
POST http://my_ip/server_wrapper.php 500 (Internal Server Error)
Вот фрагмент файла JQUERY, js file "
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
Чтобы показать ошибки на странице:
<?php ini_set('display_errors', '1'); ini_set('error_reporting', E_ALL); ?>
Сначала будет включаться отображение ошибок на самой странице, а не генерировать ошибку 500.
Во-вторых, убедитесь, что все ошибки сообщаются. Сюда входят Уведомления.
Совет: напишите код, который даже не запускает одно уведомление.
Чтобы найти файл журнала ошибок 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
Похоже, что расширение mysqli не установлено или не включено. Проверьте свой php.ini для extension=mysqli.so
строки extension=mysqli.so
, в противном случае включите его или установите с помощью sudo apt-get install php5-mysql