日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

centos7 nginx php整合,Centos7下,宿主机nginx配合docker环境的php-fpm

發布時間:2024/10/8 php 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 centos7 nginx php整合,Centos7下,宿主机nginx配合docker环境的php-fpm 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.安裝docker并啟動

yum install docker

systemctl start docker

二.安裝nginx

CentOS 7默認不能從yum中安裝nginx,原因可以自己搜索一下,需要執行以下命令

sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

之后就可以用yum安裝了

yum install nginx

三.用docker拉取php-fpm

因為是老項目,不支持php7,所以用的php5.6的fpm鏡像

docker pull phpdockerio/php56-fpm

四.運行phpfpm

docker run --name php56fpm -v /var/www/html/xx/www/:/var/www/html/ --privileged=true -d phpdockerio/php56-fpm

解釋:

docker run

運行鏡像

--name php56fpm

將運行的容器命名為php56fpm

-v /var/www/html/xx/www/:/var/www/html/

映射本地目錄到容器內部的/var/www/html/,php-fpm容器內部會通過這個目錄訪問PHP文件.

--privileged=true

增加特權,不然沒有權限訪問/var/www/html/這里的文件,會導致nginx也無法訪問文件(File not found.).(共三種方法,見PS.1)

-d

后臺運行

phpdockerio/php56-fpm

鏡像的名字

可以不映射端口,如果需要映射,增加參數-p 9001:9000 本地的9001端口映射到容器內部的9000端口,但nginx只用內部的9000端口就夠了.

五.修改宿主機的nginx配置

vi /etc/nginx/conf.d/xx.conf

location ~ \.php${

root/var/www/html/xx/www;

fastcgi_pass172.17.0.2:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME/var/www/html/$fastcgi_script_name;

include fastcgi_params;

}

其中的fastcgi_pass和fastcgi_param和平時配置nginx的時候有所區別,

fastcgi_pass要指定容器的IP,通過 docker inspect php56fpm 可以查看具體IP("IPAddress": "172.17.0.2")

fastcgi_param SCRIPT_FILENAME 后面的值要改成容器內部的地址/var/www/html/

PS.1

在Cent OS 7中運行,如果不加--privileged=true,則會出現nginx沒有訪問內部文件的權限

原因是CentOS7中的安全模塊selinux把權限禁掉了,至少有以下三種方式解決掛載的目錄沒有權限的問題:

1,在運行容器的時候,給容器加特權:--privileged=true

2,臨時關閉selinux:

su -c "setenforce 0"

3,添加selinux規則,將要掛載的目錄添加到白名單:

chcon -Rt svirt_sandbox_file_t /var/www/html/xx/www/

PS.2

如果遇到明明沒用開啟端口卻提示端口占用,有可能是之前刪除的容器還沒完全退出,重啟一下docker就好了

比如提示:Error response from daemon: driver failed programming external connectivity......

iptables failed: iptables --wait -t nat -A DOCKER

總結

以上是生活随笔為你收集整理的centos7 nginx php整合,Centos7下,宿主机nginx配合docker环境的php-fpm的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。