Skip to main content

WordPress

Recipe Features Explained​

Let's breakdown the recipe to deploy a new WordPress site.

See Full Deployment Script
source: https://wordpress.org/latest.zip#wordpress
features:
- mysql
nginx:
root: public_html
fastcgi: "on"
locations:
- match: /
try_files: $uri $uri/ /index.php$is_args$args
- match: ~ /xmlrpc\.php$
deny: all
commands:
- cp wp-config-sample.php wp-config.php
- sed -i "s/database_name_here/${DATABASE}/g" wp-config.php
- sed -i "s/username_here/${USERNAME}/g" wp-config.php
- sed -i "s/password_here/${PASSWORD}/g" wp-config.php
- sed -i "s/utf8/utf8mb4/g" wp-config.php
- curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
- mkdir -p ~/.local/bin && mv wp-cli.phar ~/.local/bin/wp && chmod +x $_
source: https://wordpress.org/latest.zip#wordpress
features:
- mysql

This script extracts WordPress to ~/public_html and sets up a new database.

nginx:
root: public_html
fastcgi: "on"
locations:
- match: /
try_files: $uri $uri/ /index.php$is_args$args
- match: ~ /xmlrpc\.php$
deny: all

This script declare NGINX Configuration. It means three thing:

  1. fastcgi: "on" means PHP processing is turned on.

  2. match: / means for all requests, do try_files: $uri $uri/ /index.php$is_args$args. It means try static files first then process root /index.php if nothing found.

  3. match: ~ /xmlrpc\.php$ means for requests to xmlrpc.php, do deny: all. This blocks the most common vector from DoS attack.

commands:
- cp wp-config-sample.php wp-config.php
- sed -i "s/database_name_here/${DATABASE}/g" wp-config.php
- sed -i "s/username_here/${USERNAME}/g" wp-config.php
- sed -i "s/password_here/${PASSWORD}/g" wp-config.php
- sed -i "s/utf8/utf8mb4/g" wp-config.php

This script auto configure the database connection for WordPress so you don't have to tell them during installation.

commands:
- curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
- mkdir -p ~/.local/bin && mv wp-cli.phar ~/.local/bin/wp && chmod +x $_

This installs WP CLI. WP CLI is a utility to perform maintenance tasks for WordPress using SSH commands.

Using WP CLI​

WP-CLI Documentation. WP CLI is a convenient tool to manage WordPress without using the site. This can be accessed via SSH.

Move Domain​

If you want to change the domain of WordPress, you need to alter the links.

wp search-replace 'https://olddomain.net' 'https://newdomain.com'

Reinstall WordPress​

If you believe your WordPress core files is altered you need to reinstall it.

wp core download --skip-content --force

Reference: https://developer.wordpress.org/cli/commands/core/download/

Reset User Password​

If you forget your admin password you can reset it. First, find your username with wp user list then reset it with wp user reset-password.

wp user list
wp user reset-password '<username>' --skip-email --show-password