言午月月鸟
编程,带娃以及思考人生
首页
编程
带娃
思考人生
编程画图秀
hyperf 学习小记 - 2 环境搭建
dingusxp
2798
## 摘要 | 条目 | 说明 | |--|--| |内容说明|1) 安装 php7.3 + swoole + redis 扩展;
2) 创建 hyperf 项目,运行 hello world| |上手难度|较低| |花费时间|学习5分钟,实践半小时(主要是PHP源码编译耗时较长)| ## 安装 ### 系统说明 系统 centos 7.5 顺便做个腾讯云广告:新人购买 1核2G带宽1M 首年仅 99、2核4G带宽5M 首年仅 579,可以考虑。[点击链接购买](https://cloud.tencent.com/act/cvmgift?hash=c1V9SDleEGinDFdR) ### 编译安装 PHP7 ``` # 下载 php 7.3.19;其它版本请访问 https://php.net/downloads 按需下载 # 如果速度太慢,可以选择国内镜像。如:https://gitee.com/mirrors/php/tags wget https://www.php.net/distributions/php-7.3.19.tar.gz # 编译安装 tar zxvf php-7.3.19.tar.gz cd php-7.3.19 # 可根据实际需要调整安装选项 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-gd --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-gettext --disable-fileinfo --enable-intl --without-pear make make install # 配置文件 cp php.ini-production /usr/local/php/etc/php.ini # 开发环境,也可以拷贝 php.ini-development ``` #### 安装问题 问题1:make 报错,提示缺少 iconv 相关引用,如: ``` ext/gd/libgd/.libs/gdkanji.o: In function `do_convert': /root/pkg/php-7.3.19/ext/gd/libgd/gdkanji.c:349: undefined reference to `libiconv_open' /root/pkg/php-7.3.19/ext/gd/libgd/gdkanji.c:364: undefined reference to `libiconv' /root/pkg/php-7.3.19/ext/gd/libgd/gdkanji.c:380: undefined reference to `libiconv_close ``` 解决: ``` vim Makefile # 找到 # EXTRA_LIBS = -lcrypt -lresolv -lcrypt -lrt -lstdc++ -lpng -lz -ljpeg -lz -lrt -lm -ldl -lnsl -lxml2 -lz -lm -ldl -lssl -lcrypto -lcurl -lxml2 -lz -lm -ldl -lfreetype -lz -lbz2 -licuio -licui18n -licuuc -licudata -lxml2 -lz -lm -ldl -lcrypt -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lssl -lcrypto -lcrypt # 在结尾添加 -liconv ,如: # EXTRA_LIBS = -lcrypt -lresolv -lcrypt -lrt -lstdc++ -lpng -lz -ljpeg -lz -lrt -lm -ldl -lnsl -lxml2 -lz -lm -ldl -lssl -lcrypto -lcurl -lxml2 -lz -lm -ldl -lfreetype -lz -lbz2 -licuio -licui18n -licuuc -licudata -lxml2 -lz -lm -ldl -lcrypt -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lxml2 -lz -lm -ldl -lssl -lcrypto -lcrypt -liconv ``` ### 编译安装 swoole ``` # 下载 swoole 4.5.2;其它版本请访问 https://gitee.com/swoole/swoole/releases 按需下载 wget https://gitee.com/swoole/swoole/repository/archive/v4.5.2?format=tar.gz -O swoole-4.5.2.tar.gz tar zxvf swoole-4.5.2.tar.gz cd swoole /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config make make install # 开启扩展 vim /usr/local/php/etc/php.ini # 搜索 "extension=",在该段落结尾追加: extension=swoole # 查看扩展信息 php --ri swoole ``` ### 其它 PHP 扩展(可选) #### redis 扩展 ``` # 下载 redis-5.2.2 驱动;其它版本请访问 https://pecl.php.net/package/redis 按需下载 wget https://pecl.php.net/get/redis-5.2.2.tgz tar zxvf redis-5.2.2.tgz cd redis-5.2.2 /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config make make install # 开启扩展 vim /usr/local/php/etc/php.ini # 搜索 "extension=",在该段落结尾追加: extension=redis # 查看扩展信息 php --ri redis ``` ### 安装 composer 请参考 [composer 常用命令](https://dingusxp.com/app/blog/view?key=z0ke5j8b87e83fj2y6ja) 注意:老版本 composer 在 php 7.3 下有兼容问题(如 经典的 '"continue" targeting switch is equivalent to "break"'),请务必升级到新版本 composer。 ## Hello hyperf ``` # 创建项目 composer create-project hyperf/hyperf-skeleton hyperf-demo # 有交互提示,按需配置自己想要的组件;不清楚的先选 n 忽略,后面还可以手动添加。 # 调整必要配置 (可选) # 修改server,如服务监听端口号 vim config/autoload/server.php # 关闭 swoole short_tag vim /usr/local/php/etc/php.ini # 在文件结尾追加 [swoole] swoole.use_shortname = off # 启动 php bin/hyperf.php start # 压一压 (如果上面改了端口,注意修改压测 URL) #(如果没有 ab 可以用 yum 快速安装: yum install httpd-tools) ab -c 100 -n 10000 http://127.0.0.1:9501/ ``` ## 小彩蛋 如果 你实在懒得搞环境,又是 腾讯云 centos 7.5 环境,那你也可以试试我写好的一键安装脚本: ``` # 下载脚本代码并执行 # 运行后会在当前目录下生成一个 hyperf-box 的目录, # 里面包含 php + swoole 扩展 + redis 扩展 + composer curl -sS https://dingusxp.com/app/tool/hyperfboxinstaller | sh ```
粤ICP备19051469号-1
Copyright©dingusxp.com - All Rights Reserved
Template by
OS Templates