宿主機的nginx與docker容器裡的php如何關聯?

WBOY
發布: 2016-10-10 11:55:56
原創
2947 人瀏覽過

我的宿主機部署了nginx,並啟動映射到80端口,
然後我pull了一份php7-fpm的鏡像到一個新容器裡,並啟動映射端口9000:9000,

請問如何才能讓宿主機的nginx和容器裡的php關聯起來呢?望解答謝謝。


10.07
我訪問外網ip然後進入的是docker容器裡的www根目錄(預設是 /var/www/html)
我宿主機的nginx配置如下:

<code>        ······· 
        location / {
            root  /var/www/XX;  #宿主机的web应用所在目录
            index index.html index.php;
        }
        ·······
        location ~ \.php$ {
            root /var/www/XX; #宿主机的web应用所在目录
            fastcgi_pass   192.168.42.18:9000; #docker容器php-fpm分配的内网ip和端口
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/html/$fastcgi_script_name; # /var/www/html 是php容器的页面存放目录
            include        /usr/local/nginx/conf/fastcgi_params; #宿主机nginx所在目录
        }
        </code>
登入後複製
登入後複製

請問如何讓外網存取 /var/www/XX 這個目錄呢

回覆內容:

我的宿主機部署了nginx,並啟動映射到80端口,
然後我pull了一份php7-fpm的鏡像到一個新容器裡,並啟動映射端口9000:9000,

請問如何才能讓宿主機的nginx和容器裡的php關聯起來呢?望解答謝謝。


10.07
我訪問外網ip然後進入的是docker容器裡的www根目錄(預設是 /var/www/html)
我宿主機的nginx配置如下:

<code>        ······· 
        location / {
            root  /var/www/XX;  #宿主机的web应用所在目录
            index index.html index.php;
        }
        ·······
        location ~ \.php$ {
            root /var/www/XX; #宿主机的web应用所在目录
            fastcgi_pass   192.168.42.18:9000; #docker容器php-fpm分配的内网ip和端口
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/html/$fastcgi_script_name; # /var/www/html 是php容器的页面存放目录
            include        /usr/local/nginx/conf/fastcgi_params; #宿主机nginx所在目录
        }
        </code>
登入後複製
登入後複製

請問如何讓外網存取 /var/www/XX 這個目錄呢

首先,容器間連接使用的是--link參數,而不是透過IP,也不是透過-p映射埠。
其次,Nginx搭配PHP的最佳實際上是,兩個容器掛載相同的資料卷(也就是程式碼目錄)。

建議先熟悉一下Docker的基礎使用方法。
https://docs.docker.com/

你的配置中:

<code>fastcgi_param  SCRIPT_FILENAME  /var/www/html/$fastcgi_script_name;
</code>
登入後複製

改成:

<code>fastcgi_param  SCRIPT_FILENAME  /var/www/XX/$fastcgi_script_name;</code>
登入後複製

試試;

直接訪問nginx就能訪問到,nginx會轉發請求。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!