Чтобы установить план хостинга, я использую команды Plesk в SSH, как указано в их официальном руководстве. При вводе непосредственно в SSH (Putty) он работает отлично. Строка выглядит следующим образом с явно жестко запрограммированными значениями в CLI:
/usr/local/psa/bin/domain --create '.$url.' -owner mynamehere -ip '.IP_SERVER_PLESK.' -status enabled -hosting true -hst_type phys -login '.$ftp_user.' -passwd '.$ftp_pw.' -www false -php true -php_safe_mode false -hard_quota 100M
Затем я помещаю этот запрос в скрипт php, который выполняет другие действия после установки хостинга. Теперь о странной части: при вызове этого скрипта из CLI он также работает нормально, я делаю ./myscript.php
и он устанавливает хостинг, затем отправляет электронные письма и т. д.
Однако после того, как я создаю задание cron для регулярного вызова того же сценария, команда Plesk не работает. Cronjob запускается в Plesk как
*/15 * * * * /usr/bin/php /home/scripts/myscript.php
и он отлично работает для всего, НО установка хостинга Plesk, которая возвращает
«Невозможно прочитать файл конфигурации панели управления» и поэтому не устанавливает хостинг домена. Тем не менее, это тот же сценарий, который я вызываю вручную!
На этом сервере PHP используется для вызова cronjob, а тот, который используется в CLI, отличается? Что мне не хватает, помощь очень ценится!
С уважением.
Посмотрите на окружающую среду при интерактивном запуске (т.е. set
или env
). Скорее всего, существуют некоторые переменные среды, которые говорят Plesk, где находятся части. Вам нужно будет продублировать эти переменные в среде, в которой работает ваш php-скрипт - возможно, с помощью скрипта-оболочки bash.