Ошибка 500 при вызове index.php в приложении laravel (среда Windows)

Я использую приложение laravel внутри контейнера докеров-контейнеров на основе Windows, используя IIS. Когда я запускаю приложение после запуска контейнера докера, страница server.php, присутствующая на C:\inetpub\wwwroot, отлично работает. Однако C:\inetpub\wwwroot\public\index.php возвращает 500 ошибок. Я включил журналы, запустил обновление для композитора и прикладные разрешения. Но до сих пор не повезло.

IIS10 PHP 7.0 Laravel 5.5

Сообщение журнала

GET/public/index.php - 80 - 172.18.224.1 Mozilla/5. 0+ (Windows + NT + 10.0; +WOW64; + Trident/7.0; +Touch; + rv: 11.0) + like + Gecko - 500 19 13 1

Файл web.config:

<configuration>

<staticContent>
    <remove fileExtension=".woff" />
    <remove fileExtension=".woff2" />

    <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
    <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />

<rewrite>
  <rules>
    <rule name="Imported Rule 1" stopProcessing="true">
      <match url="^(.*)/$" ignoreCase="false" />
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
      </conditions>
      <action type="Redirect" redirectType="Permanent" url="/{R:1}" />
    </rule>
    <rule name="Imported Rule 2" stopProcessing="true">
      <match url="^" ignoreCase="false" />
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
      </conditions>
      <action type="Rewrite" url="index.php" />
    </rule>
  </rules>
</rewrite>

Ответы

Ответ 1

С вершины моей головы это ошибки, с которыми я столкнулся при настройке laravel:

1- Разрешения хранилища каталогов

2- Разрешения начальной загрузки каталога

3- обновление композитора

Доступен файл 4-.env.

5-.env генерируется ключ

6- есть база данных

База данных 7- настроена правильно в.env

8- php artisan serve если виртуальный сервер не настроен

и если у меня есть какой-либо из них, я перезапускаю сервер для обновления значений.

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

php artisan cache:clear php artisan route:clear php artisan config:clear php artisan view:clear

Ответ 2

Ошибки 500.19 обычно возникают, когда у вас есть файлы конфигурации, которые плохо сформированы. Включить подробные ошибки в IIS и воспроизвести проблему. Вы получите четкое представление о том, что происходит не так.

Чтобы включить подробные ошибки в IIS - нажмите на веб-сайт ---> HTTP Errors---> Изменить функцию Settings→ Подробные ошибки.

Или вы также можете это сделать - https://blogs.msdn.microsoft.com/rakkimk/2007/05/25/iis7-how-to-enable-the-detailed-error-messages-for-the-website- в то время как-просматриваться-из-за-на-клиент-браузеров/

Ответ 3

Вы можете использовать правило импорта в правиле импорта Apache View Apache

Взгляните на поток stackoverflow. Laravel.htaccess переписать правило преобразования в IIS.

Если ничего не поможет, проверьте разрешение папки "хранилище" в вашем проекте. Обычно 500 поставляется с разрешением на запись или неправильной конфигурацией сервера, может быть связано с ошибкой разрешения записи, laravel.log может быть пустым!

Ответ 4

Ошибка 500 - ошибка сервера. Увидев, что ваша страница server.php работает нормально, я бы не подумал, что что-то в ваших файлах конфигурации вызывает ошибку. Скорее всего, что нет, на странице index.php есть какой-то PHP-код, вызывающий ошибку. Я предлагаю использовать xdebug для выполнения кода, чтобы найти ошибку.