iT邦幫忙

0

docker 安裝Nginx+PHP

  • 分享至 

  • xImage

參考以下範例,要做 nginx + php
https://icode.best/i/73324437941285

但是做完,
http://127.0.0.1:8081/index.php
只出現 此頁面目前無法運作

請問:

3.创建 ~/nginx/conf/conf.d 目录 -->在php 容器內做嗎
我有把目錄建立起來

4启动 nginx
這裡面的路經都有存在嗎? 我都有手動建立

謝謝!

看更多先前的討論...收起先前的討論...
froce iT邦大師 1 級 ‧ 2022-08-01 11:23:33 檢舉
我覺得你應該惡補一下:
1. 在linux下nginx、php的安裝
2. docker的基礎觀念

创建 ~/nginx/conf/conf.d 目录 -> 這個要看你是怎麼建立docker的,有的人會偏好一個容器包含nginx和php環境,有的人會把nginx和php環境分開。
你說到的這篇是把nginx和php環境分開。

那nginx的設定檔自然要放在跟nginx容器相關的地方。

你看他[4启动 nginx:(注意windsow下命令行内 需要先复制到一行)]
docker run --name runoob-php-nginx -p 8081:80 -d -v ~/nginx/www:/usr/share/nginx/html:ro -v ~/nginx/conf/conf.d:/etc/nginx/conf.d:ro --link php7.2-fpm:php nginx
有個 -v,就是要產生docker的volume,讓容器內和實體機的路徑做連結。

都做完記得要改nginx的config
fastcgi_pass php:9000;
這個路徑是錯的,真實要看php container的ip。

他的1只是測試nginx container而已,不用管。
noway iT邦研究生 1 級 ‧ 2022-08-01 20:42:38 檢舉
您好:初學中
請問
1.目前初學,只能先參考範例來做,當然以後希望能一個容器包含多個功能
2.他得環境是否LINUX 為HOST 的DOCKEER
再DOCKER內再建立nginx+PHP
然後在 host建立路經 來做連接嗎?
 不能直接在 container來做?

很混亂@@
froce iT邦大師 1 級 ‧ 2022-08-02 13:50:18 檢舉
1. 這的確是在linux下的docker,但你如果懂docker和各項操作,是不影響的。所以我才叫你該惡補那兩樣。

2. 在container建,萬一哪天你要砍container不就全部要重新來?
docker的便利性是建立在會變動的設定、程式碼可以保留在主機,但環境可以任意變動,備份也只需要備份變動的部分。
noway iT邦研究生 1 級 ‧ 2022-08-02 21:12:09 檢舉
因為之前有看過文章
他說建議比如 先建OS container,並在container上 加NginX,包成image
再建成Container ,之後加上PHP 等!
所以以為是 可以 包在 container
Kailis iT邦研究生 1 級 ‧ 2022-10-12 16:33:08 檢舉
@force
```
fastcgi_pass php:9000;
這個路徑是錯的,真實要看php container的ip。
```


他的php container name 就叫php 所以php:9000 應該是沒問題的吧?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
yoloshiku
iT邦新手 3 級 ‧ 2022-08-01 08:52:07

看起來像是網路相關的問題,不知道你是用WSL還是docker for Windows,建議先看看

noway iT邦研究生 1 級 ‧ 2022-08-01 20:23:55 檢舉

您好:docker for Windows 來做

0
wolfwang
iT邦研究生 4 級 ‧ 2022-08-01 13:35:46

文中寫到

3.创建 ~/nginx/conf/conf.d 目录:
mkdir ~/nginx/conf/conf.d

那是指在 host 環境中建立目錄(而非 container 中),最後用掛載 volume 的方式,把它掛進去,也就是下面這一行做的事:

docker run --name runoob-php-nginx -p 8081:80 -d -v ~/nginx/www:/usr/share/nginx/html:ro -v ~/nginx/conf/conf.d:/etc/nginx/conf.d:ro --link php7.2-fpm:php nginx

noway iT邦研究生 1 級 ‧ 2022-08-01 20:29:24 檢舉

您好:
請問
1.一般都要 在本機(WIN),再掛上去嗎?
是否可以直接在container 做?,因為到時候是 只把開發的檔案 還是 整個IMAGER 拿來使用?

2.那我環境是win,要自己在 如D:\TEST\d01\做一個資料夾 來做MAP 嗎?

謝謝!

wolfwang iT邦研究生 4 級 ‧ 2022-08-02 09:39:38 檢舉

1.在本機作是方便修改(不用每次修改什麼都還要進去 docker),以及如果 container 掛掉,資料就全部不見。如果不擔心以上情況,在 container 作當然沒有問題。

  1. 就是在windows先建好資料夾,放進需要的檔案後,再用 docker volume 的語法對應掛上去,至於具體路徑的寫法在 windows 下怎麼寫,因為我不是用 windows,你自己要再確認一下。

我要發表回答

立即登入回答