 [ ← blog / cpanel ](/) Jun 20, 2013  ·  \#cpanel  ·  3 min read 

# Setup Drupal cron through cPanel



 Drupal uses a cron to take care of clean up tasks, as well as utilizing certain features. By default Drupal executes its cron run every three hours based on a user visit. This causes the cron to be executed over HTTP. Depending on the generally it can be more efficient to execute your Drupal cron directly through PHP command line on the server side versus HTTP. This is easily accomplished by setting on a cron job that can be executed at an interval of your choice.![Drupal Cron configuration page](http://glamanate.com/sites/default/files/wp-content/uploads/2013/06/Screen-Shot-2013-06-20-at-9.00.22-PM.png)First get into Drupal and head over to the Configuration -&gt; Cron page (*admin/config/system/cron).* You're going to want to change "Run cron every" to *Never* and make note of the URL one this page (best to keep tab/window open.) Think of the cron_key as the cron action's password. Now we need to get the location of your PHP's environment path - this tells the cron job we're executing the file with PHP. Create a *phpinfo()* file and view it - search (or scroll down to) for the Environment section. The path value should have something similar to *usr/bin*. Your path to PHP would then be *usr/bin/php.*![cPanel Cron Jobs common settings](http://glamanate.com/sites/default/files/wp-content/uploads/2013/06/Screen-Shot-2013-06-20-at-9.10.11-PM.png)We have our essential bits of information, now log into your host's cPanel and enter the Cron Jobs page. If you're not a Unix pro, don't worry - cPanel has some great common settings built-in that can easily be modified. In the example, I selected "Once an hour" and then adjusted my hour setting to "Every 4 hours." Its up to you how often you want your Drupal cron to run and depends on what kind of services you provide on your website. Okay, now we need to configure our command to be executed. We need to specify the command we're using php from command line, and to execute our Drupal cron.php file, with the cron_key. Here is an example (make sure to remove line break): 

```
cd /home/account_name/public_html/ && 
    /usr/bin/php -f cron.php cron_key=bn3MXFBXo2Z8GCfytxbcmKaZ2_mNrIg_1kGfqQdbRSg
```

This moves into the public_html directory (change appropriately based on your Drupal installation, replacing 'account_name' with your cPanel login username.) The script then loads cron.php with the *-f* paramater. This tells PHP to pass parameters to the script - otherwise it would literally look for filename cron.php?cron_key=cd /home/hostjust/public_html/ &amp;&amp; /usr/bin/php -f cron.php cron_key=Q27VTve_6LHo74bgAAs2LSrBV3YQdEDi5tzjgKTlJeY not minding the fact there is a GET variable. To test, set the cron job to run every two minutes and set your email address in the field towards the top of the page. If you get an email with PHP notices (since there's no IP_ADDR being sent) you're successfully running your cron! To disable receiving email updates that are just output and not cron errors, add 

```
>/dev/null
```

to the end of your cron command. 

  ![](/themes/custom/mglaman/images/headshot.webp)Thanks for reading

I write about Drupal, PHP, and the quiet infrastructure behind large sites — caching, config, and testing. New posts land every week or two.

 [Subscribe via RSS →](/rss.xml) [About me →](/about-me) 

 



 

  [← Older

Custom WordPress Widget CSS Classes

 ](/blog/custom-wordpress-widget-css-classes) [Newer →

Drupal Commerce USPS Shipping

 ](/blog/drupal-commerce-usps-shipping)