在Linux系统中使用Nginx代理Docker部署的PHP5容器

有个早期的小应用只能运行在php5环境,而本人没多余的服务器,只好借用docker,本文讲述了在CentOS7下通过docker部署php5容器的全过程,以及nginx的配置方法。

部署docker-php

安装docker

yum -y install docker

systemctl start docker

获取docker-php镜像

docker search php

docker pull php:5.6-fpm

部署docker-php容器

docker run -p 9001:9000 --name php56 -v /web/html:/var/www/html -v /opt/php56:/usr/local/etc/php -d php:5.6-fpm

参数说明:

  • -p -> 将容器的9000端口映射到主机的9001端口
  • --name -> 将容器命名为php56
  • -v -> 将主机的/web/html映射为容器的/var/www/html
        -> 将主机的/opt/php56映射为容器的/usr/local/etc/php
  • -d -> 后台运行镜像php:5.6-fpm

补充知识:

如果启动容器时没有映射文件目录,可以通过cp命令将本地文件copy到容器中:

docker cp FILENAME {container_id}:/var/www/html/

修改文件或容器参数(/var/lib/docker/containers/{container_id})后,可能需要重启容器:

docker restart {container_id}

检查php容器状态

docker ps

docker exec -it 49cb273aba7e bash

netstat -tlnp

配置nginx

vim /etc/nginx/nginx.conf

...
server {
...
    location ~ \.php {
        root /var/www/html;
        include fastcgi_params;
        fastcgi_pass 0.0.0.0:9001;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

如果解析有问题,可以尝试做如下修改:

fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
赞 (0) 打赏

评论 0

评论前必须登录!

登陆 注册

感谢您的支持与帮助

支付宝扫一扫打赏

微信扫一扫打赏