加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

使用Docker的PHP开发环境

发布时间:2020-12-13 20:56:05 所属栏目:Nginx 来源:网络整理
导读:我目前正在尝试使用NGINX和PHP-FPM Docker容器设置PHP开发环境. 现在,我知道这可以通过运行两个服务的单个容器,也可以通过多个容器设置来实现,其中每个服务都在自己的容器中运行(这是基于我到目前为止的研究). 我的问题可以分为两个问题: 如何使用多容器解

我目前正在尝试使用NGINX和PHP-FPM Docker容器设置PHP开发环境.

现在,我知道这可以通过运行两个服务的单个容器,也可以通过多个容器设置来实现,其中每个服务都在自己的容器中运行(这是基于我到目前为止的研究).

我的问题可以分为两个问题:

>如何使用多容器解决方案设置多个不同的程序并使它们彼此通信?
我是否必须为每个PHP-FPM设置一个NGINX容器,还是可以设置一个NGINX容器并与多个不同的PHP-FPM一起使用?
>对于开发环境,多容器解决方案是否甚至是一个好的解决方案?还是我完全错了?

在此先感谢,任何提示将不胜感激!

最佳答案
既然您正在询问多容器环境,那么我相信您正在为应用程序使用Docker compose.为了更详尽地回答您的问题.

1)假设我们在docker compose中有三个容器,一个用于nginx,一个用于laravel的fpm容器,另一个用于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;
  }
}

对于fpm,请确保fpm映像正在侦听端口9000.

2)是,可以有一个nginx容器,该容器基于nginx虚拟主机在不同的fpm后端之间路由.但是,通常,这被认为是不好的做法,因为Docker的主要思想是隔离您的应用程序.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读