nginx container + fpm模式
php:5.6.31-fpm
nginx:latest
1.启动fpm容器
docker run -d --name php-5.6 -v /root/src:/var/www/html -d php:5.6.31-fpm
2.启动nginx服务器并link到fpm
docker run --name nginx-latest -p 8080:80 -v /root/src:/var/www/html --linkphp-5.6:fpm -d nginx
3.查看fpm的ip地址及端口号
docker exec -it nginx-latest bash
进入后使用env命令查看环境变量,输出如下,可以看到fpm对应的ip及端口号
root@05cb669a483f:/# env
- FPM_PORT=tcp://172.17.0.2:9000
4.修改容器中/etc/nginx/conf.d/default.conf文件,在容器内不能修改,先复制到本地后修改
docker cp nginx-latest:/etc/nginx/conf.d/default.conf ./default.conf
修改内容如下
location ~* \.php$ {
fastcgi_index index.php;
fastcgi_pass 172.17.0.20:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
docker cp ./default.conf nginx-latest:/etc/nginx/conf.d/default.conf
5.reload 容器中的nginx
docker exec -it nginx-latest bash
在容器中执行nginx -s reload
备注:访问过程中可能会报错:”File not found“,解决办法是吧default.conf 文件中
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
替换为绝对路径
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
注:nginx配置文件default.conf中root写的什么地址这里绝对路径改相应地址
docker 参数说明:
-e 设置环境变量
-d 让容器在后台运行
-v 映射目录
-p 映射端口
-it 交互模式运行容器( run后台模式运行 )
--name --link 顾名思义