PHP - php7扩展安装的完全攻略 swoole、yaf、grpc
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
概述
这篇是php7源码系统攻略的第三篇是对之前的知识和补充踩了很多坑鏖战了数天才完全通关下面带你安装常用的 redis 、yaf 、swoole 、
扩展以及trie_filter、xdiff
和grpc 、protobuf
。
php的扩展可分为3类原生自带、pecl官网、和老旧的疑难杂症包。
原生自带
比如sockets 、pdo-mysql 、mysqli
这种扩展属于原生自带再编译的时候非常方便如果你拿不定主意可以使用./configure --help | grep sockets
命令去寻求帮助需要主意的是opcache
已经集成在php7+的版本里了。
#--with-fpm-user=USER
#--with-fpm-group=GRP
./configure --prefix=/usr/local/php7 \
--with-php-config=/usr/local/php7/bin/php-config \
--enable-fpm \
--enable-debug \
--enable-zip \
--enable-sockets \
--with-pdo-mysql \
--with-mysqli \
--with-pear \
--with-curl \
--with-openssl && make && make install
生产环境要指定管理组和用户权限--prefix
指定的是php7的安装目录--with-php-config
这个参数指定的目录特别关键是后期安装扩展的灵魂。
pecl官网
去pecl官网下载指定版本的扩展使用命令wget https://pecl.php.net/get/yaf-3.0.7.tgz
太老旧的版本可能已经下线了最好去官网去查询一下。
下面我以swoole-4.2.11
为例子来演示一下第二类的扩展redis、MongoDB、yaf
都是同样的道理。
1.下载安装包解压
wget https://pecl.php.net/get/swoole-4.2.11.tgz && \
tar zxf swoole-4.2.11.tgz
这里需要主意一定要切换到解压的目录指定命令phpize
2.下载安装包解压
安装时--with-php-config
这个参数要指定给你安装php时的目录这个是不能错的不然编译的时候会找不到对应的目录。
./configure --with-php-config=/usr/local/php7/bin/php-config
3.编译、修改配置文件
编译
make && make install
修改配置文件
echo 'swoole=yaf.so' >> /usr/local/php7/lib/php.ini
检查是否安装成功如果没有报错其实就已经成功了。
php -m | grep swoole
php-fpm -m | grep swoole
trie_filter 和 xdiff
有一种扩展对系统有依赖安装时依赖于系统中的包稍微有些棘手坑居多再这个包上要超级小心翼翼的安装。
trie_filter
trie_filter
依赖于libdatrie
,所以要先安装好libdatrie才可以行动起来找了很多教程都不太系统安装过程如下 libdatrie-0.2.4 下载地址。
编译安装要记住--prefix
这个参数指定的安装目录下面安装trie_filter
需要用到。
./configure --prefix=/usr/local/libdatrie && \
make && make install
trie_filter
找了好几个地方后来在github上找到的十分不容易你可以点击下载 下载trie_filter
phpize && \
./configure --with-php-config=/usr/local/php7/bin/php-config \
--with-trie_filter=/usr/local/libdatrie && \
make && make install
安装成功的关键在于--with-trie_filter
这个参数路径要指定在上一个地方安装成功后别忘了添加配置文件查看是否成功。
xdiff
libxdiff-0.23 依赖包下载地址解压后直接安装操作命令如下。
tar zxf libxdiff-0.23.tar.gz && \
cd libxdiff-0.23 && \
./configure && make && make install
xdiff扩展和依赖下载安装操作命令如下。
wget https://pecl.php.net/get/xdiff-2.0.1.tgz && \
tar zxf xdiff-2.0.1.tgz && cd xdiff-2.0.1 && \
phpize && ./configure --with-php-config=${PHP_COMPILE_PATH} && \
make && make install && echo 'extension=xdiff.so' >> ${PHP_INI_PATH}
grpc 和 protobuf
我安装的grpc和protobuf版本如下遇到了一个gcc版本低不能编译的问题linux centos7 的gcc默认版本是4.8.5,安装时编译不了。
# | grpc-1.50.0
# | protobuf-3.21.9
升级gcc 7.3后成功编译了grpc和protobuf编译方法和上面的就相同了不在赘述了升级gcc的命令如下
# 安装grpc 需要升级gcc 7.3
yum -y install centos-release-scl
yum -y install devtoolset-7-gcc \
devtoolset-7-gcc-c++ devtoolset-7-binutils
scl enable devtoolset-7 bash
最后别忘了修改系统环境变量 和 查看安装情况
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile #修改环境变量
gcc -v
最后安装完成了。
[root@100b528a8aa7 src]# php -m | grep grpc
grpc
[root@100b528a8aa7 src]# php -m | grep swoole
swoole
[root@100b528a8aa7 src]# php -m | grep trie_filter
trie_filter
[root@100b528a8aa7 src]# php -m | grep xdiff
xdiff
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |