Improve WP Cron with Real Cron Job or Monitoring Sites

Default WP setups use a virtual cron feature where maintenance and scheduled tasks occur when site scripts are triggered (when somebody visits site).

That works fine for active sites that have a fluent visitors stream. On projects where WP is not fluently visited these task don’t get triggered as expected.

 

Solution 1

Setup a real cron job from cPanel .

/usr/bin/wget -q -O – http://[yourwebsite.com]/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Can be hourly or each 15, 30 minutes.

Optionally disable WP cron from wp-config.php :

define(‘DISABLE_WP_CRON’, true);

Solution 2

Schedule an online  status monitoring service to check your WP based site.  When they check they will also trigger your WP scripts.

Ex. StatusCake.com or UptimeRobot.com

 

WP cron triggers various functionality:

  • Checking for theme & plugin updates
  • Publish scheduled posts
  • Sending pingbacks
  • Other actions scheduled by plugins like converting videos, cleaning files or database

Upgrade to latest CURL and Open SSL in WHM

Problem:
eCommerce providers like Paypal introduced more strict SSL requirements. Ex:
“requires OpenSSL >= 1.0.1 to be installed on your server”

PHP info shows:
CURL
SSL Version OpenSSL/1.0.0

Fix:

  • Install latest CURL:

cd /usr/local/src
wget https://curl.haxx.se/download/curl-7.52.1.tar.gz
tar -xvzf curl-7.52.1.tar.gz
cd curl*

./configure –enable-threaded-resolver –enable-http –enable-ftp –enable-proxy –enable-tftp –enable-ntlm –enable-static –with-ssl=/usr/local/ssl –enable-ipv6 –enable-shared –with-libidn
make && make install

/usr/local/bin/curl –version

  • Configure PHP to use it -Create a new file /var/cpanel/easy/apache/rawopts/all_php5 with this contents:
    –with-curl=/usr/local/src/curl-7.52.1
  • Rebuild Apache & PHP with EasyApache 3.

Result:

PHP info should now show:
cURL Information 7.52.1
SSL Version OpenSSL/1.0.1e