WordPress

Install a Lightweight WordPress container with OpenLiteSpeed 1.6.5+ & PHP 7.3+ based on Ubuntu 18.04 Linux.

Prerequisites

  1. Install Docker
  2. Install Docker Compose
  3. Clone this repository or copy the files from this repository into a new folder:
    git clone https://github.com/litespeedtech/ols-docker-env.git
    

Configuration

Edit the .env file to update the demo site domain, default MySQL user, and password.

Installation

Open a terminal, cd to the folder in which docker-compose.yml is saved, and run:

docker-compose up

Components

The docker image installs the following packages on your system:

Component Version
Linux Ubuntu 18.04
OpenLiteSpeed Latest version
MariaDB Stable version: 10.3
PHP Stable version: 7.3
LiteSpeed Cache Latest from WordPress.org
Certbot Latest from Certbot's PPA
WordPress Latest from WordPress

Data Structure

There is a sites directory next to your docker-compose.yml file, and it contains the following:

  • sites/DOMAIN/html/ – Document root (the WordPress application will install here)
  • sites/DOMAIN/logs/ - Access log storage

Usage

Starting a Container

Start the container with the up or start methods:

docker-compose up
You can run with daemon mode, like so:
docker-compose up -d
The container is now built and running.

Stopping a Container

docker-compose stop

Removing Containers

To stop and remove all containers, use the down command:

docker-compose down

Installing Packages

Edit the docker-compose.yml file, and add the package name as an extensions argument. We used vim in this example:

litespeed:
  build:
    context: ./config/litespeed/xxx/
    args:
      extensions: vim
After saving the changed configuration, run with --build:
docker-compose up --build

Setting the WebAdmin Password

We strongly recommend you set your personal password right away.

bash bin/webadmin.sh my_password

Starting a Demo Site

After running the following command, you should be able to access the WordPress installation with the configured domain. By default the domain is http://localhost.

bash bin/demosite.sh

Creating a Domain and Virtual Host

bash bin/domain.sh -add example.com

Creating a Database

You can either automatically generate the user, password, and database names, or specify them. Use the following to auto generate:

bash bin/database.sh -domain example.com
Use this command to specify your own names, substituting user_name, my_password, and database_name with your preferred values:
bash bin/database.sh -domain example.com -user user_name -password my_password -database database_name

Installing a WordPress Site

To preconfigure the wp-config file, run the database.sh script for your domain, before you use the following command to install WordPress:

./bin/appinstall.sh -app wordpress -domain example.com

Applying a Let's Encrypt Certificate

Use the root domain in this command, and it will check for a certificate and automatically apply one with and without www:

./bin/cert.sh example.com

Accessing the Database

After installation, you can use Adminer (formerly phpMinAdmin) to access the database by visiting http://127.0.0.1:8080. The default username is root, and the password is the same as the one you supplied in the .env file.