При попытке просмотреть страницу index.php на новой установке Grav в IIS, я получаю только страницу «http error 500» - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь использовать Grav CMS (https://getgrav.org/) на Windows Server 2012 R2 с IIS. Я разархивирую пакет grav core и переместил его в папку с именем 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 Ответ

0 голосов
/ 17 января 2019

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

...