Manage WordPress Website on Linux using WordOps

Posted on 224 views

Welcome to this guide on how to install and Manage WordPress Website on Linux using WordOps. WordPress is a free and open-source PHP-based Content Management System developed by Matt Mullenweg and Mike Little in 2003. This simple and extensive CMS is used to create powerful and appealing websites with no programming knowledge required.

There are several methods to install WordPress as illustrated in the guides below:

WordOps is a tool that eases the WordPress installation and site administration with the following features:

  • Easy to install: One step automated installer with migration from EasyEngine v3 support
  • Powerful: Optimized Nginx configurations with multiple cache backends support
  • Up-to-date: PHP 7.2, 7.3, 7.4, 8.0 & 8.1 – MariaDB 10.5 & Redis 6.0
  • SSL support: Domain, Subdomain & Wildcard Let’s Encrypt SSL certificates with DNS API support
  • Custom Nginx build: Nginx 1.18.0 – TLS v1.3 Cloudflare HTTP/2 HPACK & Brotli support
  • Fast deployment: Fast and automated WordPress, Nginx, PHP, MySQL & Redis installation
  • User Friendly: WordOps dashboard with server status/monitoring and tools demo
  • Offers Monitoring: Live Nginx virtual host traffic with ngx_vts_module and server monitoring with Netdata

System Requirements

WordOps can be installed on the following systems:

  • Ubuntu 20.04 LTS (Focal)
  • Ubuntu 18.04 LTS (Bionic)

It is also compatible with the following systems.

  • Debian 9 (Stretch) & Debian 10 (Buster)
  • Raspbian 9 (Stretch) & Raspbian 10 (Buster)

1. Install WordOps on Linux

WordOps can be installed using the command:

wget -qO wo wops.cc && sudo bash wo 

Sample Output:

Welcome to WordOps install/update script v3.14.1

Installing wo dependencies	[OK]
Installing WordOps	[OK]
Running post-install steps	[OK]
WordOps (wo) require an username & and an email address to configure Git (used to save server configurations)
Your informations will ONLY be stored locally
Enter your name: admin
Enter your email: [email protected]
Synchronizing wo database, please wait...
WordOps (wo) installed successfully

To enable bash-completion, just use the command:
bash -l

To install WordOps recommended stacks, you can use the command:
wo stack install

To create a first WordPress site, you can use the command:
wo site create site.tld --wp

WordOps Documentation : https://docs.wordops.net
WordOps Community Forum : https://community.wordops.net
WordOps Community Chat : https://chat.wordops.net

Give WordOps a GitHub star : https://github.com/WordOps/WordOps/

2. Install WordPress using WordOps.

Creating a WordPress site using WordOps is so easy. The below command can be used to create a WordPress site on your domain name.

sudo wo site create domain_name --wp

When creating a site, you can specify the PHP version, Redis cache, cache enabler e.t.c using the below flags.

# install wordpress with latest PHP 8.0 without any page caching
sudo wo site create example.com --wp 
 
#install wordpress with PHP 8.1  without any page caching
sudo wo site create example.com --wp  --php81  

# install wordpress + nginx fastcgi_cache      
sudo wo site create example.com --wpfc     

# install wordpress + nginx redis_cache          
sudo wo site create example.com --wpredis 
   
# install wordpress with WP-Rocket plugin       
sudo wo site create example.com --wprocket  

# install wordpress with Cache-enabler plugin        
sudo wo site create example.com --wpce   

# install wordpress with wp-super-cache plugin            
sudo wo site create example.com --wpsc                

To create a WordPress site with multisite with subdirectory, add the --wpsubdirflag to the above commands. For example, to install wpmu-subdirectory with the wp-super-cache plugin, the command will be:

wo site create example.com --wpsubdir --wpsc  

Also, you can create a WordPress multisite with a subdomain using the --wpsubdomain flag for example:

wo site create example.com --wpsubdomain 

In this guide, I will demonstrate how to create a WordPress site on wordpress.example.com with PHP8.0.

The command will be;

sudo wo site create wordpress.example.com --wp

Sample command execution output:

Install-and-Manage-WordPress-Website-on-Linux-using-WordOps

This command installs and configures Nginx, MySQL database, PHP, and WordPress. Once complete, view the info about your site:

sudo wo site info wordpress.example.com

Sample Output:

Install-and-Manage-WordPress-Website-on-Linux-using-WordOps-6

3. Access the WordPress Site

Access the WordPress site using the URL http://domain_name

Install-and-Manage-WordPress-Website-on-Linux-using-WordOps-1

Visit the WordPress admin console with the URL http://domain_name/wp-admin

Install-and-Manage-WordPress-Website-on-Linux-using-WordOps-2

On this page, log in using the created credentials provided during the installation. On successful authentication, you should see the WordPress admin dashboard as below.

Install-and-Manage-WordPress-Website-on-Linux-using-WordOps-3-1024x544

Once here, change the default password for the admin user, to create one of your own. Navigate to the users tab and click edit for the admin user.

Install-and-Manage-WordPress-Website-on-Linux-using-WordOps-4-1024x350

Set the preferred password and save the changes.

Install-and-Manage-WordPress-Website-on-Linux-using-WordOps-5-1024x446

That is it! You have successfully set up the WordPress Website on Linux using WordOps.

4. Manage WordPress Website on Linux using WordOps

There are other configurations/management options you can easily make to your WordPress site with WordOps. The configuration you can make are;

Switch between PHP versions

With WordOps, you can easily switch between PHP versions on your created WordPress site. The possible commands are:

# Switch to PHP 7.2
sudo wo site update example.com --php72

# switch to PHP 7.3
sudo wo site update example.com --php73 

# switch to PHP 7.4
sudo wo site update example.com --php74

# switch to PHP 8.0
sudo wo site update example.com --php80 

# switch to PHP 8.1
sudo wo site update example.com --php81 

For example, switching our created site to PHP 8.1, we will use the command:

sudo wo site update wordpress.example.com --php81 

Sample Output:

Install-and-Manage-WordPress-Website-on-Linux-using-WordOps-7

If you get an error “Oops Something went wrong!!“, view the logs using the command:

$ tail /var/log/wo/wordops.log
E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 32655 (unattended-upgr)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
2022-04-23 11:33:23,782 (INFO) wo : Oops Something went wrong!!

Kill the process, then proceed and update the PHP version

sudo kill -9 32655
sudo wo site update wordpress.example.com --php81 

Once the upgrade is successful, verify the new PHP version using the command:

sudo wo site info wordpress.example.com

Sample Output:

Install-and-Manage-WordPress-Website-on-Linux-using-WordOps-8

Secure WordPress with Let’s Encrypt

You can use WordOps to secure the created site with Let’s Encrypt SSL certificates. Normally, the -le flag is used to issue Let’s Encrypt SSL certificates for your domain name.

The possible commands here are:

# Install wordpress & letsencrypt
wo site create example.com --wp -le

# Install wordpress & letsencrypt subdomain
wo site create sub.example.com --wp -le 

# Install wordpress & letsencrypt with HSTS
wo site create example.com --wp --letsencrypt --hsts 

# Install wordpress & wildcard SSL certificate with Cloudflare DNS API
wo site create example.com --wp -le=wildcard --dns=dns_cf 

You can also issue Let’s Encrypt certificates manually by installing the required packages and proceeding as below:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx

Sample Output:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: a

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: wordpress.example.com
2: www.wordpress.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1

Requesting a certificate for wordpress.example.com
Performing the following challenges:
http-01 challenge for wordpress.example.com
Waiting for verification...
Cleaning up challenges
...
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
....
Successfully received certificate.
Certificate is saved at: a2enmod ssl
/etc/letsencrypt/live/wordpress.example.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/wordpress.example.com/privkey.pem
This certificate expires on 2022-07-18.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

Once SSL certificates are generated, proceed and access the site via HTTPS

Install-and-Manage-WordPress-Website-on-Linux-using-WordOps-9-1024x601

Update WordOps to the latest version using the command:

wo update

Conclusion

We have successfully gone through how to install and Manage WordPress Websites on Linux using WordOps. We can all agree that WordOps makes it easy to install and manage WordPress sites. I hope this was significant.

coffee

Gravatar Image
A systems engineer with excellent skills in systems administration, cloud computing, systems deployment, virtualization, containers, and a certified ethical hacker.