安装Hyperf的服务器要求
- PHP >= 7.3
- Swoole PHP 扩展 >= 4.5,并关闭了
Short Name
- OpenSSL PHP 扩展
- JSON PHP 扩展
- PDO PHP 扩展 (如需要使用到 MySQL 客户端)
- Redis PHP 扩展 (如需要使用到 Redis 客户端)
- Protobuf PHP 扩展 (如需要使用到 gRPC 服务端或客户端)
注:Hyperf安装时随然提示php版本大于7.3 但有的包(hyperf/filesystem)必须要7.4,所以安装时建议php74
一、一键安装lnmp:安装 - LNMP一键安装包
LNMP脚本就会自动安装编译Nginx、MySQL、PHP、phpMyAdmin等软件及相关的组件。
安装时间可能会几十分钟到几个小时不等,主要是机器的配置网速等原因会造成影响。
二、安装redis:linux 源码安装redis6
三、安装php redis扩展:https://pecl.php.net/package/redis
wget https://pecl.php.net/get/redis-5.3.3.tgz
tar -zxvf redis-5.3.3
cd redis-5.3.3
phpize # 用phpize生成configure配置文件
find / -name php-config
./configure --prefix=/usr/local/redis --with-php-config=/usr/local/php/bin/php-config
make && make install
添加php.ini中 extension=redis.so
四、安装swoole 及composer
easyswoole(1)_easyswoole coroutine => enabled-CSDN博客
五、安装hyperf
cd /data/project
composer create-project hyperf/hyperf-skeleton
composer 安装 hyperf 时遇到问题:
这是proc_open扩展未打开的缘故,查找php.ini文件位置,打开php.ini
打开后,搜索 disable_functions 项,看是否禁用了proc_open函数。
disable_function就是不被允许的函数,我们把proc_open 从其中删除就行,保存文件后。在运行命令安装试试吧
此处disable_function 还需删除proc_get_status
删除hyperf-skeleton后重新执行composer create-project hyperf/hyperf-skeleton
若启动不了查看php.ini swoole 是否配置:swoole.use_shortname = off
启动项目
cd hyperf-skeleton
php bin/hyperf.php start
由于 Hyperf 是持久化的 CLI 框架,当您修改完您的代码后,通过 CTRL + C
终止当前启动的进程实例,并重新执行 php bin/hyperf.php start
启动命令即可。
测试运行
因之前安装php73导致部分包不能composer,需升级php至74
lmnp升级地址:LNMP 1.2/1.3或更高版本升级Nginx、MySQL/MariaDB、PHP教程 - LNMP一键安装包
升级PHP前,请确认你的网站程序是否支持升级到的PHP版本,防止升级到网站程序不兼容的PHP版本,具体可以去你使用的PHP程序的官网查询相关版本支持信息。v1.3及以后版本大部分情况下也可以进行降级操作。
执行:./upgrade.sh php 到http://www.php.net/downloads.php 获取版本号,输入版本号,如5.3.28 回车,再次回车确认即可开始升级。
升级后需重新编译安装swoole/redis扩展
切换到swoole扩展包地址:
cd swoole-src-4.4.23/
make clean
phpize
./configure --with-php-config=/usr/bin/php-config --enable-openssl
sudo make && make install
切换到redis扩展包地址:
cd redis-5.3.3
make clean
phpize # 用phpize生成configure配置文件
find / -name php-config
./configure --prefix=/usr/local/redis --with-php-config=/usr/local/php/bin/php-config
make && make install
需要进入php.ini,在最后面增加上:
extension=swoole.so
extension=redis.so
swoole.use_shortname = 'Off'
删除 disable_function 下不被允许的proc_open,proc_get_status 函数
重启php-fpm