Вопрос

Ну, я нашел довольно много тем с ИСЭ 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top