0基础自学linux运维-2.13-centos 7 yum安装php各种版本及模块安装方法

一、需求

   有些时候我们需要安装不同版本的php,目前php版本的php5.4、php5.5、php5.6、php7.0已经没有下载地址了,只有php7.1、php7.2、php7.3,那么如何安装其中一个版本呢?安装版本后发现插件少了一个需要安装怎搞?

1.安装任意一个版本可以用remi源安装,默认的源只有php5.5

2.如果要安装插件可以直接yum install插件名或者用phpize进行安装


二、指定安装php版本

2.1 安装指定的php版本

#1.安装epel和remi源

mkdir /disk1/tools

cd /disk1/tools/

#不行就用wget下载

rpm-Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

wge thttp://rpms.famillecollet.com/enterprise/remi-release-7.rpm

rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi

rpm -ih remi-release-7.rpm

#2. 指定源

#指定源我们会用到yum的一个参数

--enablerepo=[repo]   启用一个或多个软件源(支持通配符)

如:我这里用的是remi源,所以格式为

yum --enablerepo=remi <参数> <name>

#还可以多个,如我指定php73的,可以写成

yum --enablerepo=remi,php73 install xxx


#3.安装依赖

yum -y install libxml2-develbzip2-devel libpng-devel libmcrypt-devel libjpeg \

libjpeg-devel freetype freetype-devel  openssl-devel libcurl-devel gmp-devel \

libxslt-devel zlib zlib-develcurl curl-devel ncurses ncurses-devel gd-devel \

openssl-devel  ImageMagick-devel

#4.在这里我想安装最新的php7.3及一些常用的php扩展模块,命令如下

#remi源安装php7.3(gd+freetype)+imagick

yum --enablerepo=remi,remi-php73-y install php php-devel php-mysql php-gd \

php-bcmath php-mbstringphp-mcrypt php-mhash php-pdo php-pecl-imagick php-fpm

从上面的图中可以看出,在安装的时候使用了指定的remi源,如果不指定可能会找不到。

#查看所安装模拟

 php –m


三、安装php扩展

3.1 直接用yum安装扩展(方法一)

安装php扩展最方便的方式就是:

yum --enablerepo=remi,php73 install <php-名字/php-pecl-名字>

你肯定会问什么时候用“php-名字”什么时候用“php-pecl-名字”,这得先说一下什么是pecl?百科解释:

PECL 的全称是The PHP Extension Community Library ,是一个开放的并通过 PEAR(PHP Extension and

Application Repository,PHP 扩展和应用仓库)打包格式来打包安装的 PHP 扩展库仓库。通过 PEAR 的Package Manager 的安装管理方式,可以对 PECL 模块进行下载和安装。与以往的多数 PEAR 包不同的是,PECL 扩展包含的是可以编译进 PHP Core 的 C 语言代码,因此可以将 PECL 扩展库编译成为可动态加载的 .so 共享库,或者采用静态编译方式与 PHP 源代码编译为一体的方法进行扩展。PECL 扩展库包含了对于 XML 解析,数据库访问,邮件解析,嵌入式的 Perl 以及Python 脚本解释器等诸多的 PHP 扩展模块,因此从某种意义上来说,在运行效率上 PECL 要高于以往诸多的 PEAR 扩展库。

    就一句话:就是php的扩展仓库,它包含各种php模块,有它就找php扩展就方便,只要按照它的说明安装就好。pecl官网地址:http://pecl.php.net

    从上面来说“php-名字”和“php-pecl-名字”区别是一个是在pecl仓库的,一个是不在的一些php自带的就可以直接用”php-名字”,其它都用”php-pecl”。

如果还是一脸懵,那就是先用“php-名字”,不行再用“php-pecl-名字”安装^_^


#如上面少了一个redis,我后面发现要安装一个redis,那么就可以直接

yum --enablerepo=remi,remi-php73 install -y php-pecl-redis

#卸载也简单

yum remove php-pecl-redis –y

细心的朋友会发现怎么redis版本都会自动匹配的,如果我想安装其它版本呢?或者我

“yum --enablerepo=remi,remi-php73 install xxx”出不来php的扩展呢。那么得就用phpize安装pecl扩展了。


3.2 用phpize安装php扩展(方法二)

3.2.1 什么是phpize

在使用php的过程中,我们常常需要去添加一些PHP扩展库。但是重新对php进行编译是比较蛮烦的,所以这时候我们可以使用phpize对php进行添加扩展。并且phpize编译的扩展库可以随时启用或停用,比较灵活。

3.2.2 phpize使用方法

extention为要挂载的扩展包

1) wget extension.tar.gz下载相应的扩展包并解压。

2) cd extension/切换到扩展extension的目录中

3) /php/bin/phpize 运行php安装目录下的phpize文件,这时候会在extension目录下生成相应的configure文件。

4) ./configure --with-php-config=/php/bin/php-config 运行配置,如果你的服务器上只是装了一个版本的php则不需要添加--with-php-config 。后面的参数只是为了告诉phpize要建立基于哪个版本的扩展。

5) make && make install 编译模块

6) 编译好模块之后,需要让php启用它。在php.ini文件中加入把extension.so开启即可。重启php服务。

其实phpize是一个运行脚本,主要作用是检测php的环境还有就是在特定的目录生成相应的configure文件,这样makeinstall之后,生成的.so文件才会自动加载到php扩展目录下面。

3.2.3 例子

我们还是以redis为例子,进行操作

#1. 去pecl官网pecl.php.net,去搜索一下redis,发现只有一个redis,点击进入redis下载面页面,在这里我下载redis4的最新版本

#也可以用wget下载

wget http://pecl.php.net/get/redis-4.3.0.tgz

#2.安装redis扩展

tar -xf redis-4.3.0.tgz

cd redis-4.3.0

phpize

./configure --with-php-config=/usr/bin/php-config

make

make test

make install

cd

通过上图知道php的redis模块所在的位置

ll /usr/lib64/php/modules/redis.so

#3.把模块配置到php中去

因为是yum安装的php,模块已经放在默认位置了,所以直接打这个功能打开就行了

cp /etc/php.ini /etc/php.ini.orig

#在第915行和别的扩展一样,添加extension=redis.so

sed -i '910a\extension=redis.so' /etc/php.ini

grep 'redis.so' /etc/php.ini

#重启php生效,因为我用的是LNNP所以重启php-fpm就行了

systemctl restart php-fpm

php -m|grep redis


四、小结

这里介绍了php指定版本的安装使用的是remi源,并没有使用源安装,也符合“方便易维护”的原则。

在使用安装php扩展的时候我也尽量用yum安装,不行的话也是用“yum+phpize”安装方式,也是为了方便维护。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容