zoukankan      html  css  js  c++  java
  • 通过 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源

    1 rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

    查看可用的 PHP7 版本列表

    1 yum list php7*

    安装 PHP7.2

    用于执行 PHP 脚本。

    1 yum install php72w

    安装 PHP-FPM

    用于在 PHP 和 Nginx 之间通信。

    yum install php72w-fpm

    安装 PEAR

    安装后,可以使用 pecl 命令来安装软件。可以通过 PHP 官方提供的 pecl 命令从 PHP 的官方扩展库安装扩展。

    1 yum install php72w-pear

    安装 phpize

    安装后,可以使用 phpize 命令从源码编译 PHP 扩展,得到 *.so 文件。

    1 yum install php72w-devel

    安装 swoole

    1 pecl install swoole

    修改 php.ini 配置文件

    添加这句话:

    1 extension=swoole.so

    常见问题

    建议 Linux 系统安装完成后,立刻安装各种编译工具,可以减少很多麻烦。

    configure: error: no acceptable C compiler found in $PATH

    原因:系统中没有安装 C 编译器。 
    解决办法:安装 GCC 软件套件。

    1 yum install gcc

    configure: error: C++ preprocessor “/lib/cpp” fails sanity check

    原因:系统中没有安装 C++ 预处理器。 
    解决办法:安装 C++ 软件套件。

    1 yum install glibc-headers gcc-c++
  • 相关阅读:
    POJ 2240 Arbitrage spfa 判正环
    POJ 3259 Wormholes spfa 判负环
    POJ1680 Currency Exchange SPFA判正环
    HDU5649 DZY Loves Sorting 线段树
    HDU 5648 DZY Loves Math 暴力打表
    HDU5647 DZY Loves Connecting 树形DP
    CDOJ 1071 秋实大哥下棋 线段树
    HDU5046 Airport dancing links 重复覆盖+二分
    HDU 3335 Divisibility dancing links 重复覆盖
    FZU1686 神龙的难题 dancing links 重复覆盖
  • 原文地址:https://www.cnblogs.com/phpk/p/10930471.html
Copyright © 2011-2022 走看看