docker 安装 php-fpm 服务 / 扩展 / 配置的示例教程详解

2020-06-17 07:26:53易采站长站整理

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