[TOC]
## 將php.ini的memory_limit設置大
> 默認是128M,改成1024M
> vim /servers/php/lib/php.ini
~~~
memory_limit = 1024M
~~~
### 寶塔安裝
> 直接在寶塔里找到對應的php版本,進行可視化安裝swoole,并且關閉 Short Name


### 源碼安裝
> [Swoole PHP 擴展 >= 4.5](https://github.com/swoole/swoole-src/releases),并關閉 Short Name
> [參考swoole官方安裝文檔](https://wiki.swoole.com/#/environment)
~~~
cd swoole-src
phpize
./configure --with-php-config=/servers/php/bin/php-config
make && make install
~~~
> php.ini中添加擴展 & 關閉 Short Name
> vim /servers/php/lib/php.ini
~~~
extension = "swoole.so"
swoole.use_shortname = off
~~~
## 確保以下安裝環境
> 參考文檔:https://hyperf.wiki/2.0/#/zh-cn/quick-start/install
~~~
PHP >= 7.2
Swoole PHP 擴展 >= 4.5,并關閉了 Short Name
OpenSSL PHP 擴展
JSON PHP 擴展
PDO PHP 擴展 (如需要使用到 MySQL 客戶端)
Redis PHP 擴展 (如需要使用到 Redis 客戶端)
Protobuf PHP 擴展 (如需要使用到 gRPC 服務端或客戶端)
~~~
## supervisor進程管理器
### supervisor安裝
~~~
# 安裝 epel 源,如果此前安裝過,此步驟跳過
yum install -y epel-release
yum install -y supervisor
systemctl enable supervisord # 開機自啟動
systemctl start supervisord # 啟動supervisord服務
# systemctl status supervisord # 查看supervisord服務狀態
~~~
### 配置hyperf進程管理
> 在文件結尾處追加以下內容后保存文件
> vim /etc/supervisord.conf
~~~
# 新建一個應用并設置一個名稱,這里設置為 hyperf
[program:hyperf]
# 設置命令在指定的目錄內執行
directory=/var/www/hyperf/
# 這里為您要管理的項目的啟動命令
command=php ./bin/hyperf.php start
# 以哪個用戶來運行該進程
user=root
# supervisor 啟動時自動該應用
autostart=true
# 進程退出后自動重啟進程
autorestart=true
# 進程持續運行多久才認為是啟動成功
startsecs=1
# 重試次數
startretries=3
# stderr 日志輸出位置
stderr_logfile=/var/www/hyperf/runtime/stderr.log
# stdout 日志輸出位置
stdout_logfile=/var/www/hyperf/runtime/stdout.log
~~~
> 重啟supervisord,使其生效
~~~
systemctl restart supervisord
~~~
### supervisorctl 管理命令
~~~
# 啟動 hyperf 應用
supervisorctl start hyperf
# 重啟 hyperf 應用
supervisorctl restart hyperf
# 停止 hyperf 應用
supervisorctl stop hyperf
# 查看所有被管理項目運行狀態
supervisorctl status
# 重新加載配置文件
supervisorctl update
# 重新啟動所有程序
supervisorctl reload
~~~