Ошибка 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 для выполнения кода, чтобы найти ошибку.