原文地址: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++

最新文章

  1. 2-ser2003系统封装实验报告
  2. Open Live Writer 安装
  3. 单例模式(Java)
  4. BitCoin - BlockChain
  5. 使用 Eclipse 调试 Java 程序的技巧
  6. Java 正则表达式[转载]
  7. unity3d 基于物理渲染的问题解决
  8. MVC部署IIS设置
  9. How can I retrieve the remote git address of a repo?
  10. mac 下基于firebreath 开发多浏览器支持的浏览器插件
  11. 在应用程序中实现对NandFlash的操作
  12. ajax详解,以及异步JSOP的实现
  13. Android-webView的loadUrl
  14. (转载)关于ArrayList的5道面试题
  15. PL/SQL 访问网页(get or post方式)
  16. 我眼中的微信小程序
  17. 【shell脚本练习】批量添加用户和设置密码
  18. luogu P1613 跑路
  19. Python装饰器举例分析
  20. ASP.NET 使用alert弹出对话框后,CSS样式失效,字体变大的解决方法

热门文章

  1. .netcore发布时指定服务器的系统类型
  2. Java学习 从0.1开始(一)
  3. XJCO1711 Procedural Programming
  4. [CodeForces 663E] - Binary Table(FWT)
  5. 使用for循环签到嵌套制作直角三角形
  6. mybatis-generator 插件
  7. THUPC&CTS 2019 游记
  8. linux命令之------Linux文件系统具体目录
  9. CMD下文件操作
  10. 网络开发Socket和ServerSocket