Skip to content

Commit 571d536

Browse files
authored
Merge pull request #357 from ByteInternet/Change-wp-cron-to-a-PHP-CLI-command-instead-of-curling-(which-gets-blocked-by-our-security-rules)
Change wp-cron to a PHP CLI command instead of curling (which gets blocked by our security rules)
2 parents 409f8e2 + d55fe37 commit 571d536

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

docs/ecommerce-applications/woocommerce/how-to-set-up-a-cron-job-for-wordpress-woocommerce-on-hypernode.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@ myst:
1111

1212
In this guide, we'll explain how to replace the default WordPress cron job with a cron job on your Hypernode server. This can be useful for low traffic sites, important tasks that need to be run at specific times, mitigating excessive DDoS attacks, or improving high page load times.
1313

14+
**Important note:** Access to wp-cron.php is blocked by default on Hypernode for security reasons. This is done to protect your server from potential DDoS attacks and unauthorized execution of scheduled tasks through the wp-cron.php endpoint. Setting up a proper server-side cron job as described in this guide allows you to safely run your WordPress scheduled tasks while maintaining the security benefits.
15+
1416
## Disable WordPress cron
1517

1618
To begin, disable the default WordPress cron by editing the wp-config.php file.
1719

18-
Connect to your server using an FTP client like FileZilla or an SSH client such as PuTTY. Navigate to the root directory of your WordPress installation and locate the `wp-config.php` file. Open the file for editing and add the following line of code before `/* Thats all. Stop editing! Happy blogging. */`:
20+
Connect to your server using an FTP client like FileZilla or an SSH client such as PuTTY. Navigate to the root directory of your WordPress installation and locate the `wp-config.php` file. Open the file for editing and add the following line of code before `/* That's all. Stop editing! Happy blogging. */`:
1921

2022
```php
2123
define('DISABLE_WP_CRON', true);
@@ -34,15 +36,15 @@ app@abcdef-example-magweb-cmbl ~ $ crontab -e
3436
Add the following line to your crontab file to set up a cron job that runs every minute:
3537

3638
```console
37-
* * * * * /usr/bin/chronic wget -q -O - 'https://yourdomain.hypernode.io/wp-cron.php?doing_wp_cron'
39+
* * * * * /usr/bin/chronic php /data/web/public/wp-cron.php > /dev/null 2>&1
3840
```
3941

40-
Replace `https://yourdomain.hypernode.io` with the actual URL of your WordPress site.
42+
**Note:** Make sure to replace `/data/web/public/wp-cron.php` with the actual path to your WordPress installation if it's different from the default path. The default WordPress installation path on Hypernode is typically `/data/web/public/`.
4143

42-
Explanation of the Cron Job Command
44+
### Explanation of the Cron Job Command
4345

4446
- `* * * * *`: Specifies the interval for the cron job. In this case, it is set to run every minute. You can adjust this based on your needs.
45-
- `wget -q -O - 'https://yourdomain.hypernode.io/wp-cron.php?doing_wp_cron'`: Uses wget to make a web request to the WordPress cron URL, triggering any scheduled tasks.
46-
- `>/dev/null 2>&1`: Discards any output from the command, preventing it from filling up your server logs.
47+
- `php /data/web/public/wp-cron.php`: Directly executes the WordPress cron script using PHP, eliminating the need for an HTTP request.
48+
- `> /dev/null 2>&1`: Discards any output from the command, preventing it from filling up your server logs.
4749

4850
After setting up your cron job, monitor your WordPress site to ensure that scheduled tasks are being executed as expected. This setup ensures that your WordPress or WooCommerce site on Hypernode handles scheduled tasks more reliably, especially under conditions where the default cron system may not suffice.

0 commit comments

Comments
 (0)