我可以在主机上安装NginX并在docker容器中安装多个版本的PHP

时间:2019-03-29 11:42:10

标签: php docker nginx

我发现了类似的问题here,但并不能完全回答我的问题。

我一直在本地安装堆栈以进行开发,NginX,PHP7,MySQL和Couchbase。没问题。

现在,我必须处理一个需要较低版本PHP的项目...而且我的团队也必须进行处理,因此我一直希望Docker尝试找到解决方案。

在现有的NGINX conf文件中,我将请求发送到php-fpm这样

   location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  
        $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_ignore_client_abort on;
        fastcgi_param  SERVER_NAME $http_host;
    }

看那一行

fastcgi_pass   127.0.0.1:9000;

我希望能够创建一个运行特定版本PHP的docker容器,并将其写入服务器块,如上所述,但是使用

fastcgi_pass   172.17.0.1:9000;

其中172.17.0.1是容器的IP。

我已经很简单地使用了

FROM php:7.1-fpm
EXPOSE 9000

作为我的dockerfile。我可以构建映像,运行容器,在容器中运行bash,然后看到PHP -I和PHP -v返回了我期望的结果。

正在运行的docker inspect给了我两个IP地址172.17.0.1和172.17.0.2(在上面的示例中我都尝试了)

但是,此设置无法正常工作-当我尝试在浏览器中访问该网站时,收到了NGINX 504网关超时错误。

猜测我缺少什么,但不确定是什么。

如果需要,可以高兴地使用docker compose,如果需要,可以高兴地将卷装载到容器中。只是不确定我需要什么!:)

0 个答案:

没有答案