计划

1.php服务相关文件。

2.后端使用php-fpm容器启动

3.前端使用本地nginx代理,或者使用容器nginx代理(可不映射php-fpm端口)

php项目目录

/var/www/example/

Index.php文件在该目录

示例

1.使用本地nginx+容器php-fpm服务部署

2.使用容器nginx+容器php-fpm服务部署

一.使用本地nginx+容器php-fpm服务部署

1.启动php-fpm

映射端口,供本地nginx调用

挂载项目目录,使内部能够访问

docker run --name myphp-fpm -p 9000:9000 -v /var/www/example/:/www -d php:5.6-fpm

2.本地nginx代理配置

php-example-test.conf

server {
        listen 8090;
        server_name php-example-test.example.com;
        charset utf-8;

        location / {
                # 取消缓存
                add_header Cache-Control no-cache;
                # 指定根目录
                root /var/www/example/;
                # 指定index文件为 index.php,即加载 /var/www/example/index.php
                index index.php;
        }

        location ~ \.php$ {
                # 设置 FastCGI 服务器的地址
                fastcgi_pass 127.0.0.1:9000;
                # 在`$fastcgi_script_name`变量的值中设置一个文件名,该文件名将附加在以斜线结尾的 URI 之后。
                fastcgi_index index.php;
                # 设置 SCRIPT_FILENAME 用于确定php位置
                # 请求 / 转到 /www/index.php
                # 请求 /page.php 转到 /www/page.php
                fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
                # 加载参数
                include fastcgi_params;
        }
        access_log /var/log/nginx/php-example-test_access.log main;
        error_log /var/log/nginx/php-example-test_error.log;
}

访问代理端口8090即可,若端口已存在,更换其他端口。

二.使用容器nginx+容器php-fpm服务部署

1.启动php-fpm

不映射端口,容器内部--link调用

dockr run --name myphp-fpm -v /var/www/example/:/www -d php:5.6-fpm

2.创建nginx容器内使用的配置文件

创建目录

mkdir -p nginx/conf/conf.d

创建配置文件

vim nginx/conf/conf.d/runoob-test-php.conf

runoob-test-php.conf 配置内容

server {
        listen 80;
        server_name localhost;

        location / {
                root /usr/share/nginx/html;
                index index.html index.htm index.php;
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root /usr/share/nginx/html;
        }

        location ~ \.php$ {
                fastcgi_pass php:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
                include fastcgi_params;
        }
}

3.启动nginx服务

docker run --name runoob-php-nginx -p 8087:80 -d \
-v /var/www/mdt/htdocs:/usr/share/nginx/html:ro \
-v ~/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
--link myphp-fpm:php \
nginx

通过link建立连接,nginx可以通过 php 别名访问 myphp-fpm容器的IP

访问代理端口8087即可,若端口已存在,删除容器,更换其他端口部署。

标签: Nginx, PHP

添加新评论