使用Docker的PHP开发环境

前端之家收集整理的这篇文章主要介绍了使用Docker的PHP开发环境 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我目前正在尝试使用NginxPHP-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的主要思想是隔离您的应用程序.

原文链接:https://www.f2er.com/nginx/532340.html

猜你在找的Nginx相关文章