Интегральная ошибка сервера 500 - session_start () - PullRequest
2 голосов
/ 25 февраля 2012

Ну, я нашел довольно много потоков с ISE 500 , но ни одно из решений не сработало для меня.

Я разработал приложение facebook для нашего клиента, чтобы представить некоторые аудиотреки иКонечно, хотелось бы передать некоторые параметры приложению в соответствии с параметром app_data.Поэтому я интегрировал facebook SDK 3.1.1. сделал все, чтобы правильно подключиться к Facebook.

На моем локальном xampp все работает нормально, наш веб-сервер companys также без проблем запускает приложение, поэтомуделает мое личное веб-пространство.Но когда я загружаю приложение на клиентский сервер, я получаю 500: Internal Server Error.Чтобы исключить любые странные ошибки скриптинга на моей стороне, я попытался выполнить файл example.php, поставляемый с sdk.Та же ошибка.Даже когда я просто пытался создать экземпляр класса Facebook следующим образом:

<?php

require '../src/facebook.php';

$facebook = new Facebook(array(
  'appId'  => '???',
  'secret' => '??????',
));
?>

Я уже просматривал журналы ошибок серверов.Единственное, что он упоминает, это:

«Преждевременный конец заголовков скриптов: example.php»

Я также использовал широко предложенный error_reporting(E_ALL);, чтобы избежать неправильной обработки ошибокна стороне сервера.Ничего такого.Сервер просто не скажет мне, что не так.

Я нашел довольно много причин, по которым другие люди получили эту ошибку, наиболее известные из них:

  • Отсутствует тег ?> вfacebook.php / base_facebook.php
  • Несколько экземпляров Facebook - и FacebookApiException

... ни одно из предоставленных решений не помогло мне.

Поэтому я попытался сравнить phpinfos как клиента, так и нашего сервера.Конечно, были некоторые различия, но ничего очевидного для меня.Я искал основные вещи, которые люди на форумах уже связывали с ISE 500, такие как расширение cURL , php версия (5.3.9) .Я не являюсь администратором сервера, я получил только базовые знания о конфигурации сервера.Поэтому, чтобы быть уверенным, что чего-то не хватает, я попытался найти требования к серверу для Facebook SDK ...

... но весь интернет не скажет мне требования к серверу для Facebook SDK.Даже в документации Facebook ничего не сказано.Поэтому я надеюсь, что здесь может быть кто-то, кто может помочь мне с этим.

И да ... Я уже обратился за помощью к администратору сервера, он просто посмотрел на меня с двумя вопросительными знаками в глазах ...и да ... я должен использовать клиентский сервер :( вздох

Благодарю вас в ожидании ...


ОБНОВЛЕНИЕ:
Я перечислю то, что я попробовал в ответ на ваши предложения:

Сервер:
- установлено расширение cURL (7.20.1)
- версия php 5.3.9.
- попытался включить другие файлы, работает нормально. Не похоже, что проблема с путями
- Журналы ошибок сервера просто показывают «Преждевременное завершение заголовков скриптов: example.php»
- log_errors включен. Error_logговорит «нет значения»
- пробовал ini_set("display_errors", true); для отслеживания ошибок ... без эффекта


ОБНОВЛЕНИЕ 2

Итак, я былв состоянии идентифицировать проблему после проверки файлов facebook строка за строкой. Внутренняя ошибка сервера 500 выдается сразу при запуске после попыткиначать сеанс:

if(!session_id())
{
    session_start();
}

Я отправил эту информацию администратору сервера и клиенту ... Я полагаю, что это не в моих руках, я обновлю этот пост, когда получу ответ.Спасибо за ваши отзывы, ребята:)


РЕШЕНИЕ

Хорошо, администратор сервера теперь определил проблему.Для session.save_handler было установлено значение «user», он изменил его на «files», теперь все работает.:

session.save_handler = files

Еще раз спасибо за помощь!

Ответы [ 3 ]

6 голосов
/ 25 февраля 2012

Попробуйте добавить это вверху вашего скрипта, прежде чем включить:

ini_set("display_errors", true);
0 голосов
/ 27 февраля 2012

У phpinfo () был ответ.В сеансе параметр save_handler должен был быть установлен от:

session.save_handler = user

до:

session.save_handler = files

0 голосов
/ 25 февраля 2012

Это прекрасный пример исключительно плохого вопроса.

Хотя единственная ваша проблема - how to get an error message from PHP, вы написали целый роман о вещах, которые никто не должен знать. Не имеет значения, запускаете ли вы приложение на Facebook или что-то еще. Не имеет значения, какую версию curl вы установили.

Единственное, что вам нужно, это сообщение об ошибке PHP.
Вы должны отследить это. Проверьте директивы error_reporting, error_log и log_errors в phpinfo ().
Проверьте домашний каталог пользователя на наличие дополнительных файлов журнала. Спросите администратора сервера для файлов журнала. ЭТО должно быть единственным направлением вашего поиска - сообщение об ошибке PHP.

...