Skip to content

Instantly share code, notes, and snippets.

@gelanivishal
Last active February 21, 2017 01:38
Show Gist options
  • Save gelanivishal/1712ea756a1778e567ad87569ee1361d to your computer and use it in GitHub Desktop.
Save gelanivishal/1712ea756a1778e567ad87569ee1361d to your computer and use it in GitHub Desktop.
Find the PHP binary and php.ini path
To display the path to your PHP binary, enter
which php
A sample result follows:
/usr/bin/php
Create the cron job
To create a cron job for the Magento file system owner, enter the following command as a user with root privileges:
crontab -u <Magento file system owner user name> -e
For example,
crontab -u magento_user -e
A text editor displays. (You might need to choose a text editor first.)
* * * * * <path to php binary> <magento install dir>/bin/magento cron:run | grep -v "Ran jobs by schedule" >> <magento install dir>/var/log/magento.cron.log
* * * * * <path to php binary> <magento install dir>/update/cron.php >> <magento install dir>/var/log/update.cron.log
* * * * * <path to php binary> <magento install dir>/bin/magento setup:cron:run >> <magento install dir>/var/log/setup.cron.log
where
<path to php binary> is the absolute file system path to your PHP binary
<magento install dir> is the directory in which you installed the Magento software; for example, /var/www
| grep -v "Ran jobs by schedule" filters this message from the log, making any errors easier to spot
The first command (magento cron:run) reindexes indexers, send automated e-mails, generates the sitemap, and so on. Usually it’s associated with the PHP command line .ini file. The other two commands are used by the Component Manager and System Upgrade.
If you're a contributing developer (that is, you cloned the Magento 2 GitHub repository), only the first line applies to you. See the examples that follow for details.
Example 1: Everyone except contributing developers
For example, if the PHP binary is located in /usr/bin, you installed Magento in /var/www/html/magento2, enter
Example:
* * * * * /usr/bin/php /var/www/magento2/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /var/www/magento2/var/log/magento.cron.log
* * * * * /usr/bin/php /var/www/magento2/update/cron.php >> /var/www/magento2/var/log/update.cron.log
* * * * * /usr/bin/php /var/www/magento2/bin/magento setup:cron:run >> /var/www/magento2/var/log/setup.cron.log
Example 2: Contributing developers only (that is, you cloned the Magento 2 GitHub repository):
* * * * * /usr/bin/php /var/www/magento2/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /var/www/magento2/var/log/magento.cron.log
The preceding works for contributing developers because if you cloned the GitHub repository you don’t have an update directory and errors result if you run magento setup:cron:run. These cron jobs work in the Web Setup Wizard, which contributing developers cannot use for installing or updating the Magento application or components.
Save your changes to the crontab and exit the editor.
* * * * * <path to php binary> <magento install dir>/bin/magento cron:run | grep -v "Ran jobs by schedule" >> <magento install dir>/var/log/magento.cron.log
* * * * * <path to php binary> <magento install dir>/update/cron.php >> <magento install dir>/var/log/update.cron.log
* * * * * <path to php binary> <magento install dir>/bin/magento setup:cron:run >> <magento install dir>/var/log/setup.cron.log
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment