成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Docker中配置Nginx與PHP

王晗 / 2334人閱讀

摘要:后臺運(yùn)行容器后面的那個就是鏡像的名稱了啟動配置的配置文件下面貼出我的配置這個我在主機(jī)的文件中配置的指向,其實(shí)就是訪問的本機(jī)端口。

最近在學(xué)docker,順便配置了一下docker中的nginx與php,發(fā)現(xiàn)網(wǎng)上的關(guān)于docker中配置nginx與php的資料很少,而且有的也很舊,沒有太多的參考性,所以決定自己寫一篇,分享一下其中的經(jīng)驗(yàn)。

版本說明

docker: Version 17.06.2-ce-mac27 (19124)

PHP:7.1

Nginx:1.13.3

操作系統(tǒng) Mac 10.12.6

安裝docker

直接上docker的官網(wǎng)https://www.docker.com下載docker For Mac這個版本,是docker專門為mac系統(tǒng)編寫的軟件,相當(dāng)于一個app,下載安裝好后,打開docker App,然后在App中啟動docker即可。

安裝Nginx

啟動docker之后,打開命令行,你的命令行里面就有了docker這個命令:

然后我直接使用的是官方的nginx鏡像,下載方法:

docker pull nginx

等待下載完即可。

安裝PHP

同理,我也是使用的官方的PHP鏡像,其實(shí)nginx和php我都推薦官方的鏡像,畢竟官方鏡像代表著安全和穩(wěn)定。

docker pull php:7.1-fpm

你如果想下載其他的版本,上官方鏡像上面去看一下,都有各種版本的說明,想下載什么版本的都有。我這里就用的最新的php版本了。

啟動Nginx

安裝好nginx之后,便用命令啟動它:

docker run -p 80:80 --name mynginx -v /Users/Doubleduan/Documents/project:/home -v /Users/Doubleduan/Documents/conf:/etc/nginx/conf.d -d nginx 

-p 代表著把容器中的80端口綁定到宿主機(jī)的80端口,所以以后訪問宿主機(jī)的80端口就會轉(zhuǎn)發(fā)到nginx容器的80端口

--name 啟動的容器的名稱,自己定義,方便好記就行

-v 就是把我主機(jī)的/Users/Doubleduan/Documents/project目錄映射到容器中的/home目錄中,在容器中訪問/home你就會發(fā)現(xiàn)是我/Users/Doubleduan/Documents/project目錄中的東西。我映射了項(xiàng)目目錄和配置文件,你也可以把日志目錄也映射了,這樣你以后操作什么東西直接在主機(jī)中操作了,就不用登錄容器中去查看了。

-d 后臺運(yùn)行容器

后面的那個nginx就是鏡像的名稱了

啟動PHP
docker run -p 9000:9000 --name myphp -v /Users/Doubleduan/Documents/project:/home -d php:7.1-fpm
配置nginx的配置文件

下面貼出我的配置

server {
    listen       80;
    server_name  algo.test.com;
    root /home/algorithm;

    access_log  /var/log/nginx/access.log  main;
    error_log /var/log/nginx/error.log error;

    location / {
        index  index.html index.htm index.php;
    }

    location ~ .php$ {
        fastcgi_pass   172.17.0.3:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

這個algo.test.com我在主機(jī)的hosts文件中配置的指向127.0.0.1,其實(shí)就是訪問的本機(jī)80端口。這里要特別注意兩個點(diǎn):

第一點(diǎn):是fastcgi_pass 172.17.0.3:9000,這里的172.17.0.3就是php容器的ip,查詢?nèi)萜鱅P的方法:

docker inspect 容器ID或容器名 |grep ""IPAddress""

你自己配置的話要替換成你自己的php容器ip,注意不能用127.0.0.1,因?yàn)槲矣玫氖莇ocker默認(rèn)的網(wǎng)絡(luò)連接模式,也就是docker bridge模式,這種模式下你要訪問另一個容器就必須用那個容器的虛擬ip,而且端口也必須要與宿主機(jī)的相應(yīng)端口綁定,因?yàn)樗拗鳈C(jī)是一個網(wǎng)關(guān),nginx容器訪問php容器要經(jīng)過宿主機(jī)的網(wǎng)關(guān)轉(zhuǎn)發(fā)的,所以不綁定端口肯定訪問不了。

第二點(diǎn)
關(guān)于fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name這個配置,如果你想用$document_root變量,那就必須把nginx容器的數(shù)據(jù)目錄與php容器的數(shù)據(jù)目錄弄成一致的,比如我的nginx容器的數(shù)據(jù)目錄是/home/algorithm,在php容器中依然是這個,如果php容器中的目錄改變了,不是這個了,那么php容器就會找不到請求的這個文件的。因?yàn)閮蓚€容器相當(dāng)于兩套文件系統(tǒng),路徑有可能是不一樣的。但是呢,如果你偏要設(shè)置成不一樣的,那么只能寫死地址了,比如弄成這樣:fastcgi_param SCRIPT_FILENAME /home/algorithm/$fastcgi_script_name,就可以讓php容器訪問到相應(yīng)的文件了。

弄好配置文件之后,重啟nginx容器,就可以訪問了。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/30680.html

相關(guān)文章

  • Docker配置NginxPHP

    摘要:后臺運(yùn)行容器后面的那個就是鏡像的名稱了啟動配置的配置文件下面貼出我的配置這個我在主機(jī)的文件中配置的指向,其實(shí)就是訪問的本機(jī)端口。 最近在學(xué)docker,順便配置了一下docker中的nginx與php,發(fā)現(xiàn)網(wǎng)上的關(guān)于docker中配置nginx與php的資料很少,而且有的也很舊,沒有太多的參考性,所以決定自己寫一篇,分享一下其中的經(jīng)驗(yàn)。 版本說明 docker: Version 17...

    ISherry 評論0 收藏0
  • Docker配置NginxPHP

    摘要:后臺運(yùn)行容器后面的那個就是鏡像的名稱了啟動配置的配置文件下面貼出我的配置這個我在主機(jī)的文件中配置的指向,其實(shí)就是訪問的本機(jī)端口。 最近在學(xué)docker,順便配置了一下docker中的nginx與php,發(fā)現(xiàn)網(wǎng)上的關(guān)于docker中配置nginx與php的資料很少,而且有的也很舊,沒有太多的參考性,所以決定自己寫一篇,分享一下其中的經(jīng)驗(yàn)。 版本說明 docker: Version 17...

    AnthonyHan 評論0 收藏0
  • 使用 Docker 構(gòu)建 LNMP 環(huán)境

    摘要:該配置用于建立遠(yuǎn)程連接,使得本地可以通過端口連接到宿主機(jī),進(jìn)而連接到這一容器的服務(wù)。刪除容器當(dāng)不再使用時,可以使用以下命令刪除容器。 構(gòu)建的環(huán)境為:PHP 7.1.3 fpm & Nginx 1.11.10 & MySQL 5.7 對 Docker 不熟悉的讀者可以參考之前撰文的一篇文章:Docker 快速上手 配置簡單的 LNMP 環(huán)境 這里使用 docker-compose 的方...

    CarlBenjamin 評論0 收藏0
  • Docker部署WordPress LNMP(Nginx PHP MySQL)環(huán)境實(shí)踐

    摘要:為了能只使用一個文件就能快速部署環(huán)境,我們把及環(huán)境的相關(guān)配置保存到阿里云的代碼托管,然后使用阿里云的鏡像倉庫從拉取自動構(gòu)建鏡像。編寫以上在阿里云創(chuàng)建的鏡像到本地,在此項(xiàng)目中創(chuàng)建然后在目錄分別創(chuàng)建目錄,用于存放它們各自及配置文件。 Docker基于LXC實(shí)現(xiàn)了把軟件封裝到一個完整的文件系統(tǒng),可以在docker容器中運(yùn)行所需的一切代碼,運(yùn)行環(huán)境,系統(tǒng)工具和系統(tǒng)庫。由于docker使用獨(dú)立于...

    Aklman 評論0 收藏0
  • Docker部署WordPress LNMP(Nginx PHP MySQL)環(huán)境實(shí)踐

    摘要:為了能只使用一個文件就能快速部署環(huán)境,我們把及環(huán)境的相關(guān)配置保存到阿里云的代碼托管,然后使用阿里云的鏡像倉庫從拉取自動構(gòu)建鏡像。編寫以上在阿里云創(chuàng)建的鏡像到本地,在此項(xiàng)目中創(chuàng)建然后在目錄分別創(chuàng)建目錄,用于存放它們各自及配置文件。 Docker基于LXC實(shí)現(xiàn)了把軟件封裝到一個完整的文件系統(tǒng),可以在docker容器中運(yùn)行所需的一切代碼,運(yùn)行環(huán)境,系統(tǒng)工具和系統(tǒng)庫。由于docker使用獨(dú)立于...

    Raaabbit 評論0 收藏0

發(fā)表評論

0條評論

王晗

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<