NOTĂ: Am postat această întrebare în stackoverflow de asemenea
Încerc să configurez WordPress folosind docker-compose, dar WordPress trebuie să funcționeze într-un container separat cu php_fpm, un container pentru MariaDB și un Nginx în portul 443 care redirecționează către WordPress dacă linkul a fost HTTPS://localhost/wordpress
dar dacă legătura era HTTPS://localhost/
trebuie să trimită cererea către pagina index.html din același container.
totul merge bine, dar am o problemă cu fișierele CSS și js WordPress.
fișierul returnează un cod de eroare 403 (interzis) atunci când browserul încearcă să le obțină
meu docker-compose:
versiunea: '3'
Servicii:
db:
imagine: mysql:5.7
container_name: mariadb
volume:
- db-data:/var/lib/mysql
porturi:
- 3306:3306
mediu inconjurator:
MYSQL_ROOT_PASSWORD: testadmin
MYSQL_DATABASE: wordpress
MYSQL_USER: admin
MYSQL_PASSWORD: admin
reporniți: întotdeauna
retele:
- wpsite
wordpress:
build: wordpress/
volume:
- www-data:/var/www/html
container_name: wordpress
depinde de:
- db
porturi: ['9000:9000']
mediu inconjurator:
WORDPRESS_DB_HOST: db
MYSQL_ROOT_PASSWORD: mysql_root_pass
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: administrator
WORDPRESS_DB_PASSWORD: administrator
WORDPRESS_TABLE_PREFIX: wp_table
retele:
- wpsite
reporniți: întotdeauna
nginx:
build: nginx/
imagine: mynginx:mytest
container_name: my_nginx
volume:
- www-data:/var/www/html
porturi:
- 443:443
depinde de:
- wordpress
retele:
- wpsite
retele:
wpsite:
volume:
db-data:
www-data:
nginx dockerfile:
DIN alpin:3.12.0
RUN actualizare apk
RUN apk adăugați nginx openrc vim
RUN apk adăugați php7-common php7-iconv php7-json php7-gd php7-curl php7-xml \
php7-mysqli php7-imap php7-cgi fcgi php7-pdo php7-pdo_mysql php7-soap php7-xmlrpc \
php7-posix php7-mcrypt php7-gettext php7-ldap php7-ctype php7-dom php7 php7-fpm php7-opcache openssl
COPIEAZĂ src ./tmp/
RUN mkdir -p /var/www/html/
RUN openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt -subj "/C=MA /ST=Khouribga/L=Khouribga/O=1337/CN=ft_services"
RUN mv /tmp/default.conf /etc/nginx/conf.d/
RUN openrc
RUN atingeți /run/openrc/softlevel
ADAUGĂ src/run.sh .
RUN chmod +x /run.sh
ENTRYPOINT [ "/run.sh" ]
implicit.conf
Server {
asculta 443 ssl;
ssl_protocols TLSv1.3;
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
rădăcină /var/www/html;
index index.html;
# index index.html index.htm index.php;
numele serverului _;
# client_max_body_size 32m;
# error_page 500 502 503 504 /50x.html;
# autoindex dezactivat;
# index index.php index.html index.htm index.nginx-debian.html;
# include /etc/nginx/mime.types;
locație = /50x.html {
rădăcină /var/lib/nginx/html;
}
Locație / {
# Mai întâi încercați să serviți cererea ca fișier, apoi
# ca director, apoi reveniți la afișarea unui 404.
index index.html;
# try_files $uri $uri/ /index.php?$args;
}
# transmiteți scripturile PHP către serverul FastCGI care ascultă pe wordpress:9000
locație /wordpress {
# fastcgi_split_path_info ^(.+\.php)(/.+)$;
# root /var/www/html/;
fastcgi_pass 0.0.0.0:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
wordpress dockerfile:
DIN alpin:3.12.0
RUN actualizare apk
RUN apk adăuga openrc
RUN apk adăugați php7-common php7-iconv php7-json php7-gd php7-curl php7-xml \
php7-mysqli php7-imap php7-cgi fcgi php7-pdo php7-pdo_mysql php7-soap php7-xmlrpc \
php7-posix php7-mcrypt php7-gettext php7-ldap php7-ctype php7-dom php7 php7-fpm php7-opcache
COPIEAZĂ src ./tmp/
RUN mkdir -p /var/www/html
RUN openrc
RUN atingeți /run/openrc/softlevel
RUN sh tmp/wp-setup.sh
ADAUGĂ src/run.sh .
RUN chmod +x /run.sh
ENTRYPOINT [ "/run.sh" ]