HCRM博客

如何在CentOS上安装和配置PHP扩展?

在CentOS操作系统中安装PHP扩展是一个常见的任务,尤其是在需要为PHP环境添加额外功能时,以下是关于如何在CentOS上安装PHP扩展的详细说明,包括包管理式安装、PECL安装以及源码编译安装三种方法。

一、包管理式安装(yum)

包管理式安装是最为便捷的方式之一,适用于快速部署和配置,这种方法会自动处理依赖关系并配置好php.ini文件。

如何在CentOS上安装和配置PHP扩展?-图1
(图片来源网络,侵权删除)

1、检查当前PHP版本

   php v

2、卸载旧版本的PHP(如果已安装):

   yum remove y php

3、安装必要的yum工具

   yum install y yumutils

4、更换yum源以支持PHP 8

   sudo yum install y https://dl.fedoraproject.org/pub/epel/epelreleaselatest7.noarch.rpm
   sudo yum install https://rpms.remirepo.net/enterprise/remirelease7.rpm

5、启用PHP 8流模块

   sudo yumconfigmanager disable 'remiphp*'
   sudo yumconfigmanager enable remiphp80

6、安装PHP 8及其扩展

如何在CentOS上安装和配置PHP扩展?-图2
(图片来源网络,侵权删除)
   sudo yum install y php phpcli phpfpm
   sudo yum install y php{extension_name}  # phpmbstring, phpjson, phpmysqlnd

7、重启Apache或Nginx服务器

   systemctl restart httpd  # For Apache
   systemctl restart nginx  # For Nginx

8、验证安装

新建一个index.php如下:

   <?php
   phpinfo();

然后通过浏览器访问该文件,查看是否包含所安装的扩展信息。

二、PECL安装

PECL(PHP Extension Community Library)是PHP官方提供的用于管理和安装扩展的工具,它支持从在线仓库下载并安装扩展。

1、安装PECL

如何在CentOS上安装和配置PHP扩展?-图3
(图片来源网络,侵权删除)
   yum install y php73pear  # 根据PHP版本调整命令中的73

2、使用PECL安装扩展

   pecl install {extension_name}  # pecl install mongodb

3、配置php.ini

找到php.ini文件的位置,通常可以通过以下命令查找:

   php ini

然后在php.ini文件中添加以下行:

   extension={extension_name}.so  # extension=mongodb.so

4、重启Apache或Nginx服务器

   systemctl restart httpd  # For Apache
   systemctl restart nginx  # For Nginx

5、验证安装

同样,新建一个index.php如下:

   <?php
   phpinfo();

通过浏览器访问该文件,查看是否包含所安装的扩展信息。

三、源码编译安装

源码编译安装提供了最大的灵活性,允许用户自定义编译选项以满足特定需求,这种方法通常用于生产环境中,以便进行性能调优。

1、下载PHP源代码

访问[PHP官方下载地址](https://www.php.net/downloads),选择适合的版本进行下载。

   wget https://www.php.net/distributions/php8.0.13RC1.tar.gz

2、解压源码

   tar zxvf php8.0.13RC1.tar.gz
   cd php8.0.13RC1

3、安装依赖库和编译工具

   yum y install autoconf freetype gd libpng libpngdevel libjpeg libxml2 libxml2devel zlib curl curldevel netsnmpdevel libjpegdevel phpldap openldapdevel openssl openssldevel

4、配置编译选项

   ./configure withphpconfig=/usr/bin/phpconfig enablembstring withcurl withopenssl withzlib enableinlineoptimization withbz2=/usr enablembregex enableintl withmcrypt=/usr withgd enablebcmath withmysqli=/usr/bin/mysql_config withpdomysql=/usr/bin/mysql_config withiodbc=/usr/bin/odbc_config withtidied=shared,/usr/include/tidied enablesoap enablezip withapxs2=/usr/local/apache2/bin/apxs withfpmuser=nginx withfpmgroup=nginx enableftp withgd withjpeg withpng enableexif withfreetypedir=/usr/share/fonts withxpmdir=/usr/lib/php/7.0/xpm enableopcache=no enablesockets withgettext enablecalendar enableexif enableftp enablefileinfo enablegdnativettf enableintl enablembstring enablepcntl enablephar enableposix withreadline=/usr withrecode=/usr/bin/recode withsodium=shared enableshmop enablesysvsem enablesysvshm enablewddx withxmlrpc withxsl enablezendmultibyte enablezendguard withzlib=/usr withzlibdir=/usr disableipv6 enablezip

5、编译并安装

   make && make install

6、配置php.ini

根据编译时的选项,可能需要手动编辑php.ini文件以启用某些扩展,如果编译了MongoDB扩展,则需要在php.ini中添加:

   extension=mongodb.so

7、重启Apache或Nginx服务器

   systemctl restart httpd  # For Apache
   systemctl restart nginx  # For Nginx

8、验证安装

同样,新建一个index.php如下:

   <?php
   phpinfo();

通过浏览器访问该文件,查看是否包含所安装的扩展信息。

四、注意事项与常见问题解答(FAQs)

Q1: PHP CLI安装了某个扩展后,为什么网页中无法使用?

A1: PHP CLI和Web服务器(如Apache或Nginx)可能使用不同的php.ini文件,确保在Web服务器使用的php.ini文件中也启用了相应的扩展,可以使用php ini命令来查找CLI使用的php.ini文件位置,并在其中添加或修改扩展配置。

Q2: 安装扩展时遇到“Cannot find OpenSSL’s <evp.h>”错误怎么办?

A2: 这个错误通常是因为缺少OpenSSL的开发包,可以通过以下命令安装所需的开发包:

yum y install openssl openssldevel

然后重新尝试安装扩展。

分享:
扫描分享到社交APP
上一篇
下一篇