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:
- Setup WordPress Website on Arch Linux / Manjaro
- Install WordPress with Nginx on Ubuntu / Debian
- How To Setup WordPress Multisite on Ubuntu
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 --wpsubdir
flag 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:
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:
3. Access the WordPress Site
Access the WordPress site using the URL http://domain_name
Visit the WordPress admin console with the URL http://domain_name/wp-admin
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.
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.
Set the preferred password and save the changes.
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:
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:
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
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.
See more: