手牽手一起使用 docker 搭建 PHP 環境,並使用 supervisor 管理你的 swoole 程式

bossaiguo發表於2019-07-11

隨著公司專案的茁壯成長,所需要的功能越來越多。swoole的使用也就呼之欲出了!laravel框架目前比較好使用swoole的方案應該非laravels莫屬了。自熱而然的鄙人想到使用laravel+laravels+nginx+supervisor,打造一個簡潔、易用、可擴充套件的docker-compose檔案,供各位客官使用。

docker-php專案地址

使用方法

基礎配置(以安裝好docker-compose的同學們,可以跳過此步驟)

  1. 安裝Docker(官方預設會自帶docker-compose 工具), 已經安裝過的可以跳過此步
  2. 對Docker Machine 設定裡,配置Setting->Daemon->Registry mirrors,增加加速器URL,比如http://xxxx.m.daocloud.io
  3. 對Docker Machine 設定裡,配置Setting->Shared Drives(Windows)/File Sharing(Mac),

Docker-php的使用

  1. 複製example.env到同級目錄下,並重新命名.env,命令操作
    cp ./example.env ./.env
  2. 修改.env檔案的配置。LOCAL_STOARGE_PATH=設定為此github clone的根目錄。 比如/var/www/html/docker-php
  3. 修改.env檔案的配置。LOCAL_WEB_PATH=設定為你開發專案的基礎根目錄, 比如/var/www/html/docker-php/www
  4. 把要啟動的程式,比如laravels 或者php 的supervisor配置檔案加入到 /var/www/html/docker-php/supervisor/conf
  5. 啟動docker-composer
    docker-compose up -d

nginx的使用

  1. 多個虛擬站點的配置,直接參考nginx/conf.d/demo.cfg, 複製貼上demo.cfg在同目錄下並重名為site1.conf, 並根據註釋修改目錄路徑(以容器目錄為準),重新命名檔案必須以conf副檔名結尾, 舉例命令列
  2. nginx 的錯誤日誌目錄在 /var/www/html/docker-php/log/nginx

php的使用

  1. 【Seaslog】的配置範本檔案在宿主機php/ext/ini/seaslog.ini裡,根據註釋複製一下,然後進入PHP容器修改容器內的檔案/usr/local/etc/php/conf.d/docker-php-ext-seaslog.ini 即可, 命令如下
  2. php 中使用composer
    docker-compose exec php bash
    composer install

    supervisor 的使用

  3. supervisor 啟動日誌目錄 /var/www/html/docker-php/log/supervisor
  4. supervisor 程式啟動目錄 /var/www/html/docker-php/supervisor/conf
  5. supervisor 的基本使用命令介紹
    //進入php容器內
    docker-compose exec php bash
    //啟動某個程式(program_name=你配置中寫的程式名稱)
    supervisorctl start program_name
    //檢視正在守候的程式
    supervisorctl
    //停止某一程式 (program_name=你配置中寫的程式名稱)
    supervisorctl stop program_name
    //重啟某一程式 (program_name=你配置中寫的程式名稱)
    supervisorctl restart program_name
    //停止全部程式
    supervisorctl stop all

    在這裡特別鳴謝php界的暖男(laravels的作者),並附上專案地址:https://github.com/hhxsv5/laravel-s

相關文章