При попытке просмотреть страницу 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 для этого пользователя (вероятно, мог бы просто дать ему запись) и вуаля, это сработало.

Другие вопросы по тегам