Подтвердить что ты не робот

502 Bad Gateway PHP Storm, но установлены интерпретатор и исполняемый файл

  • ОС: Windows 7 - 64 бит
  • PHP: автономный php.exe(PHP ver 5.5)
  • PhpStorm Версия: 10.0.1

Все советы, которые я вижу при выходе из шлюза 502 Gateway в PhpStorm, включают только то, что у вас есть ваш интерпретатор и исполняемый набор. Я использую автономный php.exe(http://windows.php.net/download#php-5.5 VC11 x86 Thread Safe (2015-Oct-01 01:25:56)) и все настроено на PHP 5.5

введите описание изображения здесь

Я честно растерялся, почему я все еще получаю 502 ошибки.

Я запускал его несколько раз, и он выполнялся один раз (никаких изменений с экземплярами до или после не было), которые я нашел очень странными, но только для загрузки одной страницы, и это не было повторяемым вложением.

Изменить: реализовано одно отличие, когда я открыл другой проект для сравнения. Когда-то это работало, контекстное меню контекстного меню выглядело иначе. Другой проект отлаживается просто отлично. В чем разница? Что дает? Оба проекта используют один и тот же интерпретатор.

... Также найдено, что, возвращаясь к рабочему проекту, элемент дополнительного контекстного меню исчез.

введите описание изображения здесь

Изменить 2: все еще проблема с поиском... обнаружил, что определенные файлы будут запускаться сразу же при запуске PHPStorm и будут иметь это контекстное меню. Другие файлы, однако, не будут при запуске PHPStorm. Если я попытаюсь отлаживать файл без дополнительного меню, сервер даст 502, а тогда у "хороших" файлов не будет дополнительного меню. Если я начну с того, у кого есть дополнительное контекстное меню, оно будет работать, хотя, если я следую одному, нет, первый файл перестает работать. Я чувствую, что делаю "прогресс", но я также становлюсь более смущенным, тем более, что каждый раз, когда я пытаюсь запустить другой файл, он спрашивает меня: "[x] - это конфигурация запуска одного экземпляра. вы хотите остановить работу?" В какой момент я нажимаю "Остановить и повторить". Я бы подумал, что те, кто дает 502, не будут иметь ничего переносятся в "хорошие" файлы, если все будет остановлено и перезапущено... но это, похоже, не так.

Изменить 3: Интересно, может быть, моя настройка интерпретатора может быть плохой, поэтому я схватил securewamp (http://securewamp.org/en/), получил портативную версию, настройку, использовал настройку по умолчанию с Добавлена ​​xdebug (эта версия: php_xdebug-2.4.0rc1-5.4-vc9.dll) и такая же проблема.

Я даже теряю дополнительные вещи, чтобы проверить.

Отредактируйте 4: убедитесь, что это что-то в PHPStorm сейчас. Один из файлов php, который никогда не работал, я открыл непосредственно с php.exe, и он работал нормально. Это должно быть некоторые настройки в phpstorm, которые я потерял, или некоторая сломанная функция.

Изменить 5: После следствия потенциальных причин попробовал инструмент "Запуск > Проверять отладчик". Путь и URL-адрес оставлены по умолчанию (нет причин для их изменения), и попытайтесь выполнить vlaidate в "Пожалуйста, убедитесь, что веб-путь к проверке script настроен правильно" и отображает мою директорию.

Изменить 6: проверка была только на 127.0.0.1, потому что это то, что работает SecureWAMP. Отключение его сервера приводит к тому, что "не удалось выполнить проверку script:" Соединение отказано: connect ".

Edit 7: Как указано LazyOne, мои файлы в первом изображении представляют собой два разных типа файлов (php и html). Я сделал это с .php файлами с обеих сторон, я просто захватил два файла, в которых я сейчас работал для скриншота. Вот пример одного из php. введите описание изображения здесь

Изменить 8: Я думаю, что, наконец, я получаю твердую структуру, когда она работает, а когда нет. Контекстное меню было красной селедкой. Без условий подменю будут работать очень хорошо, когда будут выполнены условия.

  • а. Файл, который работает (до сих пор ни один шаблон не замечен для рабочих файлов и нерабочих, фактически, один рабочий и один неработающий файл имеет тот же самый код) должен быть выбран.

  • В

    . Невозможно, при любых условиях, "Остановить и повторить" файл, так как это приведет к тому, что после этого файл ударит по плохим шлюзам.

  • С. Вы не можете открыть нерабочий файл. Если вы это сделаете, текущий сервер зависает и будет продолжать зависать, пока "остановка и повтор" не будут запущены в другом файле, после чего все открытые файлы получат ошибку "плохой шлюз". Открытие нерабочего файла приведет к тому, что в настоящее время рабочие файлы получат ошибку "плохой шлюз".

  • Д. Чтобы снова работать рабочие файлы после того, как C или D требует перезагрузки системы.

Редактировать 9:   Проворачивался с помощью инструмента настройки отладки проверки и, наконец, получил его, чтобы дать мне другой ответ (глупо для него, на самом деле просто нужно было указать целевой каталог в URL-адресе на проверку script, хотя я думал, что сайт Хотел прямо из этого каталога. О, хорошо. Во всяком случае, была одна ошибка, не уверен, что это причина моих проблем или нет, но изучит ее. введите описание изображения здесь

Отредактируйте 10: Добавляем к php.ini, чтобы вывести ошибку выше... xdebug.remote_enable = 1

Изменить 11: Никакой реальной выгоды от добавленной строки.

Отредактируйте 12: Проводка скриншота обозревателя браузера введите описание изображения здесь

Изменить 13: Обновления версии phpStorm для EAP (10.0.2). Пока что тот же результат, хотя теперь, по крайней мере, консоль покажет мне ошибку, а не только веб-страницу. Также попробовал полностью запустить сервер SecureWAMP apache только, чтобы узнать, что-то блокирует меня от перехода от каталога htdocs по умолчанию.

введите описание изображения здесь

4b9b3361

Ответ 1

FWIW, я думаю, это может быть так же просто, как проблема с тайм-аутом.

Моя среда очень похожа на OPs, Win764, PhpStorm 10.0.4, PHP 5.5.27.

У меня есть некоторые автоматические тесты F3, где я часто вижу ошибку 502 Bad Gateway при запуске тестового кода "в браузере", используя одну из маленьких значков на панели инструментов, которая плавает в верхнем правом углу моего кода. (См. Изображение ниже.)

Для некоторых моих тестовых страниц ошибка, похоже, впервые. Пробег один раз, не удался, снова запустился, работает нормально. Другие, кажется, требуют 2 или 3 пробега, прежде чем они будут работать. Но у меня есть пара, которую я никогда не видел в браузере.

OTOH, если я щелкнул правой кнопкой мыши в окне кода для любой из этих страниц и отлаживал, код отлично работает, разрешаю ли я ему полностью пройти или идти по очереди.

Ясно, что моя настройка инструмента не ошибается. Некоторые тесты могут запускаться из браузера каждый раз.

То, что я ДУМАЮ, происходит в том, что тесты с вероятностью к неудаче выполняют довольно тяжелые запросы db. И мой php-интерпретатор агрессивно отключает мои запросы, когда я запускаю их в браузере.

Но каждый раз, когда страница запускается и время истекает, один или несколько ее запросов кэшируются, и в следующий раз, когда я запустил его, страница будет быстрее. В конце концов, для тех, которые будут запускаться вообще, достаточно работы db кэшируется, чтобы страница могла попасть под провод и закончить до истечения срока.

Так что моя теория. То, что я не нашел, - это где и как изменить интервал тайм-аута интерпретатора. То есть, интервал ожидания при запуске из PhpStorm. У меня уже есть

max_execution_time = 300

в моем файле php.ini и может видеть, что он установлен, когда я использую phpinfo(). Но я должен поверить, что он переопределяется, когда интерпретатор запускается из PhpStorm.

Обновление - возможное исправление. Поэтому, хотя мой файл php.ini имеет параметр max_execution_time, я попытался посмотреть настройки моего php-интерпретатора, как описано в this Страница поддержки PhpStorm, шаги 1 и 2. Там мое max_execution_time равно 0. Итак, я добавил параметр для него, используя пользовательский интерфейс на этой странице, который будет таким же, как у моего php.ini. (Затем я закрыл и снова открыл PhpStorm - большую параноию старого программиста.) До сих пор я видел сообщение с плохим шлюзом на моей "худшей" странице, но даже во второй раз. Остальные, похоже, все заканчивают. Я сделаю некоторое бдительное ожидание и посмотрю, действительно ли это "исправление" делает мне хороший хороший срок.

(И прежде, чем кто-либо захочет указать на это: Да, запросы на кеширование - ужасная идея для автоматических тестов. Должен исправить это - но только после того, как я выясню, как продлить тайм-аут интерпретатора, чтобы мои тесты могли преуспеть без кэширование.)

введите описание изображения здесь