hyperf php,php7.2.30 Hyperf之路

该博客详细介绍了如何在Linux环境下手动安装PHP 7.2,以及安装和配置Hyperf所需的相关扩展,包括Swoole、Redis和Protobuf。步骤涵盖从下载源码、编译安装到修改配置文件和启动服务的全过程,旨在提供一个完整的安装指南。
摘要由CSDN通过智能技术生成

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

$redis=new Redis();

$redis->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即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值