Get your server issues fixed by our experts for a price starting at just 25 USD/Hour. Click here to register and open a ticket with us now!

Author Topic: How to install WordPress on Ubuntu 16.04 With Caddy  (Read 1073 times)

0 Members and 1 Guest are viewing this topic.

jibinw

  • Guest
How to install WordPress on Ubuntu 16.04 With Caddy
« on: April 14, 2018, 05:03:14 pm »
WordPress is a famous content management system based on PHP and MySQL, distributed under the terms of the GNU GPLv2 (or later). In most cases it is installed by using Apache or NGINX as web servers, or, as we explained in this tutorial, it can run on an isolated environment like Docker containers.
Caddy (or Caddy web server), is an open source, HTTP/2 web server which enables HTTPS by default, without requiring external configuration. Caddy also has a strong integration with Let’s Encrypt.

Here, I explaining how to install and configure WordPress on top of your Caddy web server, installed following our guide.

Install PHP

As we said in the introduction, WordPress requires a web server, MySQL and PHP. First of all, install PHP and the extensions required by WordPress, by executing the following command:

Code: [Select]
# apt-get install php7.0-fpm php7.0-mysql php7.0-curl php7.0-gd php7.0-mbstring php7.0-mcrypt php7.0-xml php7.0-xmlrpc
Verify that the PHP was correctly installed by checking its version:

Code: [Select]
$ php -v
Install and Configure MariaDB

MariaDB is also available in the repository, so just use apt:
Code: [Select]
# apt-get install mariadb-client mariadb-server
MariaDB is a MySQL fork, and it uses its name for the systemd service:

Code: [Select]
# systemctl start mysql
Set MariaDB root password to secure your database:

Code: [Select]
# mysql_secure_installation
You will be asked for the following configuration parameters:

Code: [Select]
Enter current password for root (enter for none): PRESS ENTER

Set root password? [Y/n] Y
ENTER YOUR PASSWORD

Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Once that step is complete you can access the MariaDB database with your password:

Code: [Select]
$ mysql -u root -p
Create New Database and User

Start the MariaDB shell:

Code: [Select]
$ mysql -u root -p
Use the MariaDB prompt to create a new database for WordPress. In this tutorial, we use wordpressdb as the database name, and wordpressusr as the username for the WP installation. So our code looks like this:

Code: [Select]
mysql> CREATE DATABASE wordpressdbDEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysql> CREATE USER wordpressusr@localhost IDENTIFIED BY 'usr_strong_password'; mysql> GRANT ALL PRIVILEGES ON wordpressdb.* to wordpressusr@localhost IDENTIFIED BY 'usr_strong_password';

Next, you can flush privileges and exit:

Code: [Select]
mysql> FLUSH PRIVILEGES;
mysql> EXIT;

Install WordPress

Downloading and installing WordPress is quite an easy process, which requires executing just the following commands:
Code: [Select]
# cd /var/www
# wget wordpress.org/latest.zip
# unzip latest.zip

Change WordPress permissions with:

Code: [Select]
# chown -R www-data:www-data wordpress
Rename the WordPress config file and edit it:
Code: [Select]
# cd wordpress
# mv wp-config-sample.php wp-config.php
# $EDITOR wp-config.php

Here, change the database informations, using those specified during the MariaDB configuration process:

Code: [Select]
DB_NAME = wordpressdb
DB_USER = wordpressusr
DB_PASSWORD = usr_strong_password

Configure Caddy and Start WordPress Installation Wizard

This tutorial assumes you installed Caddy web server already. Edit its configuration file:

Code: [Select]
# $EDITOR /etc/caddy/Caddyfile
In this file, paste the following content:

Code: [Select]
example.com {
    tls admin@example.com
    root /var/www/wordpress
    gzip
    fastcgi / /run/php/php7.0-fpm.sock php
    rewrite {
        if {path} not_match ^\/wp-admin
        to {path} {path}/ /index.php?_url={uri}
    }

Note: admin@example.com is the email address that will be used for Let’s Encrypt certificate request.

Restart Caddy:

Code: [Select]
# systemctl restart caddy
As a last step, with a web browser, go to your website. This will start the WordPress GUI installation wizard which will finish the installation process and give you access to the WordPress dashboard.

Conclusion

At the end of the previous steps, a new WordPress instance will run on top of this new, tiny and powerful web server. Caddy will require certificates from Let’s Encrypt and enable automatically HTTPS connections, without any other manual configuration.