[TOC]
## 将php.ini的memory_limit设置大
> 默认是128M,改成1024M
> vim /servers/php/lib/php.ini
~~~
memory_limit = 1024M
~~~
### 宝塔安装
> 直接在宝塔里找到对应的php版本,进行可视化安装swoole,并且关闭 Short Name
![](https://img.kancloud.cn/6c/39/6c3954f692f79be31e8ddee8c10d3626_663x280.png)
![](https://img.kancloud.cn/78/8f/788fef598fb0507428859a6707a0b6d4_653x455.png)
### 源码安装
> [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
~~~