通过 PECL 安装 PHP 扩展(以 CentOS7 中安装 swoole 为例)
原文地址:https://blog.csdn.net/kikajack/article/details/82495190
常用工具
PECL 和 phpize
官网文档
PHP 有大量的扩展可以使用,比如用于连接数据库的扩展 mysqli,图形库 gd2 等。扩展有两种安装方法:
通过 pear install xxx 安装,需要提前在机器上安装 pear,CentOS 下可以通过 yum install php72w-pear 可以安装 PHP7.2 对应的版本
用 phpize 源码编译安装,CentOS 下可以通过 yum install php72w-devel 可以安装 PHP7.2 对应的版本
注意安装的扩展需要和 PHP 的版本匹配。例如我安装的是 PHP7.2,则需要安装 PHP7.2 对应的 php-devel 和 php-pear:
[root@VM_139_74_centos ~]# yum list php72w*
Loaded plugins: fastestmirror, langpacks
Repository epel is listed more than once in the configuration
Loading mirror speeds from cached hostfile
* webtatic: us-east.repo.webtatic.com
Installed Packages
php72w-cli.x86_64 7.2.8-1.w7 @webtatic
php72w-common.x86_64 7.2.8-1.w7 @webtatic
php72w-devel.x86_64 7.2.8-1.w7 @webtatic
php72w-fpm.x86_64 7.2.8-1.w7 @webtatic
php72w-pear.noarch 1:1.10.4-1.w7 @webtatic
php72w-process.x86_64 7.2.8-1.w7 @webtatic
php72w-xml.x86_64 7.2.8-1.w7 @webtatic
Available Packages
php72w-bcmath.x86_64 7.2.8-1.w7 webtatic
php72w-dba.x86_64 7.2.8-1.w7 webtatic
php72w-embedded.x86_64 7.2.8-1.w7 webtatic
php72w-enchant.x86_64 7.2.8-1.w7 webtatic
php72w-gd.x86_64 7.2.8-1.w7 webtatic
php72w-imap.x86_64 7.2.8-1.w7 webtatic
php72w-interbase.x86_64 7.2.8-1.w7 webtatic
php72w-intl.x86_64 7.2.8-1.w7 webtatic
php72w-ldap.x86_64 7.2.8-1.w7 webtatic
php72w-mbstring.x86_64 7.2.8-1.w7 webtatic
php72w-mysql.x86_64 7.2.8-1.w7 webtatic
php72w-mysqlnd.x86_64 7.2.8-1.w7 webtatic
php72w-odbc.x86_64 7.2.8-1.w7 webtatic
php72w-opcache.x86_64 7.2.8-1.w7 webtatic
php72w-pdo.x86_64 7.2.8-1.w7 webtatic
php72w-pdo_dblib.x86_64 7.2.8-1.w7 webtatic
php72w-pecl-apcu.x86_64 5.1.9-1.w7 webtatic
php72w-pecl-apcu-devel.x86_64 5.1.9-1.w7 webtatic
php72w-pecl-geoip.x86_64 1.1.1-1.2.w7 webtatic
php72w-pecl-igbinary.x86_64 2.0.5-1.w7 webtatic
php72w-pecl-igbinary-devel.x86_64 2.0.5-1.w7 webtatic
php72w-pecl-imagick.x86_64 3.4.3-1.2.w7 webtatic
php72w-pecl-imagick-devel.x86_64 3.4.3-1.2.w7 webtatic
php72w-pecl-libsodium.x86_64 1.0.6-1.2.w7 webtatic
php72w-pecl-memcached.x86_64 3.0.4-1.w7 webtatic
php72w-pecl-mongodb.x86_64 1.4.1-1.w7 webtatic
php72w-pecl-redis.x86_64 3.1.6-1.w7 webtatic
php72w-pecl-xdebug.x86_64 2.6.0-1.w7 webtatic
php72w-pgsql.x86_64 7.2.8-1.w7 webtatic
php72w-phpdbg.x86_64 7.2.8-1.w7 webtatic
php72w-pspell.x86_64 7.2.8-1.w7 webtatic
php72w-recode.x86_64 7.2.8-1.w7 webtatic
php72w-snmp.x86_64 7.2.8-1.w7 webtatic
php72w-soap.x86_64 7.2.8-1.w7 webtatic
php72w-sodium.x86_64 7.2.8-1.w7 webtatic
php72w-tidy.x86_64 7.2.8-1.w7 webtatic
php72w-xmlrpc.x86_64 7.2.8-1.w7 webtatic
pecl
官网文档
pecl install extname 命令自动下载源码、编译代码,并将编译后的 extname.so 安装到 extension_dir 中。然后编辑 php.ini 引入 extname.so 就可以加载了。
phpize
使用 pecl 需要提前将扩展库发布到 PECL 官方仓库中。而源码安装更灵活。
phpize 的通用流程:
$ cd extname
$ phpize
$ ./configure
$ make
# make install
php 命令
通过 php -m 可以查看 PHP 中安装的扩展。
php-config
官网文档
php-config 可以用于获取 PHP 的配置信息。可以通过 -h 选项来显示 php-config 脚本在命令行所能使用的选项。
这里需要用 php-config --extension-dir 来查看 PHP 的扩展目录位置:
[root@VM_139_74_centos ~]# php-config --extension-dir
/usr/lib64/php/modules
[root@VM_139_74_centos ~]# ll /usr/lib64/php/modules/
total 6500
-rwxr-xr-x 1 root root 24752 Jul 20 23:31 bz2.so
-rwxr-xr-x 1 root root 33872 Jul 20 23:31 calendar.so
-rwxr-xr-x 1 root root 15648 Jul 20 23:31 ctype.so
-rwxr-xr-x 1 root root 87072 Jul 20 23:31 curl.so
-rwxr-xr-x 1 root root 176720 Jul 20 23:31 dom.so
-rwxr-xr-x 1 root root 86136 Jul 20 23:31 exif.so
-rwxr-xr-x 1 root root 5053064 Jul 20 23:31 fileinfo.so
-rwxr-xr-x 1 root root 62056 Jul 20 23:31 ftp.so
-rwxr-xr-x 1 root root 15744 Jul 20 23:31 gettext.so
-rwxr-xr-x 1 root root 70400 Jul 20 23:31 gmp.so
-rwxr-xr-x 1 root root 41104 Jul 20 23:31 iconv.so
-rwxr-xr-x 1 root root 44888 Jul 20 23:31 json.so
-rwxr-xr-x 1 root root 278160 Jul 20 23:31 phar.so
-rwxr-xr-x 1 root root 37120 Jul 20 23:31 posix.so
-rwxr-xr-x 1 root root 15728 Jul 20 23:31 shmop.so
-rwxr-xr-x 1 root root 58456 Jul 20 23:31 simplexml.so
-rwxr-xr-x 1 root root 91688 Jul 20 23:31 sockets.so
-rwxr-xr-x 1 root root 15880 Jul 20 23:31 sysvmsg.so
-rwxr-xr-x 1 root root 11568 Jul 20 23:31 sysvsem.so
-rwxr-xr-x 1 root root 15800 Jul 20 23:31 sysvshm.so
-rwxr-xr-x 1 root root 19936 Jul 20 23:31 tokenizer.so
-rwxr-xr-x 1 root root 32744 Jul 20 23:31 wddx.so
-rwxr-xr-x 1 root root 32960 Jul 20 23:31 xmlreader.so
-rwxr-xr-x 1 root root 54216 Jul 20 23:31 xml.so
-rwxr-xr-x 1 root root 49232 Jul 20 23:31 xmlwriter.so
-rwxr-xr-x 1 root root 32984 Jul 20 23:31 xsl.so
-rwxr-xr-x 1 root root 138776 Jul 20 23:31 zip.so
安装 PHP 环境
安装epel-release
epel 是 Extra Packages for Enterprise Linux (EPEL),仓库资源丰富且更新及时。参考 这里。
yum -y install epel-release
获取 PHP7 的yum源
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
查看可用的 PHP7 版本列表
yum list php7*
安装 PHP7.2
用于执行 PHP 脚本。
yum install php72w
安装 PHP-FPM
用于在 PHP 和 Nginx 之间通信。
yum install php72w-fpm
安装 PEAR
安装后,可以使用 pecl 命令来安装软件。可以通过 PHP 官方提供的 pecl 命令从 PHP 的官方扩展库安装扩展。
yum install php72w-pear
安装 phpize
安装后,可以使用 phpize 命令从源码编译 PHP 扩展,得到 *.so 文件。
yum install php72w-devel
安装 swoole
pecl install swoole
修改 php.ini 配置文件
添加这句话:
extension=swoole.so
常见问题
建议 Linux 系统安装完成后,立刻安装各种编译工具,可以减少很多麻烦。
configure: error: no acceptable C compiler found in $PATH
原因:系统中没有安装 C 编译器。
解决办法:安装 GCC 软件套件。
yum install gcc
configure: error: C++ preprocessor “/lib/cpp” fails sanity check
原因:系统中没有安装 C++ 预处理器。
解决办法:安装 C++ 软件套件。
yum install glibc-headers gcc-c++
通过 PECL 安装 PHP 扩展(以 CentOS7 中安装 swoole 为例)的更多相关文章
- 在centos7中安装Robot Framework
安装前景介绍: 最初,我们是在Windows环境下搭建Robot Framework来对我们的服务进行接口测试的(想知道如何在Windows下安装Robot Framework,可以参考我同事的博客h ...
- centos7中安装、配置、验证、卸载redis
本文介绍在centos7中安装.配置.验证.卸载redis等操作,以及在使用redis中的一些注意事项. 一 安装redis 1 创建redis的安装目录 利用以下命令,切换到/usr/local路径 ...
- centos7中安装mongodb3.6
centos7中安装mongodb3.6 首先更新系统 yum -y update 1.安装Mongodb 编辑Mongodb安装源 vim /etc/yum.repos.d/mongodb-org- ...
- 在Centos7中安装elasticsearch5.5
在Centos7中安装elasticsearch5.5 第一步:必须要有jre支持 elasticsearch是用Java实现的,跑elasticsearch必须要有jre支持,所以必须先安装jre ...
- centos7中安装mysql
centos7中安装mysql网上已经很多资源了,我就不在赘述了.我这里只是记录下我安装的时候出现的一些问题. 原文:https://www.cnblogs.com/bigbrotherer/p/72 ...
- CentOS7中安装MySQL(简便)及 网站的搭建
一.首先,我们需要配置CentOS7中网络环境的搭建,物理机IP为192.168.100.39,虚拟机IP为192.168.100.139,网络模式设置为桥接模式 ,再进入系统挂载光盘.输入命令 ...
- centos7中安装、配置jdk(转载)
参考命令:http://www.jb51.net/os/RedHat/73016.html来进行安装 安装说明 系统环境:centos7安装方式:rpm安装软件:jdk-8u25-linux-x64. ...
- CentOS7中安装redis5.0
1. 环境介绍 CentOS7 (未安装Development Tools) 2. 下载Redis5.0-rc3 wget -O redis-5.0-rc3.tar.gz https://github ...
- CentOS7 中安装 MySQL
0. 说明 参考 centos7.2安装MySQL CentOS 7 下 Yum 安装 MySQL 5.7 两种方式安装 MySQL 安装 MySQL(yum) & 安装 MySQL(yum) ...
随机推荐
- expect工具实现脚本的自动交互
1 安装expect工具 expect是建立在tcl基础上的一个自动化交互套件, 在一些需要交互输入指令的场景下, 可通过脚本设置自动进行交互通信. 其交互流程是: spawn启动指定进程 -> ...
- Appache Flume 中文介绍(转)
Flume 是什么 Apache Flume是一个高可靠.高可用的分布式的海量日志收集.聚合.传输系统.它可以从不同的日志源采集数据并集中存储. Flume也算是Hadoop生态系统的一 ...
- docker拷贝宿主与容器中的文件
从容器里面拷文件到宿主机 语法:docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径 例子:容器名为ubuntu,要从容器里面拷贝的文件路为:/usr/local/tom ...
- Oracle 分区默认segment大小变化(64k—>8M)
原文链接:http://www.cnblogs.com/wcwen1990/p/6656545.html _partition_large_extents和_index_partition_large ...
- HTML5 文件读取
一.定义 input的file类型会渲染为一个按钮和一段文字.点击按钮可打开文件选择窗口,文字表示对文件的描述(大部分情况下为文件名):file类型的input会有files属性,保存着文件的相关信息 ...
- 【后缀数组】【LuoguP2852】 [USACO06DEC]牛奶模式Milk Patterns
题目链接 题目描述 农夫John发现他的奶牛产奶的质量一直在变动.经过细致的调查,他发现:虽然他不能预见明天产奶的质量,但连续的若干天的质量有很多重叠.我们称之为一个"模式". J ...
- linux命令之------Chmod命令
Chmod命令 1)作用:linux和unix的文件调用权限分为三级:文件拥有者/群组/其他.利用chmod可以控制文件如何被他人所调用.(主要就是修改文件夹,文件的权限) 2)U表示该文件的拥有者, ...
- 一个禁用mac内置键盘的方法
一个禁用mac内置键盘的方法 强大的 karabiner, 非常好用. 可以直接在有外接键盘连接的情况下, 禁用掉内置键盘 另外一个方法是启用mac的 鼠标键, 感觉用处不是很大, 修饰健并没有被禁用 ...
- Automatic Annotation of Airborne Images by Label Propagation Based on a Bayesian-CRF Model
贝叶斯+全连接条件场,无人机和航片数据,通过标注航片数据自动生成无人机标注数据,具体不懂
- 第12组 Beta冲刺(2/5)
Header 队名:To Be Done 组长博客 作业博客 团队项目进行情况 燃尽图(组内共享) 由于这两天在修严重Bug,故项目没有新的进展,燃尽图没有变化 展示Git当日代码/文档签入记录(组内 ...