首页 web服务器 正文
667

PHP7安装扩展的三种方式

  • yiqingpeng
  • 2020-04-19
  • 0
  •  
PHP7安装完之后,若想添加扩展,有三种方式:pecl安装和phpize安装和yum安装。

第一种: pecl安装。 
在php的安装目录下,一般都附带安装了pecl程序,如果php安装目录为/usr/local/php, 那么pecl就在/usr/local/php/bin/下。
比如安装redis扩展:
cd /usr/local/php/bin/
运行pecl search redis查看有没有此扩展
如果出现错误:"Connection to `ssl://pecl.php.net:443' failed:"
极有可能是证书的问题,
运行: php -r "print_r(openssl_get_cert_locations());" 得到结果
Array
(
    [default_cert_file] => /etc/pki/tls/cert.pem
    [default_cert_file_env] => SSL_CERT_FILE
    [default_cert_dir] => /etc/pki/tls/certs
    [default_cert_dir_env] => SSL_CERT_DIR
    [default_private_dir] => /etc/pki/tls/private
    [default_default_cert_area] => /etc/pki/tls
    [ini_cafile] =>
    [ini_capath] =>
)

查看证书路径/etc/pki/tls/cert.pem是否存在,存在的话依然报错就可能是证书过期。

下载最新证书替换掉此证书:wget http://curl.haxx.se/ca/cacert.pem --no-check-certificate

此错误解决了,如果没问题就可以使用 pecl install redis进行扩展的安装了。

如果又出现这种错误"File https://pecl.php.net:443/rest/p/packages.xml not valid", 通过在浏览器直接访问https://pecl.php.net是无法访问的,说明https站点可能被greatwall了。但是http://pecl.php.net一般来说是可以访问的。
通过http://pecl.php.net搜索redis扩展,得到下载地址:http://pecl.php.net/get/redis-5.2.1.tgz

使用pecl直接安装:pecl  install  http://pecl.php.net/get/redis-5.2.1.tgz

如果出现错误"Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. ....", 请先安装autoconf: yum install autoconf

安装好之后,在php.ini中加上extension=redis.so即可。

以上方法都无法安装的话,只能使用phpize安装了。


第二种,phpize基于源码安装。先下载扩展源码包,比如:wget http://pecl.php.net/get/redis-5.2.1.tgz
首先解压源码包:tar -xzf redis-5.2.1.tgz
进入源码目录: cd redis-5.2.1
初始化环境: /usr/local/php/bin/phpize
配置(如果系统安装了多版本php,请注意使用正确的php-config程序): ./configure --with-php-config=/usr/local/php/bin/php-config
编译/安装: make && make install
最后在php.ini中加入:extension=redis
重启php-fpm即可。

第三种,yum安装,先用yum search搜索对应版本的扩展包。

比如:yum search php74-php-gd

找到包:php74-php-gd.x86_64
安装yum install php74-php-gd.x86_64
安装完之后,需要找到安装好的扩展的路径,find / -name gd.so
得到路径:/opt/remi/php74/root/usr/lib64/php/modules/gd.so
打开php.ini文件,加上extension=/opt/remi/php74/root/usr/lib64/php/modules/gd.so

完工。

正在加载评论...