In order to install a hosting plan, I use Plesk's commands in SSH as specified in their official guide. When typed directly in SSH (Putty), it works perfectly. The line is as follows with obviously values hard coded when in 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

I then put that request in a php script that does other things after hosting is installed. Now for the weird part: when calling that script from CLI it also works fine, I do a ./myscript.php and it installs the hosting, then sends emails etc. However after I create a cronjob to have that same script called regularly, then the Plesk command fails. The cronjob is started in Plesk as

*/15 * * * * /usr/bin/php /home/scripts/myscript.php

and it works fine for everything BUT the Plesk hosting install, that returns

"Unable to read Control Panel configuration file" and therefore does not install the domain hosting. Still this is the same script that I call manually ! On that server are the PHP used to call a cronjob and the one used in CLI different ? What do I miss, help greatly appreciated !



Look at the environment when running interactively (ie set or env). Odds are there are some environmental variables that tell Plesk where the pieces are. You will have to duplicate those variables into the environment that your php script runs -- probably with a bash wrapper script.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy