Preparazione Reverse Proxy Apache
- Predisporre il certificato SSL
- Assicurarsi che sia abilitato
sudo a2enmod headers
- Configurare il VirtualHost
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www
ErrorLog ${APACHE_LOG_DIR}/www.example.com.error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/www.example.com.access.log combined
RewriteEngine on
RewriteRule ^/.well-known/acme-challenge/ - [L]
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [L,R]
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin admin@example.com
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www
ErrorLog ${APACHE_LOG_DIR}/www.example.com-ssl.error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/www.example.com-ssl.access.log combined
SSLEngine on
SSLProtocol All -SSLv2 -SSLv3
SSLCertificateKeyFile /var/lib/dehydrated/certs/www.example.com/privkey.pem
SSLCertificateFile /var/lib/dehydrated/certs/www.example.com/fullchain.pem
ProxyRequests Off
ProxyPreserveHost On
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
ProxyPass / http://127.0.0.1:8901/
ProxyPassReverse / http://127.0.0.1:8901/
</VirtualHost>
</IfModule>
Risorse da migrare
mysqldump | gzip > example.com.sql
- Fare una tarball della sola wp-content
tar cvzf example.com.tar.gz wp-content/
Configurazione Container
- Creare il docker-compose:
version: "3.1"
services:
wp:
image: wordpress:latest
container_name: wordpress-example.com-app
restart: unless-stopped
ports:
- 8901:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: example_com
WORDPRESS_DB_PASSWORD: sVZaDMCmD0ohbguw
WORDPRESS_DB_NAME: example_com
#WORDPRESS_TABLE_PREFIX: wp_wlm_blog_
VIRTUAL_HOST: www.example.com
#LETSENCRYPT_HOST: exp0000.test-domain.de
#LETSENCRYPT_EMAIL: xxxx@yyyy.zz
volumes:
- ./wordpress:/var/www/html
db:
image: mysql:5.7
container_name: wordpress-example.com-db
restart: unless-stopped
environment:
MYSQL_DATABASE: example_com
MYSQL_USER: example_com
MYSQL_PASSWORD: sVZaDMCmD0ohbguw
MYSQL_ROOT_PASSWORD: wprootpass
volumes:
- ./db:/var/lib/mysql
docker compose up
- Provare a collegarsi all'url https: verificare che sia mostrata la schermata di installazione di wordpress, con il logo.
- NON proseguire nell'installazione
Importazione risorse
cat example.com.sql | docker exec -i wordpress-example.com-db sh -c '/usr/bin/mysql -u root --password="$MYSQL_ROOT_PASSWORD" example_com'
cd wordpress # the directory name of the named volume in the project directory
rm -rf wp-content
tar xvzf ../example.com.tar.gz
Riferimenti