Wordpress in einem Docker Container bereitsstellen
Ich schreibe ab und an ein paar Anleitungen. Da ging es bereits um Nextcloud, Pixelfed oder Mastodon. Nun ein weiteres für WordPress mit eigenem Nginx Client.
Zuerst einen Ordner erstellen für WordPress. In diesem Fall nehme ich /opt/Wordpress.
Docker-compose einrichten
In dem erstellten Ordner as eine ‚docker-compose.yml‘ erstellen und folgendes einfügen.
version: '3'
services:
wordpress:
image: wordpress:latest
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
- ./wp-content:/var/www/html/wp-content
ports:
- 8080:80
links:
- db
db:
image: mysql:5.7
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
MYSQL_RANDOM_ROOT_PASSWORD: '1'
nginx:
image: nginx:latest
ports:
- 80:80
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
- ./wp-content:/var/www/html/wp-content
links:
- wordpress
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
Hier das WordPress Datenbank Passwort, sowie das random_root_password, nach eigenen Wünschen anpassen und die Datei abspeichern.
Nginx config einrichten
Nun eine ’nginx/conf.d/default.conf‘ erstellen und folgenden Inhalt einfügen.
server {
listen 80;
server_name domain.tld;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name localhost;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
ssl on;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
}
Je nachdem ob schon ein Webserver auf 80 und 443 müssen diese Ports abgeändert werden.
Dies sieht in der docker-compose.yml so aus:
nginx:
image: nginx:latest
ports:
- 4433:443
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
- ./wp-content:/var/www/html/wp-content
links:
- wordpress
In der Default.conf so:
server {
listen 4433 ssl;
server_name domain.tld;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
ssl on;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
}
Passt alles, muss nur noch der Webserver und die Docker Container gestartet werden(‚docker-compose up -d‘). Abschließend kann dann das eigentliche WordPress Setup gestartet werden. https://domain.tld/wp-admin
Comments ()