mirror of
https://github.com/10h30/ols-docker-env.git
synced 2026-05-12 15:21:24 +09:00
164 lines
6.3 KiB
Markdown
164 lines
6.3 KiB
Markdown
# OpenLiteSpeed WordPress Docker Container
|
||
[](https://hub.docker.com/r/litespeedtech/openlitespeed)
|
||
[<img src="https://img.shields.io/github/contributors/litespeedtech/ls-cloud-image.svg">](https://github.com/litespeedtech/ls-cloud-image/graphs/contributors)
|
||
[](https://hub.docker.com/r/litespeedtech/openlitespeed)
|
||
[<img src="https://img.shields.io/badge/slack-LiteSpeed-blue.svg?logo=slack">](litespeedtech.com/slack)
|
||
[<img src="https://img.shields.io/twitter/follow/litespeedtech.svg?label=Follow&style=social">](https://twitter.com/litespeedtech)
|
||
|
||
Install a lightweight WordPress container with OpenLiteSpeed Edge or Stable version on Ubuntu 18.04 Linux.
|
||
|
||
### Prerequisites
|
||
1. [Install Docker](https://www.docker.com/)
|
||
2. [Install Docker Compose](https://docs.docker.com/compose/)
|
||
|
||
## Configuration
|
||
Edit the `.env` file to update the demo site domain, default MySQL user, and password.
|
||
Feel free to check [Docker hub Tag page](https://hub.docker.com/repository/docker/litespeedtech/openlitespeed/tags) if you want to update default openlitespeed and php versions.
|
||
|
||
## Installation
|
||
Clone this repository or copy the files from this repository into a new folder:
|
||
```
|
||
git clone https://github.com/litespeedtech/ols-docker-env.git
|
||
```
|
||
Open a terminal, `cd` to the folder in which `docker-compose.yml` is saved, and run:
|
||
```
|
||
docker-compose up
|
||
```
|
||
|
||
Note: If you wish to run a single web server container, please see the [usage method here](https://github.com/litespeedtech/ols-dockerfiles#usage).
|
||
|
||
## Components
|
||
The docker image installs the following packages on your system:
|
||
|
||
|Component|Version|
|
||
| :-------------: | :-------------: |
|
||
|Linux|Ubuntu 18.04|
|
||
|OpenLiteSpeed|[Latest version](https://openlitespeed.org/downloads/)|
|
||
|MariaDB|[Stable version: 10.3](https://hub.docker.com/_/mariadb)|
|
||
|PHP|[Latest version](http://rpms.litespeedtech.com/debian/)|
|
||
|LiteSpeed Cache|[Latest from WordPress.org](https://wordpress.org/plugins/litespeed-cache/)|
|
||
|ACME|[Latest from ACME official](https://github.com/acmesh-official/get.acme.sh)|
|
||
|WordPress|[Latest from WordPress](https://wordpress.org/download/)|
|
||
|phpMyAdmin|[Latest from dockerhub](https://hub.docker.com/r/bitnami/phpmyadmin/)|
|
||
|
||
## Data Structure
|
||
Cloned project
|
||
```bash
|
||
├── acme
|
||
├── bin
|
||
│ └── container
|
||
├── data
|
||
│ └── db
|
||
├── logs
|
||
│ ├── access.log
|
||
│ ├── error.log
|
||
│ ├── lsrestart.log
|
||
│ └── stderr.log
|
||
├── lsws
|
||
│ ├── admin-conf
|
||
│ └── conf
|
||
├── sites
|
||
│ └── localhost
|
||
├── LICENSE
|
||
├── README.md
|
||
└── docker-compose.yml
|
||
```
|
||
* `acme` contains all applied certificates from Lets Encrypt
|
||
* `bin` contains multiple CLI scripts to allow you add or delete virtual hosts, install applications, upgrade, etc
|
||
* `data` stores the MySQL database
|
||
* `logs` contains all of the web server logs and virtual host access logs
|
||
* `lsws` contains all web server configuration files
|
||
* `sites` contains the document roots (the WordPress application will install here)
|
||
|
||
## 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
|
||
```
|
||
### Setting the WebAdmin Password
|
||
We strongly recommend you set your personal password right away.
|
||
```
|
||
bash bin/webadmin.sh MYPASSWORD
|
||
```
|
||
### 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 `https://localhost` and also `https://server_IP`.
|
||
```
|
||
bash bin/demosite.sh
|
||
```
|
||
### Creating a Domain and Virtual Host
|
||
```
|
||
bash bin/domain.sh [-add|-a] example.com
|
||
```
|
||
### Deleting a Domain and Virtual Host
|
||
```
|
||
bash bin/domain.sh [-del|-d] 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|-d] 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|-d] example.com [-user|-u] user_name [-password|-p] my_password [-database|-db] 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|-a] wordpress [-domain|-d] example.com
|
||
```
|
||
### Install ACME
|
||
We need to run the ACME installation command the **first time only**.
|
||
With email notification:
|
||
```
|
||
./bin/acme.sh [--install|-i] [--email|-e] EMAIL_ADDR
|
||
```
|
||
Without email notification:
|
||
```
|
||
./bin/acme.sh [--install|-i] [--no-email|-ne]
|
||
```
|
||
### 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/acme.sh [-domain|-d] example.com
|
||
```
|
||
### Update Web Server
|
||
To upgrade the web server to latest stable version, run the following:
|
||
```
|
||
bash bin/webadmin.sh [-lsup|-upgrade]
|
||
```
|
||
### Apply OWASP ModSecurity
|
||
Enable OWASP `mod_secure` on the web server:
|
||
```
|
||
bash bin/webadmin.sh [-modsec|-sec] enable
|
||
```
|
||
Disable OWASP `mod_secure` on the web server:
|
||
```
|
||
bash bin/webadmin.sh [-modsec|-sec] disable
|
||
```
|
||
### Accessing the Database
|
||
After installation, you can use phpMyAdmin to access the database by visiting `http://127.0.0.1:8080` or `https://127.0.0.1:8443`. The default username is `root`, and the password is the same as the one you supplied in the `.env` file.
|
||
|
||
## Support & Feedback
|
||
If you still have a question after using OpenLiteSpeed Docker, you have a few options.
|
||
* Join [the GoLiteSpeed Slack community](litespeedtech.com/slack) for real-time discussion
|
||
* Post to [the OpenLiteSpeed Forums](https://forum.openlitespeed.org/) for community support
|
||
* Reporting any issue on [Github ols-docker-env](https://github.com/litespeedtech/ols-docker-env/issues) project
|
||
|
||
**Pull requests are always welcome**
|