php docker开发环境,使用Docker的PHP开发环境
我目前正在嘗試使用NGINX和PHP-FPM Docker容器設(shè)置PHP開(kāi)發(fā)環(huán)境.
現(xiàn)在,我知道這可以通過(guò)運(yùn)行兩個(gè)服務(wù)的單個(gè)容器,也可以通過(guò)多個(gè)容器設(shè)置來(lái)實(shí)現(xiàn),其中每個(gè)服務(wù)都在自己的容器中運(yùn)行(這是基于我到目前為止的研究).
我的問(wèn)題可以分為兩個(gè)問(wèn)題:
>如何使用多容器解決方案設(shè)置多個(gè)不同的PHP應(yīng)用程序并使它們彼此通信?
我是否必須為每個(gè)PHP-FPM設(shè)置一個(gè)NGINX容器,還是可以設(shè)置一個(gè)NGINX容器并與多個(gè)不同的PHP-FPM一起使用?
>對(duì)于開(kāi)發(fā)環(huán)境,多容器解決方案是否甚至是一個(gè)好的解決方案?還是我完全錯(cuò)了?
在此先感謝,任何提示將不勝感激!
解決方法:
既然您正在詢(xún)問(wèn)多容器環(huán)境,那么我相信您正在為應(yīng)用程序使用Docker compose.為了更詳盡地回答您的問(wèn)題.
1)假設(shè)我們?cè)赿ocker compose中有三個(gè)容器,一個(gè)用于nginx,一個(gè)用于laravel的fpm容器,另一個(gè)用于magento的fpm容器.那么您的docker compose文件將如下所示.以下片段僅是示例
nginx:
image: nginx:latest
ports:
- "80:80"
- "443:443"
links:
- "fpmlaravel"
- "fpmmagento"
fpmlaravel:
image: php:latest
volumes:
- ./data/laravel/:/var/www/laravel
links:
- "nginx"
fpmmagento:
image: php:latest
volumes:
- ./data/magentoroot/:/var/www/magento
links:
- "nginx"
magento的Nginx vhost文件將是
# PHP back end
upstream backend {
server fpmmagento:9000;
}
server {
listen 80;
server_name www.magento.dev magento.dev;
root /var/www/magento;
location ~ \.php${
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass backend;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param HTTPS $fastcgi_https;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param MAGE_RUN_TYPE $mage_type;
fastcgi_param MAGE_RUN_CODE $mage_code;
}
}
對(duì)于fpm,請(qǐng)確保fpm映像正在偵聽(tīng)端口9000.
2)是,可以有一個(gè)nginx容器,該容器基于nginx虛擬主機(jī)在不同的fpm后端之間路由.但是,通常,這被認(rèn)為是不好的做法,因?yàn)镈ocker的主要思想是隔離您的應(yīng)用程序.
標(biāo)簽:nginx,docker,php
來(lái)源: https://codeday.me/bug/20191111/2019508.html
總結(jié)
以上是生活随笔為你收集整理的php docker开发环境,使用Docker的PHP开发环境的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 转基因技术的利与弊有哪些 转基因技术是把
- 下一篇: php是否直接支持函数的重载,php函数