Blazing Fast Cloud Servers

Server set-up in less than 1 minute, Instant scaling up or down as required, 99.95% uptime guaranteed, No hardware maintenance, Simple backup and monitoring, Unbeatable pricing.

Visit Website

How To Install WordPress with Webinoly (Enable Nginx FastCGI Cache)

Install WordPress

This tutorial shows you how to install WordPress with Webinoly (Enable Nginx FastCGI Cache)

The VPS used in this article: Vultr (1GB RAM, 1 vCore)
Get $100 of free Vultr credits if you sign up through this link!
Demo domain:
Please resolve the domain name to an IP address in advance
Please replace with your own domain name.

Webinoly is a powerful set of commands for doing just about anything you could wish. it officially only supports the latest LTS version of Ubuntu (20.04 and 18.04).

Webinoly provides a set of tools and commands that facilitate the web server administration.

Webinoly features:

  • Free SSL certificates for your sites with Let’s Encrypt and automatic server configuration.
  • HTTP/2 increase the speed of serving your content.
  • Always install the latest stable version of PHP (v7.4) and have the option to install earlier versions (7.2 and 7.3) if needed.
  • FastCGI Cache and Redis Object Cache for your WordPress site.
  • Install WordPress in any subfolder, Clone a WordPress site and support for external databases.
  • Get an A+ grade on Qualys (SSL Labs) Test.
  • Log viewer in real time.
  • Automatically optimize your server to get the most out of the available resources.

Can I use Webinoly in my shared hosting plan?

No, shared hosting plans do not allow access with sudo privileges required to install and make adjustments to the operating system. Typically, you can use Self-Managed VPS or Dedicated server with Webinoly.

The following part is the installation steps

1、Quick Setup, install LEMP Stack

LEMP stands for Linux + Nginx + MariaDB (MySQL) + PHP. LEMP is the most complete and necessary configuration for WordPress sites. build with Hostwinds KVM VPS and LEMP.

Affiliate Disclosure: This page contains affiliate links. If you click through and purchase an item, I may earn a commission.

wget -qO weby && sudo bash weby 3
MySQL has been installed successfully!
phpMyAdmin has been installed successfully!

******            INSTALLATION HAS FINISHED SUCCESSFULLY              ******
********      Save your DB access password in a secure place:       ********
******      root: ntzpsJBR0h3xoVsP       admin: TkCuyUIdnXfzaj60      ******

************************     D O N A T I O N S     *************************
***   If you like Webinoly, buy me a coffee or a beer to show support.   ***
*************     Bitcoin: 1E3Ybo5UcvaAr1MoK4nBnMRFFY9aEMiku3     **********
*******   GitHub Sponsors:     **********
***************    PayPal:     ****************
***   Your regular donations is what keep this project moving forward.   ***

2、Install WordPress, enable FastCGI Cache + Redis Object Cache

sudo site -wp -cache=on
root@blogwp-test:~# sudo site -wp -cache=on

Downloading WordPress...

 Nginx Helper Plugin has been installed!
 Please, activate this plugin for a better experience with FastCgi Cache.
 ** IMPORTANT - Plugin Settings **
- The “Caching Method” should be set to “Nginx FastCgi Cache”.
- Support for purge/url method is a premium feature only included in NGINX Plus (not-free) and we recommend not to trust in solutions or tools that use third-party NGINX modules to offer this feature.
- The Purge Method should be set to “Delete local server cache file”.

 Redis Object Cache Plugin has been installed!
 Please, activate this plugin for a better experience with WordPress Object Cache.
 ** IMPORTANT - Plugin Settings **
- Go to “Menu > Settings > Redis” and be sure that Object Cache is enabled.

WordPress Cache successfully enabled!
Site has been successfully created!

Opcache has been enabled

Disable FastCgi Cache:

sudo site -cache=off

Enable FastCgi Cache for an existant site

sudo site -cache=on

Normally the NGINX FastCGI cache is configured by Webinoly to expire every 30 days, this is a recommended value for websites with very low traffic.

To modify the configuration and values of FastCGI in Webinoly we use the following command:

sudo webinoly -config-cache

such as:

sudo webinoly -config-cache=[1h, 20m, 10m]

This means We will configure times of 1 hour in cache, 20 minutes of inactivity and 10 minutes for redirects. This would be a configuration that could work very well in very high traffic sites.

To clean/purge the cache you can do it from the “Nginx Helper” plugin or from the command line.

sudo webinoly -clear-cache=fastcgi

Testing Webinoly Nginx fastcgi cache:

curl -Ik
root@blogwp-test:~# curl -Ik
HTTP/1.1 302 Found
Server: nginx
Date: Fri, 16 Oct 2020 11:58:55 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Cache-Control: no-cache, must-revalidate, max-age=0
X-Redirect-By: WordPress
X-Cache-Status: MISS
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: public, no-cache
Referrer-Policy: no-referrer-when-downgrade

On the first request, Nginx returns X-Cache-Status: MISS

root@blogwp-test:~# curl -Ik
HTTP/1.1 302 Found
Server: nginx
Date: Fri, 16 Oct 2020 11:59:36 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Cache-Control: no-cache, must-revalidate, max-age=0
X-Redirect-By: WordPress
X-Cache-Status: HIT
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: public, no-cache
Referrer-Policy: no-referrer-when-downgrade

On the next request, Nginx returns X-Cache-Status: HIT

Visit the domain name at this time, you will find that the page is protected by HTTP authentication method, the next step will create an HTTP-Auth user.

3、HTTP Authentication

The “HttpAuth” command allows us to manage users with permission to access pages protected by the HTTP authentication method.

Create user with limited permissions to access only one specific domain:

sudo httpauth -add
root@blogwp-test:~# sudo httpauth -add

HTTP-Auth User: test3
HTTP-Auth Password: test12345

User 'test3' has been added successfully!

Please replace test3, test12345 with your own HTTP-Auth User and HTTP-Auth Password.

4、Complete the WordPress installation

Visit domain name again, HTTP authentication window will pop up , fill in the username test3 and password test12345. Then you will go directly to the wordpress installation interface and set the Username and Password:

5、Clear/Purge Cache

Clear FastCGI cache:

sudo webinoly -clear-cache=fastcgi

Clear redis cache:

sudo webinoly -clear-cache=redis

Clear memcached cache:

sudo webinoly -clear-cache=memcached

Clear opcache cache:

sudo webinoly -clear-cache=opcache

Clear all cache:

sudo webinoly -clear-cache=all

6、Access to server tools, default port is 22222

HTTP authentication window will pop up , fill in the username test3 and password test12345

Whitelist IP, to add an IP to the secure list and don’t be asked for your credentials every time HTTP Authentication is required.

sudo httpauth

To list all the whitelisted IP’s

sudo httpauth -whitelist -list

Remove a previously added IP:

sudo httpauth -whitelist -purge

For more security, the default port should be changed.

sudo webinoly -tools-port=39516
root@blogwp-test:~# sudo webinoly -tools-port=39516
Port 39516 has been enabled to access all your Tools!

Now you can use the following link to access server tools:

It is also possible to define an existing domain for “only access” to these tools.

sudo webinoly
root@blogwp-test:~# sudo webinoly
It's highly recommended having an SSL Cert enabled on this site.
Domain was successfully assigned to access your server tools!

Any request from another domain will be blocked. Now you can access server tools using:

Disable Authentication in WordPress Login:

sudo httpauth -wp-admin=off

Enable Authentication in WordPress Login:

sudo httpauth -wp-admin=on

To delete a user use the following command:

sudo httpauth -delete

Remove user from a specific domain:

sudo httpauth -delete

Displays all users created with access to HTTP Authentication:

sudo httpauth -list

7、Install, Disable, Renew and Remove SSL

7.1: Install SSL
1) Install SSL Certificates with Let’s Encrypt

sudo site -ssl=on
root@blogwp-test:~# sudo site -ssl=on

**  Please, be careful with the number of intents or certificates you try to get.              **
**  Let’s Encrypt provides rate limits to ensure fair usage by as many people as possible.     **
**                                                                                             **
**  If you are getting errors or having issues when trying to get a new certificate            **
**  read about the Let's Encrypt rate limit -        **

Please, be sure that and are both currently pointing (DNS) to this server.

Please, enter an email to register your new certificate: [email protected]

Email address has been successfuly validated and saved!

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for
http-01 challenge for
Using the webroot path /var/www/ for all unmatched domains.
Waiting for verification...
Cleaning up challenges

 - Congratulations! Your certificate and chain have been saved at:
   Your key file has been saved at:
   Your cert will expire on 2021-01-15. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:
   Donating to EFF:          

Tools-Site is already set to
SSL have been successfully enabled for your site -

HTTP/2 is also enabled

2) Install Wildcard Certificates with Let’s Encrypt
When we need a single certificate to cover all subdomains (* This is the kind of certificate we need in WordPress Multisite installations in sub-domain configuration.

sudo site -ssl=on -wildcard

During the creation of the Wildcard certificate, it will be necessary to create a DNS record to verify the ownership of the domain.

Verify that if the installed SSL certificate is correct:

7.2: Disable SSL on a site:

sudo site -ssl=off

7.3: Renewing certificates:

Although Webinoly has a redundant system for the automatic renewal process, we have an option to force it.

sudo site -ssl=renew

This command attempts to renew any previously-obtained certificates that expire in less than 30 days.

We can also force the renewal of all of the certs:

sudo site -ssl=force-renewal-all

We can also force the renewal of a specific certificate:

sudo site -ssl=force-renewal

7.4: Remove SSL

sudo site -delete=force -revoke=on

8、Allow SFTP access to www-data user, Very useful for uploading files through SFTP

sudo webinoly -login-www-data=on
root@blogwp-test:~# sudo webinoly -login-www-data=on
SFTP access for www-data user has been successfuly enabled!

9、Forbid access to your host IP address (when a request that does not correspond to the website is sent, nothing will be returned)

sudo webinoly -default-site=blackhole
root@blogwp-test:~# sudo webinoly -default-site=blackhole
Blackhole Nginx site was successfully assigned as default site!



10、Block and deny IP address

If you want to block access to a specific IP or block of addresses, for example, a bot, service or unwanted visitor.

sudo webinoly

list all the IP’s that have been blocked:

sudo webinoly -blockip -list

Remove IP from the list:

sudo webinoly -blockip -purge

11、Force WWW or non-WWW in a site

By default, Webinoly configures your site to accept both requests in your domain, that is, and will be both valid. You can force the use and redirect the requests to any of your preferences.

sudo site -force-redirect=root
root@blogwp-test:~# sudo site -force-redirect=root
Force-Redirection to non-WWW has been successfully enabled!

12、Check Installation information, such as VPS operating system, ram, disk usage, nginx, php, mysql

sudo webinoly -info
root@blogwp-test:~# sudo webinoly -info

Operating System: Linux version 5.4.0-48-generic (buildd@lcy01-amd64-010) (gcc version 9.3.0 (Ubuntu 9.3.0-10ubuntu2)) #52-Ubuntu SMP Thu Sep 10 10:58:49 UTC 2020
Description:    Ubuntu 20.04.1 LTS
Codename:       focal
Cores: 1
RAM: 1Gb
File descriptors: 294300

[Disk Usage]
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/vda1      ext4   24G  4.4G   18G  20% /

nginx branch: stable
nginx version: nginx/1.18.0
nginx file descriptors: 191295
worker_processes: auto
worker_connections: 20000
worker_rlimit_nofile: 191295
client_max_body_size: 50m

FastCGI 200: 30d
FastCGI 3xx/4xx: 1m
FastCGI inactive: 7d
FastCGI max-size: 191m
open_file_cache_valid: 3m
open_file_cache max: 63765
open_file_cache inactive: 5m

PHP 7.4.11 (cli) (built: Oct 10 2020 19:45:09) ( NTS )
memory_limit:  192M
post_max_size:  50M
upload_max_filesize:  50M
max_file_uploads:  20
max_execution_time:  300

mysql  Ver 15.1 Distrib 10.5.6-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
PhpMyAdmin: 5.0.4

[Raw Conf]
mail:[email protected]

13、Update Webinoly (Before updating Webinoly, please do not forget to back up the host)

sudo webinoly -update
root@blogwp-test:~# sudo webinoly -update
You currently have the latest version!

It is important to note that this command only updates the Webinoly app, not the other packages installed in the server.

During the upgrade process, the conf file you have modified will be deleted. If you have modified it, please backup it first.

After upgrading or restarting the host, you can use commands to check the status of Webinoly and various services first.

sudo webinoly -verify
root@blogwp-test:~# sudo webinoly -verify
Verifying integrity of the entire Webinoly system...

Integrity test passed!!

14、Recover MySQL username and password

You can always recover the password for the “root” and “admin” users by running the following command:

sudo webinoly -dbpass
root@blogwp-test:~# sudo webinoly -dbpass

  root: ntzpsJBR0h3xoVsP
  admin: TkCuyUIdnXfzaj60

15、Change MySQL password

Can only modify the password of the “root” and “admin” users, they are the only ones that Webinoly saves and uses to work.

sudo webinoly -mysql-password

You can also use it in the following way:

sudo webinoly -mysql-password=[user,pass]


Webinoly has support for automated backups:

Export/Import server or site
Local WordPress database backup
Backups to S3 (AWS)

sudo webinoly -backup

You can manually configure any backup supported by Duply and Duplicity: Amazon S3, Backblaze B2, DropBox, FTP, GIO, Google Docs, Google Drive, HSI, Hubic, IMAP, local filesystem,, Microsoft Azure, Microsoft Onedrive, par2, Rackspace Cloudfiles, rsync, Skylabel, ssh/scp, SwiftStack, Tahoe-LAFS, WebDAV.

Export server settings and sites:

sudo webinoly -backup=local -export

To export a specific site:

sudo webinoly -backup=local

Options to import on a new server:

full – Configuration and sites.
stack – Only configuration.
sites – Only sites.

sudo webinoly -backup=local -import=full

When configuration is imported, all the packages will be installed and configured based on the exported configuration.

17、Server Reset

After any modification to the Webinoly configuration file, you should do a -server-reset to changes take effect. Run the following command:

sudo webinoly -server-reset

Or update the configuration of a specific package:

sudo webinoly -server-reset=nginx
sudo webinoly -server-reset=php

Also, the -server-reset option can be used in many different situations, For example, when you update your VPS hardware specs, more RAM was added, you can update your server configuration with server-reset to take the new values.

18、Install packages

Install PHP:

sudo stack -php

Install MySQL (MariaDB):

sudo stack -mysql

Install phpMyAdmin:

sudo stack -pma

Install LEMP:

sudo stack -lemp

19、Remove installed packages

The option -purge will allow you to remove any package installed by Webinoly, you can also use the option -purge=force to ignore any question. When you remove a package automatically all additional related tools will be deleted.

Remove Nginx:

sudo stack -nginx -purge

Remove PHP:

sudo stack -php -purge

Remove MySQL:

sudo stack -mysql -purge

When removing MySQL, PhpMyAdmin will be automatically deleted. Before removing MySQL, you should make a backup of your databases.

Remove PhpMyAdmin:

sudo stack -pma -purge
root@blogwp-test:~# sudo stack -pma -purge

¡ C A U T I O N !  You are about to remove phpMyAdmin from your server!

 Are you sure [y/N]?

phpMyAdmin has been deleted successfully!

Remove all packages installed by Webinoly:

sudo stack -purge-server-all=force

20、Website management

Activate or Deactivate a website:

sudo site -on
sudo site -off

Delete a website:

You should use this option with caution, as once a site is deleted it will not be possible to recover the files.

sudo site -delete

And at this time, the Let’s Encrypt certificate file applied for may be still left in the host. You can force these Let’s Encrypt certificates to be deleted by using the following command:

sudo site -delete=force -revoke=on

Site info:

sudo site -info
root@blogwp-test:~# sudo site -info

Type: WordPress
Status: Enabled
SSL: true
Access Logs: false
Force Redirect: root
Size: 55M

Cache: true
Multisite: false
WP Auth: true
Debug: false

Database: localhost
DB Name: blogwp_ovh
DB User: blogwp_ovh
DB Prefix: wp_

List of your sites:

sudo site -list
root@blogwp-test:~# sudo site -list

 + (WordPress)(Tools)

21、Uninstall Webinoly

The following command will completely remove Webinoly and all its files from the server.

sudo webinoly -uninstall


This action will not delete your websites. The configuration of your server, as well as the installed packages will not be affected or uninstalled. The Webinoly commands to create and manage your server and websites will be removed and will no longer be available for use. If you want to reinstall Webinoly your previous configuration will be recovered, in case you don’t want to generate this recovery file during the uninstall process you can use the -no-recovery parameter.


Copied title and URL