我的宿主機部署了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會轉發請求。