- 安装dnf包管理器
- DNF 命令(Dandified yum) 是基于 RedHat 的系统的传统YUM 包管理器的下一代版本。它是 Fedora 22、CentOS8 和 RHEL8 的默认包管理器。它旨在替代 YUM。它使用 RPM 和libsolv(由 OpenSUSE 维护)进行包管理。
- DNF旨在改善YUM的瓶颈,即性能、内存使用、依赖解决、速度和许多其他因素。DNF 使用 RPM、libsolv 和 hawkey 库进行包管理。虽然它没有在 CentOS 和 RHEL 7 中单独安装,但您可以 yum、dnf 并与 yum 一起使用它。
- 常用的dnf命令:
dnf安装: # yum install epel-release OR # yum install epel-release -y # yum install dnf 常用命令(和yum很类似): # dnf --version 查看版本 # dnf repolist 查看dnf的库 # dnf list 列出dnf所有可用和已安装的包 # dnf list installed 列出dnf所有已安装的包 # dnf list installed | grep bash 查询当前已安装的某个具体的包 # dnf list available 列出所有可用的包 # dnf search nano 搜索某个包 # dnf info nano dnf获取某个包的详细信息 # dnf install nano dnf 安装某个包 # dnf update systemd dnf更新某个包 # dnf update OR # dnf upgrade dnf更新 # dnf remove nano OR # dnf erase nano dnf移除某个包
- 安装swoole插件(编译安装)
- 部署hyperf 框架的php项目,安装swoole是必须的,在阿里云上安装swoole不像mac上那么简单,brew安装缺那个插件就安装那个插件然后安装就好,反正网上搜到的使用包管理工具安装的都没有成功,最后使用编译安装的方式成功安装6.0版本。
# 下载Swoole源码 解压对应的安装包 进入解压后的安装包文件夹中 wget https://github.com/swoole/swoole-src/archive/v6.0.0.tar.gz tar xzf v6.0.0.tar.gz && cd swoole-src-6.0.0/ # 生成 configure 文件 注意路径需要换成自己服务器的php路径终端命令执行 /opt/remi/php84/root/bin/phpize # 配置编译选项 配置编译安装的条件及其指定配置路径(路径需要换成自己服务器中php的路径) ./configure --enable-openssl --enable-sockets --enable-mysqlnd --with-php-config=/opt/remi/php84/root/bin/php-config # 编译安装 make && sudo make install # 添加 40-swoole.ini 配置文件(这好像有问题,应该是将其写到php.ini文件中去) sudo echo "extension=swoole.so" > /etc/opt/remi/php84/php.d/40-swoole.ini php -m | grep swoole 验证是否安装成功 - 上传代码包: 通过先前介绍的fz将本地的项目代码上传到服务器的wwwroot/default目录下。
- 解决项目的访问权限
- 文件上传后通过http://ip:9051 就能够访问,但是会提示用户的访问权限问题,可以通过下面命令对其(整个文件夹)开放权限:
cd /home/wwwroot/default/hyperf-skeleton
chmod -R 777 runtime
- 解决官方demo的时区设置异常
- 通过php脚本中date_default_timezone_set('Asia/Shanghai'); 解决
- 通过php.ini中添加date.timezone = Asia/Shanghai 全局设置时区。
- 启动对应的服务通过链接http://ip:9051 访问即可
- 终端中通过命令cd到项目代码文件夹的目录下启动项目php服务
cd /home/wwwroot/default/hyperf-skeleton php bin/hyperf.php start - 通过上面的配置和修改后通过http://ip:9051 能够访问,hyperf的官方demo返回数据是get接口的hello数据,即:{"method":"GET","message":"Hello Hyperf."},看到这个说明部署成功了。
- 在workbench后台终端中通过curl 终端命令也可以测试访问,即curl http://127.0.0.1:9501 {"method":"GET","message":"Hello Hyperf."}。curl是在终端中快速测试接口的一组终端命令,可以测试get,post,json,header等接口,常见几个命令如下,具体可以参考 Linux curl命令最全详解:
curl URL //发送get请求 curl URL?a=1&b=nihao //带参数 curl -X POST -d 'a=1&b=nihao' URL //发送post请求 带参数 curl -H "Content-Type: application/json" -X POST -d '{"abc":123,"bcd":"nihao"}' URL curl -H "Content-Type: application/json" -X POST -d @test.json URL //json格式参数的请求 -
在部署完成测试的过程中出现了本地能够访问,远程访问出现403的问题,究其原因是hyperf的默认服务端口是9501,此端口号需要在服务器的安全组中的入口中配置放开,让其能够访问。,具体配置可以参考先前文章也可以如下配置:
9501端口配置
- 终端中通过命令cd到项目代码文件夹的目录下启动项目php服务
