Skip to content

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
завершаются не удачно(код ответа в логе отличается от 200-ки).

Возможные причины возникновения проблемы

  1. А - запись домена указывает на другой IP-адрес. Сайт не доступен по url вида http://test.domain, где http - протокол, что использует ваш сайт(http или https), а test.domain - доменное имя вашего сайта.
  2. Не верные права доступа(403)
  3. Файл .htaccess в домашнем каталоге сайта(или в каталогах уровнем выше), содержат правила, блокирующие запросы к php-скриптам в каталоге сайта. Или перенаправляют запросы куда-то не туда.
  4. Не выполняются php-скрипты сайта, в итоге запрос к php-скриптам, упомянутым выше завершается не удачно(403/404).
  5. Домен, или поддомен(если установка идёт не на домен вида test.domain, а на поддомен, к примеру moodle.test.domain), или альяс вида *.test.domain(в случае установки на подомен) - ранее был добавлен в качестве альяса для другого домена, расположенного выше в конфигурацинном файле веб-сервреа. В итоге запрос к сайту идёт на верный сервер, но обрабатывается конфигурацинноым файлом другого виртуального хоста, в результате softaculous стучитс не туда, получает в ответ 404-ю ошибку, и запросы также завершаются не удачно(404-й).
  6. Для виртуального домена указана не подходящая версия php.
  7. Настройки 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 на сайт, на этот раз она должна завершиться успешно.