Hyperf从入门到精通(1)
简述
Hyperf从入门到精通第一讲,介绍Hyperf框架的特点,手把手教你如何搭建一个高性能的微服务并进行压测演示。
编译安装PHP
添加用户
useradd -r -s /sbin/nologin php-fpm
下载解压安装包
cd /root/Downloads/pkg
wget http://php.net/get/php-7.2.34.tar.gz/from/this/mirror --no-check-certificate
mv mirror php-7.2.34.tar.gz
tar zxvf php-7.2.34.tar.gz
cd php-7.2.34
安装依赖
yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel libxslt libicu-devel libxslt-devel
centos6 很多yum源(阿里云、网易、清华)不能更新使用的解决方法
1、使用腾讯云的yum源
https://mirrors.cloud.tencent.com/help/centos.html
2、备份系统旧配置文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
3、下载源配置 CentOS6
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos6_base.repo
4、把http替换https
sed -i 's#http#https#g' /etc/yum.repos.d/CentOS-Base.repo
5、清除缓存
yum clean all
yum makecache
编译安装
./configure \
--prefix=/usr/local/php-7.2.34 \
--with-mhash \
--with-openssl \
--with-config-file-path=/usr/local/php-7.2.34/etc \
--disable-short-tags \
--enable-fpm \
--with-fpm-user=php-fpm \
--with-fpm-group=php-fpm \
--enable-xml \
--with-libxml-dir \
--enable-bcmath \
--enable-calendar \
--enable-intl \
--enable-mbstring \
--enable-pcntl \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-zip \
--enable-mbregex \
--enable-mysqlnd \
--enable-mysqlnd-compression-support \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-gd \
--enable-ftp \
--with-curl \
--with-xsl \
--with-iconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--enable-sysvsem \
--enable-inline-optimization \
--with-xmlrpc \
--with-gettext
make -j 4 && make install
建立软链
ln -s /usr/local/php-7.2.34/ /usr/local/php
ln -s /usr/local/php/bin/php /usr/local/bin
ln -s /usr/local/php/sbin/php-fpm /usr/local/sbin
对php-fpm运行用户进行设置
cd /root/Downloads/pkg/php-7.2.34
cp ./php.ini-development ./php.ini-production /usr/local/php/etc
cp /usr/local/php/etc/php.ini-development /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
建立软链
ln -s /usr/local/php/etc/php.ini /usr/local/etc/
ln -s /usr/local/php/etc/php-fpm.conf /usr/local/etc/
ln -s /usr/local/php/etc/php-fpm.d/www.conf /usr/local/etc/
配置环境变量,加入全局命令
vim /etc/profile
PATH=$PATH:/usr/local/php/bin
export PATH
source /etc/profile
启动php-fpm 服务
/usr/local/sbin/php-fpm
查看是否启动
netstat -lnt | grep 9000
杀死php-fpm
killall php-fpm
或者
ps aux | grep php
kill -USR2 29261
安装swoole
查看是否安装swoole扩展
php --ri swoole
安装
wget https://github.com/swoole/swoole-src/archive/v4.5.7.tar.gz
cd swoole-src-4.5.7
phpize
./configure --prefix=/usr/local/swoole --enable-openssl --enable-http2 --with-openssl-dir=/usr/local/openssl
make -j 4
make install
修改php.ini
extension=swoole.so
swoole.use_shortname = 'Off'
安装composer
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/
安装redis
wget https://pecl.php.net/get/redis-4.0.2.tgz
tar -zxvf redis-4.0.2.tgz
./configure --prefix=/usr/local/redis --with-php-config=/usr/local/php/bin/php-config
make -j 4
make install
添加php.ini中 extension=redis.so
安装Hyperf
composer create-project hyperf/hyperf-skeleton hyperf-learn "2.0.0" -vvv
启动Hyperf
php bin/hyperf.php start
压力测试
ab -c 10 -n 1000 http://127.0.0.1:9501/