#这里使用nginx配合php-fpm的方式来运行php,nginx部署见上篇
#下载php7.2 fpm
docker pull php:7.2-fpm
A:使用php-fpm容器IP的方式
docker run --name dcPhpfpm -p 9000:9000 \ -v /web/www:/var/www/html \ -d php:7.2-fpm
#查看dcPhpfpm容器的IP
docker inspect dcPhpfpm | grep "IPAddress"
比如结果为 172.17.0.3。在/web/conf/conf.d/default.conf(见上篇)中添加以下内容,以解析php
location ~ \.php$ { fastcgi_pass 172.17.0.3:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name; include fastcgi_params; }
fastcgi_param SCRIPT_FILENAME #对应php-fpm的html目录,不使用$document_root
#重启nginx容器
docker restart dcNginx
#创建一个测试页
vi /web/www/p.php
输入:
<?php phpinfo();
#访问:192.168.1.200/p.php,正常即可看到phpinfo页
B:使用php-fpm容器名的方式:
#如果在上篇的dcNginx中做了连接,连到容器 dcPhpfpm 则可把IP改为容器名 fastcgi_pass dcNginx:9000;
方法是在创建启动的时候加 --link
步骤:
#停止并删掉之前的dcNginx,重建,加一行命令 “--link dcPhpfpm:phpfpm” 让它连接到 dcPhpfpm。停止并删除上篇中创建的nginx容器:
docker stop dcNginx docker rm dcNginx
加一行--link dcPhpfpm:phpfpm 重新创建dcNginx,使其与dcPhpfpm关联,完整命令如下:
docker run --name dcNginx -p 80:80 \ --link dcPhpfpm:phpfpm \ -v /web/www:/usr/share/nginx/html \ -v /web/conf/nginx.conf:/usr/share/nginx/nginx.conf \ -v /web/conf/conf.d:/etc/nginx/conf.d \ -v /web/logs:/var/log/nginx \ -d nginx
此时即可把容器IP 172.17.0.3改为容器名 dcPhpfpm
location ~ \.php$ { fastcgi_pass dcPhpfpm:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name; include fastcgi_params; }
完整nginx配置文件default.conf
server { listen 80; server_name localhost; ##charset koi8-r; ##access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } location /api{ proxy_pass http://192.168.1.1:9999/api; # access_log "logs/test.log"; } location ~ \.php$ { fastcgi_pass dcPhpfpm:9000; #fastcgi_pass 172.17.0.3:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name; include fastcgi_params; } }
所以最好安装顺序为 mysql(mariadb) > php-fpm > nginx
装完mysql(mariadb),在php-fpm中建一个连接到mysql,nginx再建连接到php-fpm。
类别:OperationMaintenance 阅读(0) 评论(0) 发表时间:2018-06-07 20:00 星期四