目标

基于webdevops/php-nginx构建的 Docker 镜像,默认支持伪静态的,然而忘记是哪个文件了,所以专门记录一下过程;

注:目前只是把文件路径梳理了出来,具体怎么合理优雅的进行自定义要再研究 Orz;

命令备忘

1
2
3
4
5
# 进入容器内
docker exec -it zbp_ForAPP /bin/bash

# 在容器内执行
find /|grep nginx.conf

主文件路径是:/etc/nginx/nginx.conf,然而又引用了各种外部文件;

比如:include /etc/nginx/modules-enabled/*.conf;,实际对应文件在:/usr/share/nginx/modules-available/;←不过这里都是一些*.so文件的引用;

然后是:include /etc/nginx/conf.d/*.conf;include /etc/nginx/sites-enabled/*;

不过后者默认为空,前者涉及到的主要文件都在/opt/docker/etc/nginx内;

以下为了查询需要的路径:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 进入容器内部
docker exec -it zbp_ForAPP /bin/bash
cd /etc/nginx/conf.d
ls
# 10-docker.conf

readlink *
# /opt/docker/etc/nginx/main.conf

cd /opt/docker/etc/nginx
ls
# conf.d main.conf ssl vhost.common.d vhost.ssl.conf
# global.conf php.conf vhost.common.conf vhost.conf
1
2
3
4
5
6
# 在容器外
# 复制文件
NGINX_DIR=/home/www/zbp_ForAPP/nginx
docker cp zbp_ForAPP:/etc/nginx/nginx.conf "${NGINX_DIR}/"
docker cp zbp_ForAPP:/opt/docker/etc/nginx "${NGINX_DIR}/"
# docker cp zbp_ForAPP:/usr/share/nginx/modules-available "${NGINX_DIR}/"

结果

以容器内路径来说,有下边文件:

/opt/docker/etc/nginx/vhost.common.d/10-location-root.conf

内容:

1
2
3
location / {
try_files $uri $uri/ /index.php?$query_string;
}

等同于一般意义上的伪静态;大概。。