Ошибка 500 при развертывании приложения Symfony 5 в IIS

#php #windows #symfony #url #iis

Вопрос:

так что в настоящее время я сталкиваюсь с проблемой.

  • IIS 10 и Symfony 5

Я пытаюсь развернуть свое приложение symfony на сервере Microsoft.

Поэтому я сталкиваюсь с ошибкой 500, см. экран

1

2

И файл web.config

 <configuration>
<system.webServer>
<defaultDocument>
<files>
    <clear />
    <add value="index.php" />
</files>
</defaultDocument>
    <rewrite>
        <rules>
            <rule name="Rewriter" stopProcessing="true">
                <match url="^(.*)$" ignoreCase="false" />
                <conditions>
                    <add input="{R:1}" pattern="^(index\.php|favicon\.ico)" ignoreCase="false" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                </conditions>
                <action type="Rewrite" url="./index.php/{R:1}" appendQueryString="true" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>
 

Я указал свой сайт на общедоступный файл.

Включена анонимная аутентификация.

очистите кэш в dev и prod уже сделано

Кажется, он находит страницу, но не может получить к ней доступ или что-то в этом роде. Если у кого-то есть какие-то зацепки, это может помочь, так как я занимаюсь этим уже 3 дня. Спасибо

ПРАВКА 1 :

Когда я набираю этот URL-адрес

http://192.168.1.87:89/login

Он понимает, что должен позвонить ей контролеру

[2021-08-06T12:49:37.795538 00:00] запрос.ИНФОРМАЦИЯ: Согласованный маршрут «вход». {«route»:»login»,»route_parameters»:{«_route»:»login»,»_controller»:»AppControllerDynamicConnectionController::index»},»request_uri»:»http://192.168.1.87:89/login»,»method»:»GET»} []

Может быть, это проблема с неправильной настройкой PHP?

Изменить 2

Решение от samwu

Измените время активности на 600 и перезапустите сервер.

Не сработало

3

Правка 3 :

Наконец, я изменил файл web.config на

 <configuration>
<system.webServer>
    <rewrite>
        <rules>
            <rule name="Rewriter" stopProcessing="true">
                <match url="^(.*)$" ignoreCase="false" />
                <conditions logicalGrouping="MatchAll">
                <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                </conditions>
                <action type="Rewrite" url="./index.php" appendQueryString="true" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>
 

И я внес изменения, как предложил samwu, и знаю, что у меня новая ошибка, на этот раз касающаяся Mysql.

Предупреждение PHP: Неперехваченное исключение PDO: PDO::__construct(): Ошибка при чтении пакета приветствия. PID=12136 в C:inetpubwwwrootlasernetSymfonyvendordoctrinedballibDoctrineDBALDriverPDOConnection.php:39

И

Следующее исключение PDO: SQLSTATE[HY000] [2006] Сервер MySQL исчез в C:inetpubwwwrootlasernetSymfonyvendordoctrinedballibDoctrineDBALDriverPDOConnection.php:39

И

Фатальная ошибка PHP: Максимальное время выполнения в 30 секунд превышено в C:inetpubwwwrootlasernetSymfonyvendordoctrinedballibDoctrineDBALDriverPDOConnection.php на линии 42

Однако моя база данных mysql хорошо доступна, база данных работает правильно, когда я запускаю приложение Symfony локально.

Комментарии:

1. Ошибка 500 является общим сообщением об ошибке и охватывает практически все, что может пойти не так с PHP-скриптом. Проверьте журналы ошибок вашего сервера, чтобы узнать точное сообщение об ошибке.

Ответ №1:

Эта проблема должна быть вызвана таймаутом FastCGI, попробуйте выполнить следующие действия, чтобы решить проблему:

  1. Откройте диспетчер iis.
  2. выберите функцию быстрой настройки CGI.
  3. выберите свою версию php-cgi.exe и нажмите «Изменить» на панели действий.
  4. установите значение тайм-аута 600 действий.

После внесения всех изменений вам необходимо перезапустить сервер iis и повторить попытку.

Комментарии:

1. Спасибо за ваш ответ, я действительно внес изменения, о которых вы мне говорили, и это все еще не работает. Он говорит мне: «невозможно получить доступ к этой странице».

2. Вы можете попробовать открыть дело с помощью : support.microsoft.com