Unable to generate kid and privatekey, hence can not install Moodle 3.9
Unable to generate kid and privatekey, hence can not install Moodle 3.9¶
Минуточку вашего драгоценного внимания, господа и дамы!
Ошибка "Unable to generate kid and privatekey, hence can not install Moodle" актуальна для версии Moodle 3.7, Moodle 3.8 и Moodle 3.9. На более ранних версиях данная проблема замечена не была.
Ошибка "Unable to generate kid and privatekey, hence can not install Moodle 3.9" возникает в случае, когда Moodle устаналивается с помощью автоустановщика Softaculous, и, в процессе установки, запросы вида
127.0.0.1 - - [14/May/2020:12:30:04 +0300] test.domain GET /sreq.php HTTP/1.1 404 1856 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1" "-" 0.054-0.053
127.0.0.1 - - [14/May/2020:12:30:12 +0300] test.domain GET /privatekey.php HTTP/1.1 404 1856 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1" "-" 0.043-0.044
Возможные причины возникновения проблемы¶
- А - запись домена указывает на другой IP-адрес. Сайт не доступен по url вида http://test.domain, где http - протокол, что использует ваш сайт(http или https), а test.domain - доменное имя вашего сайта.
- Не верные права доступа(403)
- Файл .htaccess в домашнем каталоге сайта(или в каталогах уровнем выше), содержат правила, блокирующие запросы к php-скриптам в каталоге сайта. Или перенаправляют запросы куда-то не туда.
- Не выполняются php-скрипты сайта, в итоге запрос к php-скриптам, упомянутым выше завершается не удачно(403/404).
- Домен, или поддомен(если установка идёт не на домен вида test.domain, а на поддомен, к примеру moodle.test.domain), или альяс вида *.test.domain(в случае установки на подомен) - ранее был добавлен в качестве альяса для другого домена, расположенного выше в конфигурацинном файле веб-сервреа. В итоге запрос к сайту идёт на верный сервер, но обрабатывается конфигурацинноым файлом другого виртуального хоста, в результате softaculous стучитс не туда, получает в ответ 404-ю ошибку, и запросы также завершаются не удачно(404-й).
- Для виртуального домена указана не подходящая версия php.
- Настройки php, указанный для обработчика, запускаемого при выполнении скриптов сайта, на который устаналивается Moodle содержат не корректные значения(memory_limit очень малое значение имеет, к примеру, указывали размер блока памяти, и забыли M в конце добавить, или magic_quotes_gpc указан в php.ini для php 5.4 и выше, и т.п.). Как правило, такие ошибки не так просто заметить, но заметив довольно просто поправить(изменяем значение в php.ini, перезапускаем httpd/php-fpm, или завершаем с помощью kill обработчики php в режиме fastcgi для того, чтобы обработчики подхватили новые настройки).
Что необходимо проверить в первую очередь¶
В первую очередь првоеряем access.log сайта.
-
Если там 403/404 – при запросах к /sreq.php и /privatekey.php, проверяем права доступа.
-
Если запросов нет, убеждаемся что А-запись домена сайта ведёт на нужный IP-адрес.
dig +short +noshort test.domain
где вместо test.domain нужно указать домен своего ресурса. И что в конфигурациннном файле веб-сервера для нужного виртуального хоста указан именно этот адрес. А то бывает, что А-запись смотрит на дополнительный IP, а виртуальный хост ожидает запросы на основной IP сервера, и наоборот.
-
Проверяем, выполняются ли в домашнем каталоге сайта скрипты php(кидаем в домашний каталог сайта скрипт phpinfo.php вида
<?php phpinfo;?>
). -
Если есть проблемы с выполнением php-скриптов(не верные права на suexec, или на файл враппера php, не корректные настройки в php.ini) - исправляем. Проверяем, что тестовый phpinfo.php доступен по URL http://test.domain/phpinfo.php.
-
Если запросы ведут не туда из-за альясов в конфигурационном файле веб-сервера – удаляем альясы, добавленные ранее другому виртуальному хосту, и мещающие корректно работать нашему виртуальному хосту.
Причину возникновения проблемы обнаружили, что дальше?¶
Повторяем в Softaculous установку Moodle на сайт, на этот раз она должна завершиться успешно.