Ошибка внутреннего сервера 500 — session_start()
-
12-11-2019 - |
Вопрос
Ну, я нашел довольно много тем с ИСЭ 500, но ни одно из решений мне не помогло.
Я разработал приложение Facebook для нашего клиента, в котором можно представить некоторые аудиотреки, и, конечно же, хотел бы передать приложению некоторые параметры для каждого параметра app_data.Поэтому я интегрировал Facebook SDK 3.1.1. сделал все, чтобы правильно подключиться к фейсбуку.
На моем локальном xampp все работает нормально, веб-сервер нашей компании также без проблем запускает приложение, как и мое личное веб-пространство.Но когда я загружаю приложение на клиентский сервер, я получаю 500:Внутренняя ошибка сервера.Чтобы исключить какие-либо странные ошибки сценария с моей стороны, я попытался выполнить example.php, который поставляется с SDK.Та же ошибка.Даже когда я просто пытался создать экземпляр класса Facebook следующим образом:
<?php
require '../src/facebook.php';
$facebook = new Facebook(array(
'appId' => '???',
'secret' => '??????',
));
?>
Я уже посмотрел журналы ошибок серверов.Единственное, что там упоминается, это:
«Преждевременное завершение заголовков скриптов:пример.php"
Я также использовал широко предлагаемые error_reporting(E_ALL);
чтобы избежать неправильной обработки ошибок на стороне сервера.Ничего.Сервер просто не скажет мне, что не так.
Я нашел довольно много причин, по которым у других людей возникла эта ошибка, наиболее заметные из них:
- Отсутствующий
?>
тег в facebook.php/base_facebook.php - Несколько экземпляров
Facebook
- иFacebookApiException
... ни одно из предложенных решений мне не помогло.
Поэтому я попытался сравнить phpinfo как клиента, так и сервера нашей компании.Конечно, были некоторые различия, но для меня ничего очевидного.Я искал основные вещи, которые люди на форумах уже ассоциировали с ISE 500, такие как расширение cURL, версия PHP (5.3.9).Я не администратор сервера, у меня есть только базовые знания о конфигурациях серверов.Поэтому, чтобы убедиться, что чего-то не хватает, я попытался найти требования к серверу для Facebook SDK...
... но вся сеть не сообщает мне о требованиях к серверу для Facebook SDK.Даже в документации Facebook ничего не упоминается.Поэтому я надеюсь, что здесь найдется кто-нибудь, кто сможет мне в этом помочь.
И да...я уже обращался за помощью к админу сервера, он просто посмотрел на меня с двумя вопросительными знаками в глазах...и да...мне нужно использовать клиентский сервер :( вздох
Благодарим вас заранее...
ОБНОВЛЯТЬ:
Я перечислю то, что я попробовал в ответ на ваши предложения:
Сервер:
- установлено расширение cURL (7.20.1)
- версия PHP 5.3.9.
- пробовал включать другие файлы, работает нормально.Кажется, это не проблема с путями
- В журналах ошибок сервера отображается сообщение «Преждевременное завершение заголовков скриптов:пример.php"
- log_errors включен.error_log говорит: «нет значения»
- пытался ini_set("display_errors", true);
для отслеживания ошибок...нет эффекта
ОБНОВЛЕНИЕ 2
Итак, я смог выявить проблему после проверки файлов Facebook построчно.Внутренняя ошибка сервера 500 выдается сразу после попытки начать сеанс:
if(!session_id())
{
session_start();
}
Я отправил эту информацию администратору сервера и клиенту...Думаю, теперь это не в моих силах, я обновлю этот пост, когда получу ответ.Спасибо за ваши отзывы, ребята :)
РЕШЕНИЕ
Хорошо, администратор сервера обнаружил проблему.В session.save_handler было установлено значение «пользователь», он изменил его на «файлы», теперь все работает.:
session.save_handler = files
Еще раз спасибо за помощь!
Решение 3
У phpinfo() был ответ.В сеансе параметр save_handler должен был быть установлен из:
session.save_handler = user
к:
session.save_handler = files
Другие советы
Попробуйте добавить это в верхней части скрипта, прежде чем включать:
ini_set("display_errors", true);
. Это идеальный пример исключительно плохого вопроса.
Хотя единственная ваша проблема - how to get an error message from PHP
, вы написали целый роман по тому, что никто не должен знать.Неважно, если вы запустите приложение Facebook или что-нибудь еще.Неважно, какая версия скручивается.
Единственное, что вам нужно, это сообщение об ошибке PHP.
Вы должны отслеживать его.
Проверьте error_reporting
, error_log
и log_errors
директивы в phpinfo ().
Проверьте домашний каталог пользователя для дополнительных файлов журнала.Спросите сервер администратора для файлов журнала.Это должно быть единственным направлением вашего поиска - сообщение об ошибке PHP.