在
mac 上用
brew 装
php56 时,因为
openssl 是
1.1 版本而导致各种
google 都搞不定的错误,太折腾了,现在用
docker 创建一个
php56-fpm 服务容器,
nginx 直装在宿主机上。PHP DockerHub 主页
创建容器
# 创建容器
docker run -d
--name php56-fpm
-p 9056:9000
-v /home/wwwroot:/var/www/html
--privileged=true
php:5.6-fpm注意:
/var/www/html 是
php docker 镜像的工作目录。
-v /home/wwwroot:/var/www/html 的作用是将宿主机的站点目录挂载到容器上。比如
/home/wwwroot/siteA,在容器中的访问位置是
/var/www/html/siteA。
nignx 转发
php 请求时,会将执行的脚本名
SCRIPT_NAME 和脚本文件名
SCRIPT_FILENAME 转发给
fpm,而后
fpm 去读取脚本执行。在使用
fpm 容器时,需要注意
nginx 转发的
SCRIPT_FILENAME 是否是
fpm 容器中的有效站点路径,如果
nginx 的
root 并不能直接映射至
fpm 容器的站点
root,我们需要在
php location 中重新定义为
fpm 容器的站点
root。这样
fpm 才能正确的读取到脚本。即宿主机上的
/home/wwwroot/siteA/public/index.php 要转为
/var/www/html/siteA/public/index.php 发送给
fpm 容器,否则会报
File not found










