hyperf所需安装条件
- PHP >= 7.2
- Swoole PHP 扩展 >= 4.4,并关闭了
Short Name
- OpenSSL PHP 扩展
- JSON PHP 扩展
- PDO PHP 扩展 (如需要使用到 MySQL 客户端)
- Redis PHP 扩展 (如需要使用到 Redis 客户端)
- Protobuf PHP 扩展 (如需要使用到 gRPC 服务端或客户端)
安装php7.2
wget https://www.php.net/distributions/php-7.2.30.tar.gz
安装php的依赖
yum install -y gcc gcc-c++ make zlib zlib-devel pcre pcre-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers libxslt libxslt-devel
解压php7.2
编译安装
./configure --prefix=/usr/local/src/php-7.2.30 \
--with-config-file-path=/usr/local/src/php-7.2.30/etc \
--with-curl \
--with-mhash \
--with-gd \
--with-gettext \
--with-iconv-dir \
--with-kerberos \
--with-libdir=lib64 \
--with-libxml-dir \
--with-openssl \
--with-pcre-regex \
--with-pdo-sqlite \
--with-pear \
--with-xmlrpc \
--with-xsl \
--with-zlib \
--enable-fpm \
--enable-bcmath \
--enable-libxml \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-opcache \
--enable-pcntl \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-xml \
--enable-zip \
--enable-static \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--disable-debug \
--disable-fileinfo
编译安装
make && make install
修改环境变量
vi /etc/profile
打开文件后
在文件最末尾输入
PATH=$PATH:你的编译目录
export PATH
例如:
PATH=$PATH:/usr/local/php-7.2.19/bin
export PATH
然后保存并推出
执行
此时的命令
PATH=$PATH:/usr/local/src/php-7.2.30/bin
export PATH
source /etc/profile 使配置生效
2 处理配置文件以及启动文件
扩展问价目录
/usr/local/src/php-7.2.30/lib/php/extensions/no-debug-non-zts-20170718/
复制php.ini的配置文件
cp /usr/local/src/php-7.2.30/php.ini-production /usr/local/src/php-7.2.30/etc/php.ini
查看php.ini
php --ini
复制php-fpm.conf
cd /usr/local/src/php-7.2.30/etc
cp php-fpm.conf.default php-fpm.conf
复制www.conf
cd /usr/local/src/php-7.2.30/etc/php-fpm.d
cp www.conf.default www.conf
对配置文件的更改
vim /usr/local/src/php-7.2.30/etc/php-fpm.conf
去掉 pid = run/php-fpm.pid 前面的分号
vim /usr/local/src/php-7.2.30/etc/php-fpm.d/www.conf
修改user和group的用户为当前用户(也可以不改,默认会添加nobody这个用户和用户组)
执行命令 解压目录下的fpm启动文件复制到指定目录
cp /usr/local/src/php-7.2.30/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
5.修改执行文件权限
chmod +x /etc/init.d/php-fpm
6.启动php-fpm
cd /etc/init.d
./php-fpm start
编写php启动脚本
pid文件
/usr/local/src/php-7.2.30/var/run/php-fpm.pid
php-fpm配置文件
/usr/local/src/php-7.2.30/etc/php-fpm.conf
执行文件
/usr/local/src/php-7.2.30/sbin/php-fpm
创建php-fpm.service文件
vim /usr/lib/systemd/system/php-fpm.service
编写脚本
# systemd service file for php-fpm
[Unit]
Description=The PHP FastCGI Progress Manager
After=syslog.target.network.target
[Service]
Type=forking
PIDFile=/usr/local/src/php-7.2.30/var/run/php-fpm.pid
ExecStart=/usr/local/src/php-7.2.30/sbin/php-fpm
ExecStop=/bin/pkill -9 php-fpm
ExecReload=/bin/kill -USR2 $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
执行启动命令
systemctl enable php-fpm.service
启动php
systemctl start php-fpm.service
产看进程
root 36421 1 0 18:45 ? 00:00:00 php-fpm: master process (/usr/local/src/php-7.2.30/etc/php-fpm.conf)
nobody 36422 36421 0 18:45 ? 00:00:00 php-fpm: pool www
nobody 36423 36421 0 18:45 ? 00:00:00 php-fpm: pool www
root 36471 36177 0 18:52 pts/1 00:00:00 grep --color=auto php
停止php
systemctl start php-fpm.service
产看进程
root 36487 36177 0 18:53 pts/1 00:00:00 grep --color=auto php
重启php
systemctl restart php-fpm.service
编译安装swoole扩展
编译安装swoole前先安装关联的扩展
yum install m4
yum -y install autoconf
下载swoole文件并且解压
wget https://github.com/swoole/swoole-src/archive/master.zip
uzip master.zip
mv swoole-master swoole-src
编译安装swoole
cd swoole-src && \
phpize && \
./configure && \
make && sudo make install
检查
make test
启用swoole的扩展
编译安装到系统成功后,需要在php.ini
中加入一行extension=swoole.so
来启用 Swoole 扩展
php -m 查看是否有swoole
编译安装redis扩展
安装redis
wget http://download.redis.io/releases/redis-5.0.8.tar.gz
tar xzf redis-5.0.8.tar.gz
cd redis-5.0.8
make
修改redis配置文件
vim /usr/local/src/redis-5.0.8/redis.conf
将 daemonize no 改成 daemonize yes 这个选项的意思是 redis 在后台运行
将redis加入系统服务
# systemd service file for redis
#
[Unit]
Description=The Redis Progress Manager
After=syslog.target.network.target
[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/src/redis-5.0.8/src/redis-server /usr/local/src/redis-5.0.8/redis.conf
ExecStop=/bin/kill -s QUIT $MAINPID
ExecReload=/bin/kill -s HUP $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
安装phpredis扩展
下载phpredis
wget https://github.com/phpredis/phpredis/archive/develop.zip
unzip develop.zip
mv phpredis-develop phpredis
为phpredis生成.configure文件
/usr/local/src/php-7.2.30/bin/phpize
由此产生.configure文件
编译
./configure --with-php-config=/usr/local/src/php-7.2.30/bin/php-config
make&&make install
重启php
systemctl restart php-fpm.service
php -m
可以看到有redis
编写测试文件
cd /usr/local/var
vim php.php
connect('127.0.0.1', 6379);
$redis->set("name","小雪狼");
echo $redis->get("name");
编译安装Protobuf扩展
下载最新protobuf
wget https://github.com/allegro/php-protobuf/archive/master.zip
unzip master.zip
cd php-protobuf-master
为protobuf生成.configure文件
/usr/local/src/php-7.2.30/bin/phpize
由此产生.configure文件
编译
./configure --with-php-config=/usr/local/src/php-7.2.30/bin/php-config
make&&make install
安装php protobuf
wget https://github.com/allegro/php-protobuf/archive/master.zip
unzip master.zip
cd php-protobuf-master
yum install php-devel(安装依赖,没有则安装)
/usr/local/src/php-7.2.30/bin/phpize
./configure --with-php-config=/usr/local/src/php-7.2.30/bin/php-config
make && make install
//然后在php.ini里面加一下extension = "protobuf.so",再重启php与nginx即可。