diff --git a/README.md b/README.md index 679c5b1..e059592 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,10 @@ # OpenLiteSpeed WordPress Docker Container (beta) [![Build Status](https://travis-ci.com/litespeedtech/ols-docker-env.svg?branch=master)](https://hub.docker.com/r/litespeedtech/openlitespeed) -[![OpenLiteSpeed](https://img.shields.io/badge/openlitespeed-1.5.10-informational?style=flat&color=blue)](https://hub.docker.com/r/litespeedtech/openlitespeed) +[![OpenLiteSpeed](https://img.shields.io/badge/openlitespeed-1.6.4-informational?style=flat&color=blue)](https://hub.docker.com/r/litespeedtech/openlitespeed) [![docker pulls](https://img.shields.io/docker/pulls/litespeed/openlitespeed?style=flat&color=blue)](https://hub.docker.com/r/litespeedtech/openlitespeed) +[![docker-beta pulls](https://img.shields.io/docker/pulls/litespeed/openlitespeed?style=flat&color=blue)](https://hub.docker.com/r/litespeedtech/openlitespeed-beta) -Lightweight WordPress container with OpenLiteSpeed 1.5.10 & PHP 7.3 based on Ubuntu 18.04 Linux. - -WordPress version will install: Latest +Lightweight WordPress container with OpenLiteSpeed 1.6.4 & PHP 7.3 based on Ubuntu 18.04 Linux. ### Prerequisites 1. [Install Docker](https://www.docker.com/) @@ -16,19 +15,26 @@ git clone https://github.com/litespeedtech/ols-docker-env.git ``` ## Configuration -Edit the `.env` file to change the WordPress Domain, user and password, default MySQL root and wordpress password . +Edit the `.env` file to update the demo site domain, default MySQL user and password. ## Installation Open a terminal and `cd` to the folder in which `docker-compose.yml` is saved and run: ``` docker-compose up ``` -There's an existing `sites` folder next to your docker-compose.yml file. -* `sites` – the location of your WordPress application -* `sites/localhost/logs/` - the location of your access log +## Components +The docker image installs several packages and performs other actions on your system. -The containers are now built and running. You should be able to access the WordPress installation with the configured domain in the browser address. By default it is http://127.0.0.1. +|Component|Version| +| :-------------: | :-------------: | +|Linux|Ubuntu 18.04| +|OpenLiteSpeed|[Latest version](https://openlitespeed.org/downloads/)| +|MariaDB|[10.3](https://hub.docker.com/_/mariadb)| +|PHP|[7.3](http://rpms.litespeedtech.com/debian/)| +|LiteSpeed Cache|[Latest from WordPress.org](https://wordpress.org/plugins/litespeed-cache/)| +|Certbot|[Latest from Certbot's PPA](https://launchpad.net/~certbot/+archive/ubuntu/certbot)| +|WordPress|[Latest from WordPress](https://wordpress.org/download/)| ## Usage ### Starting containers @@ -40,15 +46,7 @@ Running with daemon mode ``` docker-compose up -d ``` -Running with start method -``` -docker-compose start -``` - -Running start after config changing -``` -docker-compose up --build -``` +The containers are now built and running. ### Stopping containers ``` @@ -59,10 +57,62 @@ To stop and remove all the containers use the down command: ``` docker-compose down ``` +### Install packages +Edit docker-compose.yml file and put the PACKAGE name on extensions entry, we use `vim` as example. +``` +litespeed: + build: + context: ./config/litespeed/xxx/ + args: + extensions: vim +``` +After saving, running with `--build` after config changing +``` +docker-compose up --build +``` + +### Set WebAdmin Password +Strongly recommended to set personal passwprd at first time +``` +bash bin/webadmin.sh my_password +``` +### Start demo site +After running follow command, you should be able to access the WordPress installation with the configured domain in the browser address. By default it is http://127.0.0.1. +``` +bash bin/demosite.sh +``` +### Create Domain with Virtual Host +``` +bash bin/domain.sh -add example.com +``` +### Create Database +Auto generate method: +``` +bash bin/database.sh -domain example.com +``` +Specify method: +``` +bash bin/database.sh -domain example.com -user user_name -password my_password -database database_name +``` +### Download wordpress site +If you ran the database.sh script first for the same domain, it will pre-config the wp-config for you +``` +./bin/appinstall.sh -app wordpress -domain example.com +``` +### Apply Let's Encrypt Certificate +Just enter the root domain and it will auto check and auto apply with/with out www certificate for us. +``` +./bin/cert.sh example.com +``` + +### Data Structure +There's an existing `sites` folder next to your `docker-compose.yml` file. +* `sites/DOMAIN/html/` – the location of your Document root (WordPress application will install here) +* `sites/DOMAIN/logs/` - the location of your access log ### Adminer (formerly phpMinAdmin) -You can also visit http://127.0.0.1:8080 to access Data Base after starting the containers. +You can also visit http://127.0.0.1:8080 to access DataBase after starting the containers. The default username is root, and the password is the same as supplied in the .env file. diff --git a/bin/container/appinstallctl.sh b/bin/container/appinstallctl.sh index 86c5d0a..065794b 100755 --- a/bin/container/appinstallctl.sh +++ b/bin/container/appinstallctl.sh @@ -8,6 +8,7 @@ WWW_UID='' WWW_GID='' WP_CONST_CONF='' PUB_IP=$(curl -s http://checkip.amazonaws.com) +DB_HOST='mysql' PLUGINLIST="litespeed-cache.zip" THEME='twentytwenty' @@ -34,14 +35,14 @@ linechange(){ ck_ed(){ if [ ! -f /bin/ed ]; then - echo "no ed, ready to install" + echo "Install ed .." apt-get install ed -y > /dev/null 2>&1 fi } ck_unzip(){ if [ ! -f /usr/bin/unzip ]; then - echo "no unzip, ready to install" + echo "Install unzip .." apt-get install unzip -y > /dev/null 2>&1 fi } @@ -62,7 +63,7 @@ get_db_pass(){ SQL_USER=$(grep -i Username ${VH_ROOT}/.db_pass | awk -F ':' '{print $2}' | tr -d '"') SQL_PASS=$(grep -i Password ${VH_ROOT}/.db_pass | awk -F ':' '{print $2}' | tr -d '"') else - echo 'DB_PASS can not locate!' + echo 'db pass file can not locate, skip wp-config pre-config.' fi } @@ -100,7 +101,7 @@ check_sql_native(){ install_wp_plugin(){ for PLUGIN in ${PLUGINLIST}; do wget -q -P ${VH_DOC_ROOT}/wp-content/plugins/ https://downloads.wordpress.org/plugin/${PLUGIN} - if [ $? = 0 ]; then + if [ ${?} = 0 ]; then ck_unzip unzip -qq -o ${VH_DOC_ROOT}/wp-content/plugins/${PLUGIN} -d ${VH_DOC_ROOT}/wp-content/plugins/ else @@ -219,7 +220,8 @@ preinstall_wordpress(){ linechange 'DB_USER' ${VH_DOC_ROOT}/wp-config.php "${NEWDBPWD}" NEWDBPWD="define('DB_NAME', '${SQL_DB}');" linechange 'DB_NAME' ${VH_DOC_ROOT}/wp-config.php "${NEWDBPWD}" - NEWDBPWD="define('DB_HOST', '${PUB_IP}');" + #NEWDBPWD="define('DB_HOST', '${PUB_IP}');" + NEWDBPWD="define('DB_HOST', '${DB_HOST}');" linechange 'DB_HOST' ${VH_DOC_ROOT}/wp-config.php "${NEWDBPWD}" elif [ -f ${VH_DOC_ROOT}/wp-config.php ]; then echo "${VH_DOC_ROOT}/wp-config.php already exist, exit !" @@ -249,7 +251,6 @@ change_owner(){ fi } - main(){ set_vh_docroot ${DOMAIN} get_owner