利用docker-compose快速部署php-fpm+nginx環(huán)境

前言

“PHP是世界上最好的語言”往史,這個大家應該都沒有爭議把:)
但是當你用php寫完一個項目后增淹,你會發(fā)現(xiàn)欧引,如果要將項目部署到線上垮媒,光是nginx+php-fpm的環(huán)境部署就要花費你許多時間听系。利用docker贝奇,可以大大節(jié)省我們的環(huán)境部署時間。

正文

docker簡介

  • 如果你還不了解docker靠胜,那么推薦你先通過其官網(wǎng)docker-從入門到實踐來學習和熟悉docker
  • 這里簡單介紹下docker compose:
    Compose 項目是 Docker 官方的開源項目掉瞳,負責實現(xiàn)對 Docker 容器集群的快速編排。docker compose項目允許用戶通過一個單獨的 docker-compose.yml 模板文件(YAML 格式)來定義一組相關聯(lián)的應用容器為一個項目(project)浪漠。它可以方便地對一組docker容器的生命周期進行管理陕习。

極簡部署方式

  • 這里有一個外國友人開源的項目:dockerised-php,將他的項目拉取下來址愿,直接運行docker-compose up命令该镣,便已經(jīng)可以成功地啟動php-fpm+nginx的環(huán)境。訪問http://localhost:8080响谓,便可以看到phpinfo的頁面损合。code目錄是放置php代碼的地方
  • 如果你的8080端口已經(jīng)被占用,那么需要修改下docker-compose.yml文件里的nginx容器的端口映射

改良版

  • 改進點:

    • 以上述方式啟動后娘纷,php-fpm和nginx是以tcp的方式進行通信的嫁审。從原理上來說,unix socket方式肯定要比tcp的方式快而且消耗資源少赖晶,所以通常我將其改為了socket方式律适。
    • 同時我還將php-fpm.conf和www.conf提取了出來,使得可以方便地修改php-fpm的配置。這2個文件直接放在根目錄即可捂贿,可以根據(jù)需求修改
    • 最后我將nginx的log通過VOLUME進行了掛載纠修,我們應該盡量保持容器存儲層不發(fā)生寫操作。你可以根據(jù)你需要在docker-compose.yml中修改其存儲路徑厂僧,注意權限問題
  • docker-compose.yml

version: '2.1'

services:
    web:
        image: nginx:latest
        ports:
            - "8080:80"
        volumes:
            - ./code:/code
            - ./site.conf:/etc/nginx/conf.d/default.conf
            - /private/var/log/nginx:/var/log/nginx
            - "phpsocket:/var/run"
        networks:
            - code-network
    php:
        image: php:fpm
        volumes:
            - ./code:/code
            - ./php-fpm.conf:/usr/local/etc/php-fpm.conf
            - ./www.conf:/usr/local/etc/php-fpm.d/www.conf
            - ./zz-docker.conf:/usr/local/etc/php-fpm.d/zz-docker.conf
            - "phpsocket:/var/run"
        networks:
            - code-network

networks:
    code-network:
        driver: bridge

volumes:
    phpsocket:

通過定義volumes: phpsocket:分瘾,我們讓php-fpm和nginx容器共享/var/run路徑下的php7-fpm.sock文件,實現(xiàn)nginx和php-fpm直接使用unix socket通信吁系。
另一個關鍵點是zz-docker.conf德召,在我嘗試多次后(google+stackoverflow),發(fā)現(xiàn)只有修改了zz-docker.conf里面的listen參數(shù)后汽纤,socket模式才起效果上岗。不知道php-fpm的官方docker鏡像為什么要用這樣一個文件,這個我一直都還沒弄懂其意圖蕴坪。當然其他參數(shù)還是在www.conf里面進行配置即可肴掷。下面是zz-docker.conf文件內容

[global]
daemonize = no

[www]
listen = /var/run/php7-fpm.sock
listen.mode = 0666

總結

利用docker,我們可以很方便地部署一套php的運行環(huán)境背传,而且也不用擔心代碼運行環(huán)境差異帶來的麻煩呆瞻。我寫這篇文章只是拋磚引玉,實際使用中還要根據(jù)自己的項目進行一些個性化的修改径玖。

比如你需要使用的php庫不在官方提供的鏡像里痴脾,那么你可以修改php-fpm的鏡像,或者自己構建鏡像梳星。同時如果你的項目還需要MySQL服務赞赖,也可以在此基礎上繼續(xù)加入MySQL鏡像,只不過要注意其數(shù)據(jù)存儲需要通過volumes掛載就行冤灾。

轉載自我的博客:劉文哲的博客

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末前域,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子韵吨,更是在濱河造成了極大的恐慌匿垄,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡葛假,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門变丧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人绢掰,你說我怎么就攤上這事。” “怎么了滴劲?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵攻晒,是天一觀的道長。 經(jīng)常有香客問我班挖,道長鲁捏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任萧芙,我火速辦了婚禮给梅,結果婚禮上,老公的妹妹穿的比我還像新娘双揪。我一直安慰自己动羽,他們只是感情好,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布渔期。 她就那樣靜靜地躺著运吓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪疯趟。 梳的紋絲不亂的頭發(fā)上拘哨,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機與錄音信峻,去河邊找鬼倦青。 笑死,一個胖子當著我的面吹牛盹舞,可吹牛的內容都是我干的姨夹。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼矾策,長吁一口氣:“原來是場噩夢啊……” “哼磷账!你這毒婦竟也來了?” 一聲冷哼從身側響起贾虽,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤逃糟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蓬豁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绰咽,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年地粪,在試婚紗的時候發(fā)現(xiàn)自己被綠了取募。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡蟆技,死狀恐怖玩敏,靈堂內的尸體忽然破棺而出斗忌,到底是詐尸還是另有隱情,我是刑警寧澤旺聚,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布织阳,位于F島的核電站,受9級特大地震影響砰粹,放射性物質發(fā)生泄漏唧躲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一碱璃、第九天 我趴在偏房一處隱蔽的房頂上張望弄痹。 院中可真熱鬧,春花似錦嵌器、人聲如沸肛真。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽毁欣。三九已至,卻和暖如春岳掐,著一層夾襖步出監(jiān)牢的瞬間凭疮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工串述, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留执解,地道東北人。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓纲酗,卻偏偏與公主長得像衰腌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子觅赊,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內容