При попытке просмотреть страницу index.php на новой установке Grav в IIS, я получаю только страницу "http error 500"
Я пытаюсь использовать Grav CMS ( https://getgrav.org/) на Windows Server 2012 R2 с IIS. Я распаковал пакет с ядром grav и переместил его в папку с именем grav в следующую папку: C:\inetpub\wwwroot\
Когда я пытаюсь запустить сайт, я получаю следующее сообщение:
Эта страница не работает. Localhost в настоящее время не может обработать этот запрос. ошибка http 500
Если я добавлю пару выводов эха в файл index.php, я получу их, пока не появятся следующие строки кода, которые, кажется, никогда не запускаются и могут быть причиной моей проблемы:
// Process the page
try {
$grav->process();
} catch (\Exception $e) {
$grav->fireEvent('onFatalException', new Event(array('exception' =>
$e)));
throw $e;
}
Эта часть, кажется, является причиной того, что страница не загружается, и я не понимаю, почему это происходит. Я могу создавать дополнительные страницы и вставлять в них php-код, и я могу отобразить страницу без проблем.
Я сейчас в растерянности, потому что я убедился, что все модули php включены и php установлен. Я также установил php для IIS и убедился, что переписал URL для файла htaccess в файл web.config в соответствии с инструкциями.
Огромное спасибо за помощь.
1 ответ
Догадаться. Поэтому я использую PHP 7 и обнаружил, что журнал создается в следующем каталоге C: \ Windows \ Temp \ PHP70x64_errors.log. Однажды я обнаружил, что обнаружил следующее сообщение об ошибке:
Uncaught RuntimeException: открытие файла для записи не удалось из-за ошибки в C:\inetpub\wwwroot\grav\vendor\rockettheme\toolbox\File\src\File.php:198
Так что это заставило меня взглянуть на страницу разрешений на сайте Grav, и все исправления были для Linux, а не для Windows, но эта строка попалась мне на глаза: важно понять, что существует потенциальная проблема, если пользователь, которого вы используете для редактировать ваши файлы в файловой системе отличается от пользователя, под которым работает PHP.
Затем мне нужно было выяснить, под каким пользователем PHP работает, поэтому я создал файл test.php и добавил следующее:
<?php
echo exec('whoami');
?>
Который вернул мне авторитет \ iusr. Поэтому я дал все права доступа к папке Grav для этого пользователя (вероятно, мог бы просто дать ему запись) и вуаля, это сработало.