Drupal¶
Install a lightweight Drupal container with OpenLiteSpeed Edge or Stable version based on Ubuntu 24.04 Linux.
Prerequisites¶
Configuration¶
Edit the .env
file to update the demo site domain, default MySQL user, and password. Feel free to check the Docker Hub Tag page 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-drupal-env.git
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 described here.
Components¶
The docker image installs the following packages on your system:
Component | Version |
---|---|
Linux | Ubuntu 24.04 |
OpenLiteSpeed | Latest version |
MariaDB | Stable version: 11.4 |
PHP | Latest version |
LiteSpeed Cache | Latest from litespeedtech |
ACME | Latest from ACME official |
Drupal | Latest from Drupal |
Drush | Latest from Drush |
phpMyAdmin | Latest from dockerhub |
Data Structure¶
Cloned project
├── acme
├── bin
│ └── container
├── data
│ └── db
├── logs
│ ├── access.log
│ ├── error.log
│ ├── lsrestart.log
│ └── stderr.log
├── lsws
│ ├── admin-conf
│ └── conf
├── ols-dockerfiles
│ ├── template
| └── README.md
├── sites
│ └── localhost
├── LICENSE
├── README.md
└── docker-compose.yml
acme
contains all applied certificates from Lets Encryptbin
contains multiple CLI scripts to allow you add or delete virtual hosts, install applications, upgrade, etcdata
stores the MySQL databaselogs
contains all of the web server logs and virtual host access logslsws
contains all web server configuration filessites
contains the document roots (the Drupal application will install here)
Usage¶
Starting a Container¶
Start the container with the up
or start
methods:
docker compose up
docker compose up -d
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 my_password
Starting a Demo Site¶
After running the following command, you should be able to access the Drupal 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 [-A, --add] example.com
Tip
You can ignore SSL certificate warnings from the server. They happen if you haven't applied the certificate.
Deleting a Domain and Virtual Host¶
bash bin/domain.sh [-D, --del] 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 [-D, --domain] example.com
example.com
, USER_NAME
, MY_PASS
, and DATABASE_NAME
with your preferred values: bash bin/database.sh [-D, --domain] example.com [-U, --user] USER_NAME [-P, --password] MY_PASS [-DB, --database] DATABASE_NAME
Installing a Drupal Site¶
Run the database.sh
script for your domain, before you use the following command to install Drupal:
./bin/appinstall.sh [-A, --app] drupal [-D, --domain] example.com
Install ACME¶
We need to run the ACME installation command the first time only. With email notification:
./bin/acme.sh [-I, --install] [-E, --email] EMAIL_ADDR
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 [-D, --domain] example.com
Other parameters:
- [
-r
,--renew
]: Renew a specific domain with -D or --domain parameter if posibile. To force renew, use -f parameter. - [
-R
,--renew-all
]: Renew all domains if possible. To force renew, use -f parameter. - [
-f
,-F
,--force
]: Force renew for a specific domain or all domains. - [
-v
,--revoke
]: Revoke a domain. - [
-V
,--remove
]: Remove a domain.
Update Web Server¶
To upgrade the web server to the latest stable version, run the following:
bash bin/webadmin.sh [-U, --upgrade]
Apply OWASP ModSecurity¶
Enable OWASP mod_secure
on the web server:
bash bin/webadmin.sh [-M, --mod-secure] enable
mod_secure
on the web server: bash bin/webadmin.sh [-M, --mod-secure] disable
Tip
You can ignore ModSecurity warnings from the server. They happen if some of the rules are not supported by the server.
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.
Customization¶
If you want to customize the image by adding some packages, e.g. lsphp83-pspell
, just extend it with a Dockerfile, like so:
- Create a
custom
folder and acustom/Dockerfile
file under the main project. - Add the following example code to
Dockerfile
under the custom folderFROM litespeedtech/openlitespeed-drush:latest RUN apt update && apt install lsphp83-pspell -y
- Add a
build: ./custom
line under theimage: litespeedtech
line of the docker-compose file. So it will looks like thislitespeed: image: litespeedtech/openlitespeed-drush:${OLS_VERSION}-${PHP_VERSION} build: ./custom
- Build and start it with this command:
docker compose up --build
Additional Support¶
Community Support¶
If you've explored our documentation and still have questions, you can find assistance from other LiteSpeed users through our Community Support forums:
Official LiteSpeed Support¶
To be assisted by a LiteSpeed support technician, you can submit a support ticket from the LiteSpeed website's client area or by emailing support@litespeedtech.com
.
Note
We're happy to provide a level of free support for all LiteSpeed products and offer guidance where documentation may fall short. However, we are unable to offer general sysadmin support or hands-on assistance.
Should you require individualized configuration support or hands-on assistance with our products, you can order additional services from the LiteSpeed store.
Thank you for choosing LiteSpeed!
Feedback¶
Do you have some thoughts about this documentation site? Join our GoLiteSpeed Slack, drop by the #documentation channel, and let us know what you think!