问题描述
我试图为我的本地开发项目准备docker-compose文件,但是我一直坚持为phpmyadmin设置域。
我将主机添加到Windows上的主机文件中。
127.0.0.1 phpmyadmin.test
127.0.0.1 wordpress1.test
127.0.0.1 worpresss2.test
我的dev文件夹的结构:
dockerfiles/
|-wordpress1
- Dockerfile
|-wordpress2
- Dockerfile
.docker/nginx/conf.d/
- nginx.conf
- phpmyadmin.conf
sites/
docker-compose.yml
docker-compose.yml:
version: '3.7'
services:
# Nginx Service
nginx:
image: nginx:1.17-alpine
ports:
- 80:80
volumes:
- ./sites:/var/www/html
- ./.docker/nginx/conf.d:/etc/nginx/conf.d:ro
- phpmyadmindata:/usr/src/phpmyadmin:ro
depends_on:
- mysql
- phpmyadmin
# Database
mysql:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
volumes:
- mysql:/var/lib/mysql
# phpmyadmin
phpmyadmin:
image: phpmyadmin/phpmyadmin:5-fpm-alpine
restart: always
environment:
PMA_HOST: mysql
MYSQL_ROOT_PASSWORD: root
volumes:
- phpmyadmindata:/usr/src/phpmyadmin
depends_on:
- mysql
#wordpress1
wordpress1:
build: ./.docker/dockerfiles/wordpress1
restart: always
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
- ./sites/wordpress1:/var/www/html/wordpress1
#wordpress2
wordpress2:
build: ./.docker/dockerfiles/wordpress2
restart: always
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_NAME: wordpress2
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
- ./sites/wordpress2:/var/www/html/wordpress2
volumes:
phpmyadmindata:
mysql:
wordpress1的dockerfile:
FROM wordpress:5.5.1-php7.4-fpm
WORKDIR /var/www/html/wordpress1
wordpress2的dockerfile:
FROM wordpress:5.5.1-php7.4-fpm
WORKDIR /var/www/html/wordpress2
nginx.conf
server {
listen 80;
listen [::]:80;
server_name wordpress1.test;
root /var/www/html/wordpress1;
index index.php;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_pass wordpress1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|woff|woff2)$ {
expires max;
log_not_found off;
}
}
server {
listen 80;
listen [::]:80;
server_name wordpress2.test;
root /var/www/html/wordpress2;
index index.php;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_pass wordpress2:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|woff|woff2)$ {
expires max;
log_not_found off;
}
}
和我的phpmyadmin.conf
server {
listen 80;
listen [::]:80;
server_name phpmyadmin.test;
root /usr/src/phpmyadmin;
index index.php;
location ~* \.php$ {
fastcgi_pass phpmyadmin:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
因此,域:wordpress1.test和wordpress2.test运行良好 但是当我转到phpmyadmin.test时,出现403错误,我也不知道为什么。 你能帮我吗?
顺便说一句。为什么我必须使用受写入影响的构建Dockerfile: 图片:wordpress:5.5.1-fpm
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)