Docker 下開發 hyperf 完整使用示例

Tim-AutumnWind發表於2020-01-08

Hyperf 官方網站
Hyperf 官方文件安裝篇

1. docker 使用

  • docker search 列出 hyperf 映象
  • docker pull 下載映象到本地
  • 執行 映象並且將目錄掛載到當前目錄下資料夾 內,同時依照 /bin/sh的方式執行
  • 進入到 hyperf-skeleton 目錄,此目錄是和本地掛靠的
    $ docker search hyperf 
    $ docker pull hyperf/hyperf 
    $ docker run -v $PWD/:/hyperf-skeleton -p 9501:9501 -it --entrypoint /bin/sh  hyperf/hyperf
    $ cd hyperf-skeleton

2. 映象容器執行後,並在容器內安裝 Composer

  • 先下載 Composerdocker 容器內
    $ wget https://mirrors.aliyun.com/composer/composer.phar

3.修改執行許可權

  • 此操作是為了解決 Composer 不允許 root 許可權執行的限制
  • 同時為切換使用者時,可以直接操作
  • 生產環境下不推薦 777 授權方式
    $ chmod -R 777 ./composer.phar

4.移動 composerbin 目錄下面,並且改名為 composer

  • 生產環境下不推薦 777 授權方式
    $ mv composer.phar /usr/local/bin/composer

5.修改 root 密碼

  • 同時因為不清楚 root 密碼,我們直接先做好修改
  • 密碼需要重複輸入兩次,並且不會顯示,請注意
    $ passwd root

6.可以檢視一下是 linux 發行版版本(命令會有所區別)

  • 官方的映象為 Linuxalpine
    $ cat /etc/os-release

7. 建立一個指定GID的組

  • 官方的映象為 Linuxalpine 和很多小夥伴用的 Centos 命令會有所區別
  • 如果是自己的建立的映象,按照發行版本命令走就好了
    $ addgroup -g 10001 -S www

8. 建立一個指定UID的使用者

  • 指定shell, 讓它屬於指定的使用者組。
    $ adduser  www -u 20001 -D -S -s /bin/bash -G www

9. 讓新建的使用者可以使用 su -root 使用者下,

  • $ chmod 4755 /bin/busybox

10. 切換至 www 使用者執行 composer

  • su www 切換使用者
  • whoami 檢視當前使用者
    $ su www
    $ whoami

11. 將 Composer 映象設定為阿里雲映象,用於加速國內下載速度

  • 當然是否使用阿里雲映象看個人需求(無廣告嫌疑)
    $ composer config -g repo.packagist composer https://mirrors.aliyun.com/composer

12. 通過 Composer 安裝 hyperf 骨架

  • 安裝時選擇看個人需求哈!
    $ composer create-project hyperf/hyperf-skeleton

13. 檢視一下配置等資訊

  • 一般情況下,hyperf 官方的源映象都是配置好的
  • 以下只是提供一下命令
  • 檢視 swoole
    $ php --ri swoole
    $ php -i | grep ini

14. php.ini 內寫入一下資訊

  • 特別注意 OffO 為大寫
    extension="grpc.so"
    extension="redis.so"
    extension="swoole.so"
    swoole.use_shortname = 'Off'

15. 存在相容性問題的擴充套件

  • 由於 Hyperf 基於 Swoole 協程實現
  • Swoole 4 帶來的協程功能是 PHP 前所未有的,所以與不少擴充套件都仍存在相容性的問題。
  • 以下擴充套件(包括但不限於)都會造成一定的相容性問題,不能與之共用或共存:
  • xhprof
  • xdebug
  • blackfire
  • trace
  • uopz
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章