Centos下多种PHP拓展安装方法

蹲街弑〆低调 提交于 2019-11-26 23:51:33

Centos下,PHP有多种方式来安装拓展, 主要有 包管理式的yum安装、pecl安装, 以及底层的源码编译安装。

包管理式的安装卸载尤为方便,而源码编译式的安装则方便参数调优。

一般的搭建本机开发环境推荐包管理式的安装,节约时间。而线上部署环境则推荐编译安装, 方便调优。

 

yum安装

## yum方式安装能自动安装拓展的.so动态库,并配置好php.ini

# 如安装mysql拓展
yum search mysql|grep php  #我们搜索到拓展名为 php-mysql.x86_64
sudo yum install php-mysql  #这样php-mysql拓展便安装好了

# 如果出现拓展版本和php版本冲突问题, 可安装如下任意yum源:
sudo yum install atomic-release.noarch
sudo yum install webtatic-release.noarch
# 这些源提供了其他版本的php拓展,同时每个源针对特定拓展都会提供多个版本,你只需安装一个源即可。如:
atomic源下能搜索到5.4版的mysql拓展  atomic-php54-php-mysql.x86_64 
webtatic源下能搜索到5.5版本的mysql拓展 php55w-mysql.x86_64

 

pecl安装

# 我们需要先从pear官网下载 go-pear 工具
# 这个工具将帮我们同时安装 pecl包管理器(管理php的C拓展) pear包管理器(管理php类库)
wget http://pear.php.net/go-pear.phar

# 安装工具
# 安装过程除非特别指定,否则默认将工具安装到 /home/用户名/pear/bin 目录下
php go-pear.phar

# 将工具目录添加到环境变量中
# 编辑/etc/profile 追加一行配置
export PATH=$PATH:/home/用户名/pear/bin

# 加载环境配置
source /etc/profile

# 配置工具的php_ini选项,这样安装拓展时pecl工具就能帮我们自动配置php.ini文件了
# vim /home/用户名/pear/share/pear/PEAR/Config.php
# 搜索php_ini, default键修改为你的php.ini文件路径:
        'php_ini' => array(
            'type' => 'file',
            'default' => '/etc/php.ini',
            'doc' => 'location of php.ini in which to enable PECL extensions on install',
            'prompt' => 'php.ini location',
            'group' => 'File Locations (Advanced)',
            ),   
#或者在当前会话中设置
pecl config-set php_ini /etc/php.ini
pear config-set php_ini /etc/php.ini
#确认一下,配置起效
pecl config-get php_ini  #配置成功将显示 /etc/php.ini

# 搜索mysql拓展
pecl search mysql
# 这时一般会提示我们更新工具, 则我们依据提示进行更新
sudo pecl channel-update pecl.php.net
# 再次搜索mysql拓展, 成功
pecl search mysql

# 安装拓展
pecl install  mysql

 

源码编译安装

# 以安装phpredis拓展为例
git clone https://github.com/phpredis/phpredis.git  # 下载phpredis源码
cd phpredis/
phpize
./configure
make & make install
cp rpm/redis.ini /etc/php.d/redis.ini

 

 

检查mysql拓展是否安装成功

php -i | grep mysql

成功安装后上面命令将显示一个节区的mysql拓展状态信息。

但拓展加载到运行环境中还需要你重启 web服务 亦或是 php-fpm

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!