wordpress
This commit is contained in:
59
misc/images/wordpress/containers/nineapache/apache.conf
Executable file
59
misc/images/wordpress/containers/nineapache/apache.conf
Executable file
@ -0,0 +1,59 @@
|
||||
|
||||
LoadModule rewrite_module modules/mod_rewrite.so
|
||||
ServerName nineapache.local
|
||||
|
||||
ProxyRequests Off
|
||||
ProxyPreserveHost On
|
||||
|
||||
<Proxy *>
|
||||
Require all granted
|
||||
</Proxy>
|
||||
|
||||
ProxyPass /auth http://keycloak:8999/auth retry=0 keepalive=On
|
||||
ProxyPassReverse /auth http://keycloak:8999/auth retry=0
|
||||
|
||||
ProxyPass /ninegate http://ninegate/ninegate retry=0 keepalive=On
|
||||
ProxyPassReverse /ninegate http://ninegate/ninegate retry=0
|
||||
ProxyPass /wssninegate ws://ninegate/wssninegate retry=0 keepalive=On
|
||||
ProxyPassReverse /wssninegate ws://ninegate/wssninegate retry=0
|
||||
|
||||
ProxyPass /nextcloud http://nextcloud retry=0 keepalive=On
|
||||
ProxyPassReverse /nextcloud http://nextcloud retry=0
|
||||
|
||||
ProxyPass /nineboard http://nineboard/nineboard retry=0 keepalive=On
|
||||
ProxyPassReverse /nineboard http://nineboard/nineboard retry=0
|
||||
ProxyPass /wssnineboard ws://nineboard/wssnineboard retry=0 keepalive=On
|
||||
ProxyPassReverse /wssnineboard ws://nineboard/wssnineboard retry=0
|
||||
|
||||
ProxyPass /wordpress http://wordpress/wordpress retry=0 keepalive=On
|
||||
ProxyPassReverse /wordpress http://wordpress/wordpress retry=0
|
||||
|
||||
ProxyPass /adminer http://adminer:8080 retry=0 keepalive=On
|
||||
ProxyPassReverse /adminer http://adminer:8080 retry=0
|
||||
|
||||
ProxyPass /phpldapadmin http://phpldapadmin/phpldapadmin retry=0 keepalive=On
|
||||
ProxyPassReverse /phpldapadmin http://phpldapadmin/phpldapadmin retry=0
|
||||
|
||||
RequestHeader set X-Forwarded-Host "%{HTTP_HOST}s"
|
||||
RequestHeader set X-Forwarded-Server "%{HTTP_HOST}s"
|
||||
RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}s"
|
||||
RequestHeader set Host "%{HTTP_HOST}s"
|
||||
RequestHeader set X-Forwarded-Proto "http"
|
||||
|
||||
DocumentRoot "/app/public"
|
||||
<Directory "/app/public">
|
||||
Options Indexes FollowSymLinks
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
|
||||
RewriteEngine On
|
||||
RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$
|
||||
RewriteRule .* - [E=BASE:%1]
|
||||
RewriteCond %{HTTP:Authorization} .+
|
||||
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0]
|
||||
RewriteCond %{ENV:REDIRECT_STATUS} =""
|
||||
RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteRule ^ %{ENV:BASE}/index.php [L]
|
||||
</Directory>
|
||||
|
@ -1,67 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -eo pipefail
|
||||
|
||||
cd /app/public
|
||||
|
||||
|
||||
if [[ ! -f /app/public/wp-config.php ]]
|
||||
then
|
||||
wp config create \
|
||||
--allow-root \
|
||||
--dbhost="${WORDPRESS_DB_HOST}" \
|
||||
--dbname="${WORDPRESS_DB_NAME}" \
|
||||
--dbuser="${WORDPRESS_DB_USER}" \
|
||||
--dbpass="${WORDPRESS_DB_PASSWORD}" \
|
||||
--dbcharset="utf8mb4" \
|
||||
--locale="fr_FR"
|
||||
fi
|
||||
|
||||
wp core multisite-install \
|
||||
--allow-root \
|
||||
--url="${WORDPRESS_PROTOCOL}://${WORDPRESS_DOMAINE}" \
|
||||
--title="${WORDPRESS_TITLE}" \
|
||||
--admin_user="${WORDPRESS_USER}" \
|
||||
--admin_password="${WORDPRESS_PASSWORD}" \
|
||||
--admin_email="${WORDPRESS_EMAIL}" \
|
||||
--skip-email
|
||||
|
||||
wp config set --allow-root DB_HOST ${WORDPRESS_DB_HOST}
|
||||
wp config set --allow-root DB_NAME ${WORDPRESS_DB_NAME}
|
||||
wp config set --allow-root DB_USER ${WORDPRESS_DB_USER}
|
||||
wp config set --allow-root DB_PASSWORD ${WORDPRESS_DB_PASSWORD}
|
||||
|
||||
wp config set --allow-root WP_HOME ${WORDPRESS_PROTOCOL}://${WORDPRESS_DOMAINE}${WORDPRESS_ALIAS}
|
||||
wp config set --allow-root WP_SITEURL ${WORDPRESS_PROTOCOL}://${WORDPRESS_DOMAINE}${WORDPRESS_ALIAS}
|
||||
|
||||
wp config set --allow-root WP_ALLOW_MULTISITE true
|
||||
wp config set --allow-root MULTISITE true
|
||||
wp config set --allow-root SUBDOMAIN_INSTALL false
|
||||
wp config set --allow-root DOMAIN_CURRENT_SITE ${WORDPRESS_DOMAINE}
|
||||
wp config set --allow-root PATH_CURRENT_SITE ${WORDPRESS_ALIAS}
|
||||
wp config set --allow-root FORCE_ADMIN_SSL false
|
||||
wp config set --allow-root SITE_ID_CURRENT_SITE 1
|
||||
wp config set --allow-root BLOG_ID_CURRENT_SITE 1
|
||||
|
||||
# On fait croire à WP qu'il est en https
|
||||
if grep -qF "_SERVER['HTTPS']='on'" "wp-config.php"; then
|
||||
if [[ "${WORDPRESS_PROTOCOL}" == "https" ]]
|
||||
then
|
||||
echo "FORCE HTTPS already set"
|
||||
fi
|
||||
else
|
||||
if [[ "${WORDPRESS_PROTOCOL}" == "https" ]]
|
||||
then
|
||||
echo "FORCE HTTPS set"
|
||||
head -n 1 "wp-config.php" > "wp-config.tmp"
|
||||
echo "\$_SERVER['HTTPS']='on';" >> "wp-config.tmp"
|
||||
tail -n +2 "wp-config.php" >> "wp-config.tmp"
|
||||
mv "wp-config.tmp" "wp-config.php"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Mise à jour theme / plugin / network
|
||||
wp theme update --allow-root --all
|
||||
wp plugin update --allow-root --all
|
||||
wp core update-db --network
|
||||
|
||||
exec $@
|
@ -8,17 +8,24 @@ Alias /wordpress /app/public
|
||||
DirectoryIndex index.php
|
||||
Require all granted
|
||||
|
||||
RewriteEngine On
|
||||
RewriteBase /wordpress/
|
||||
# BEGIN WordPress Multisite
|
||||
# Using subfolder network type: https://wordpress.org/documentation/article/htaccess/#multisite
|
||||
|
||||
RewriteEngine On
|
||||
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
||||
RewriteBase /wordpress/
|
||||
RewriteRule ^index\.php$ - [L]
|
||||
|
||||
# add a trailing slash to /wp-admin
|
||||
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
|
||||
|
||||
RewriteCond %{REQUEST_FILENAME} -f [OR]
|
||||
RewriteCond %{REQUEST_FILENAME} -d
|
||||
RewriteRule ^ - [L]
|
||||
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
|
||||
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
|
||||
RewriteRule . index.php [L]
|
||||
|
||||
# END WordPress Multisite
|
||||
|
||||
</Directory>
|
@ -17,22 +17,24 @@ then
|
||||
fi
|
||||
|
||||
|
||||
|
||||
wp config set --allow-root DB_HOST ${WORDPRESS_DB_HOST}
|
||||
wp config set --allow-root DB_NAME ${WORDPRESS_DB_NAME}
|
||||
wp config set --allow-root DB_USER ${WORDPRESS_DB_USER}
|
||||
wp config set --allow-root DB_PASSWORD ${WORDPRESS_DB_PASSWORD}
|
||||
|
||||
wp config set --allow-root WP_HOME ${WORDPRESS_PROTOCOL}://${WORDPRESS_DOMAINE}${WORDPRESS_ALIAS}
|
||||
wp config set --allow-root WP_SITEURL ${WORDPRESS_PROTOCOL}://${WORDPRESS_DOMAINE}${WORDPRESS_ALIAS}
|
||||
# le ? permet d'enlever le / à la fin de WORDPRESS_ALIAS
|
||||
wp config set --allow-root WP_HOME ${WORDPRESS_PROTOCOL}://${WORDPRESS_DOMAINE}${WORDPRESS_ALIAS::-1}
|
||||
wp config set --allow-root WP_SITEURL ${WORDPRESS_PROTOCOL}://${WORDPRESS_DOMAINE}${WORDPRESS_ALIAS::-1}
|
||||
|
||||
wp config set --allow-root WP_ALLOW_MULTISITE true
|
||||
wp config set --allow-root MULTISITE true
|
||||
wp config set --allow-root SUBDOMAIN_INSTALL false
|
||||
wp config set --allow-root WP_ALLOW_MULTISITE true --raw
|
||||
wp config set --allow-root MULTISITE true --raw
|
||||
wp config set --allow-root SUBDOMAIN_INSTALL false --raw
|
||||
wp config set --allow-root DOMAIN_CURRENT_SITE ${WORDPRESS_DOMAINE}
|
||||
wp config set --allow-root PATH_CURRENT_SITE ${WORDPRESS_ALIAS}
|
||||
wp config set --allow-root FORCE_ADMIN_SSL false
|
||||
wp config set --allow-root SITE_ID_CURRENT_SITE 1
|
||||
wp config set --allow-root BLOG_ID_CURRENT_SITE 1
|
||||
wp config set --allow-root FORCE_ADMIN_SSL false --raw
|
||||
wp config set --allow-root SITE_ID_CURRENT_SITE 1 --raw
|
||||
wp config set --allow-root BLOG_ID_CURRENT_SITE 1 --raw
|
||||
|
||||
# On fait croire à WP qu'il est en https
|
||||
if grep -qF "_SERVER['HTTPS']='on'" "wp-config.php"; then
|
||||
|
@ -1,6 +1,21 @@
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
nineapache:
|
||||
image: reg.cadoles.com/envole/nineapache:8.1
|
||||
container_name: wordpress-nineapache
|
||||
restart: always
|
||||
healthcheck:
|
||||
test: curl --fail http://localhost || exit 1
|
||||
interval: 1s
|
||||
timeout: 60s
|
||||
networks:
|
||||
- wordpress-network
|
||||
ports:
|
||||
- "80:80"
|
||||
volumes:
|
||||
- ./containers/nineapache/apache.conf:/etc/apache2/conf.d/zapp.conf
|
||||
|
||||
mariadb:
|
||||
image: mariadb
|
||||
container_name: wordpress-mariadb
|
||||
@ -14,6 +29,8 @@ services:
|
||||
MYSQL_PASSWORD: changeme
|
||||
volumes:
|
||||
- mariadb-data:/var/lib/mysql
|
||||
networks:
|
||||
- wordpress-network
|
||||
|
||||
wordpress:
|
||||
build:
|
||||
@ -34,12 +51,15 @@ services:
|
||||
- WORDPRESS_USER=admin
|
||||
- WORDPRESS_PASSWORD=changeme
|
||||
- WORDPRESS_EMAIL=admin@noreply.fr
|
||||
- WORDPRESS_PROTOCOL=https
|
||||
- WORDPRESS_DOMAINE=eolebase.ac-test.fr
|
||||
- WORDPRESS_PROTOCOL=http
|
||||
- WORDPRESS_DOMAINE=nine.local
|
||||
- WORDPRESS_ALIAS=/wordpress/
|
||||
|
||||
#volumes:
|
||||
# - ./containers/data:/app/public/wp-content/plugins/wp-cas
|
||||
volumes:
|
||||
- ./containers/wordpress/entrypoint.sh:/docker/entrypoint.sh
|
||||
- ./containers/wordpress/apache.conf:/etc/apache2/conf.d/zapp.conf
|
||||
|
||||
networks:
|
||||
- wordpress-network
|
||||
|
||||
adminer:
|
||||
image: docker.io/library/adminer
|
||||
@ -47,6 +67,12 @@ services:
|
||||
restart: always
|
||||
ports:
|
||||
- 9100:8080
|
||||
networks:
|
||||
- wordpress-network
|
||||
|
||||
volumes:
|
||||
mariadb-data:
|
||||
mariadb-data:
|
||||
|
||||
networks:
|
||||
wordpress-network:
|
||||
name: wordpress-network
|
||||
|
Reference in New Issue
Block a user