Forcing cron jobs to use chosen php version
In all but our oldest servers, we have implemented a feature that allows you to chose what version of php you want to use on your account. While this works well for files running normally for your site, it will not work for cron jobs. Cron jobs will use the default php for the server if set up as directed in our article on How to run a cron job. You will need to specifically identify the php version 'switch' to have the cron job use that version for running your scheduled scripts. Below is a set of instructions that will guide you on how to edit the cron job command to use the specific switch.
How to force a specific php version for cron jobs
- First, log into your cPanel dashboard.
- Now that you are in the main cPanel area, find the Advanced category and click on the Cron Jobs icon.
- This takes you to the cron job set up page. At the bottom of the screen you will see the cron jobs you have currently scheduled. Click on the Edit link on the right to edit the cron command.
- You will now see the command line field so you can edit it. The cron command is in two parts, the first part calls the php and the second part is the path for the script you want to run. The command code for the sample cronjob is displayed below:
php -q /home/userna5/public_html/cronscript.phpWe want to replace the first part of the code (php -q) with (/opt/php54/bin/php -q) for php 5.3 and above:
/opt/php54/bin/php -q /home/userna5/public_html/cronscript.phpor (/opt/php52/bin/php -q) for php 5.2 as shown:
/opt/php52/bin/php -q /home/userna5/public_html/cronscript.php
- Enter the new code at the beginning of the command, then click the Edit Line button to save it. This cron job will now use your correct php version. You will need to do this for each cron job so that they are certain to use the correct php version.
Support Center LoginOur Login page has moved, Click the button below to be taken to the login page.
2017-09-25 2:23 am
Is this still valid? I'm getting error in cron and from shell cli when I try the examples above and my specific instance: /opt/php56/bin/php -q /home/askwino7/winelabnet/WHMCS/crons/cron.php
2017-09-25 2:31 pm
Yes it is still valid however the path may be different depending on the version of EasyApache on your server and the PHP packages being used. If you are using a fresh install of EasyApache4 your PHP will be located at /opt/cpanel/ea-phpXX/root/usr/bin/php. So if you wanted to execute it with 5.6 you would use /opt/cpanel/ea-php56/root/usr/bin.