【转】如何编译安装PHP扩展

本文参考

一开始安装PHP的时候,我们并不知道需要哪些扩展,所以只有等到我们真正用到的时候才想办法去安装。

安装PHP扩展最简单的办法就是

sudo apt-get install php5-xxx

但有的时候并非我们所愿,源里面并没有我们需要的扩展,这时候就需要我们下载源码自己编译安装了。

这篇文章中我将介绍在本地Linux平台下编译安装PHP扩展的方法。

现在网站根目录下创建 index.php 打印基本的配置信息,以验证我们是否安装成功。

配置编译环境

我们需要安装一些编译必须的库,还有 php-dev 版本

Ubuntu

sudo apt-get install php5-dev php5-mysql gcc libpcre3-dev

Fedora

sudo yum install php-devel php-mysqlnd gcc libtool

RHEL

sudo yum install php-devel php-mysql gcc libtool

Suse

yast2 -i php5-pear php5-devel php5-mysql gcc

安装扩展

PHP有两种可供安装的扩展:一种是PHP原生的但是默认没有安装的,另一种的第三方开发的扩展。

下面依次介绍两种扩展的安装方法:

安装之前我们需要一份和当前机器上相同版本的PHP源码

cd code
wget http://cn2.php.net/distributions/php-5.5.9.tar.bz2
tar xvjf php-5.5.9.tar.bz2
cd php-5.5.9

前往此处 下载相应的源码包。

在 /ext 目录下面可以看到所有PHP原生的扩展。

安装原生扩展

以 PHP-intl 为例,这是PHP国际化的扩展。

为了安装这个扩展我们需要先安装ICU 库

sudo apt-get install icu-devtools icu-doc libicu-dev libicu52 libicu52-dbg

ICU 安装成功之后进入/ext/intl 目录:

cd intl
phpize
./configure --enable-intl
make
sudo make install

下面解释一下上面的每个命令:

  • phpize : 是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块
  • ./configure --enable-intl: 配置编译环境,相当于告诉编译器编译PHP源码的时候加上intl这个扩展。
  • make: 将会把源码编译成 intl.so
  • make install : 将会把 intl.so 移动到当前安装的 PHP 的扩展目录。

接下来我们要做的就是在php.ini中启用这个扩展,这一步将会在最后给出示例。

安装第三方扩展

将以这个 扩展为例,这个扩展主要实现了PHP识别条形码的功能。

先安装必要的依赖

sudo apt-get install pkg-config
git clone https://github.com/mongodb/mongo-php-driver
cd mongo-php-driver
phpize
./configure
make
sudo make install

将会生成一个文件,将其拷贝到PHP的扩展目录下面。

启用扩展

在php.ini中启用扩展的方式有很多:

  1. 直接在php.ini文件中添加 extension=mongo.so,这是最简单直接的方法。
  2. 也可以单独建一个ini文件,然后在php.ini中包含这些文件就可以了。

下面介绍一下第二种方法:

cd `/etc/php5/mods-available`

这个目录里可以放新建的ini文件,然后执行

sudo touch mongo.ini
echo "extension=mongo.so" | sudo tee -a mongo.ini
sudo touch intl.ini
echo "extension=intl.so" | sudo tee -a intl.ini

上面的命令将会创建ini文件,并且写如相应的配置信息。

然后执行下面的命令启用扩展即可(需要安装 php5enmod 工具):

sudo php5enmod mongo
sudo php5enmod intl

如果未安装 php5enmod 工具,则需要手动配置:

ln -s /etc/php5/mods-available/mongo.ini /etc/php5/cli/conf.d/mongo.ini
ln -s /etc/php5/mods-available/intl.ini /etc/php5/cli/conf.d/intl.ini
ln -s /etc/php5/mods-available/mongo.ini /etc/php5/fpm/conf.d/mongo.ini
ln -s /etc/php5/mods-available/intl.ini /etc/php5/fpm/conf.d/intl.ini

最后在执行一下重启操作就可以了:

全选复制放进笔记

sudo service nginx restart
sudo service php5-fpm restart
时间: 10-30

【转】如何编译安装PHP扩展的相关文章

编译安装 PHP 扩展

编译安装 Redis 扩展 - phpredis编译安装 Swoole 扩展编译安装 Pcntl 扩展编译安装 Sockets 扩展编译安装 Event 扩展编译安装 Mongodb 扩展编译安装 Memcache 扩展 编译安装 Redis 扩展 predis,是 PHP 代码实现原生 redis client,采用socket连接,只依赖于 php 解释器,无需安装扩展phpredis(php extension redis)是 C 编写的 PHP原生扩展,支持 php-fmp 模式下的 r

编译安装php-amq扩展

用途:这个扩展是用来操作rabbitmq服务端的 一.安装总括 1.编译安装librabbitmq库 这是一个开源c语言的库.用来与rabbitmq进行通信 而php的php-amqp扩展就是使用这个库与服务端通信.所以必须先安装这个开源库. 下载地址:https://github.com/alanxz/rabbitmq-c/ 2.编译php-amqp扩展的源码 注:两个的版本要指定,避免冲突.librabbitmq库是0.5.2版本.php-amq是1.4.0版本 这个扩展是php官方在维护,

php编译安装redis扩展

redis与php编译安装 pecl.php.net 下载redis stable稳定版,解压 监测php内核版本,并为扩展生成相应的编译配置 phpize 进入源码包内执行phpize生成的configure文件 ./configure --with-php-config=/usr/local/php/bin/php-config 编译安装 make && make install 根据make install结束后的so包路径提示,编辑php.ini,并重启环境 extension=/

centos6.3下php5.3.23编译安装php-redis扩展

下载php-redis扩展 https://github.com/nicolasff/phpredis 操作系统 centos6.3 php版本 php5.3.23 安装php扩展需要 phpize,phpize属于php-devel,所以要先安装php-devel yum install php-devel centos yum安装的php,找不到目录的话,可以 /usr/bin/php-config    --prefix 获取到安装目录     --libs 库文件    --extens

Linux下编译安装php扩展

1.安装redis扩展: https://github.com/phpredis/phpredis.git cd phpredis/ /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config make && make install vi /etc/php/php.ini extension=redis.so 2.安装memcached扩展: wget https://laun

Linux 编译安装 php 扩展包 curl

php源码目录:/root/php php编译目录:/usr/local/webserver/php/ curl源码目录:/root/curl 1.curl,主要用于发送http请求,是php的一个扩展包. 2.安装过程: (1)curl下载:http://curl.haxx.se/download.html (2)具体安装过程: 解压:tar -zxvf curl.tar.gz cd  /(php源码目录,不是php编译目录)/ext/curl 运行phpize: /(php编译目录)/bin

编译安装memcached扩展记要

编译memcached扩展的时候,得指定libmemcached库的位置 --with-libmemcached-dir=DIR 来指定路径.这个路径就是安装libmemcached时指定的prefix的值 所以得先安装libmemcached库. 一.安装libmemcached库 libmemcached库为什么编译不成功,好像是需要更高版本的gcc编译器?我按照网上说的,执行了: yum install gcc44 gcc44-c++ libstdc++44-devel 原因 貌似是gcc

fastdfs在ubuntu的编译安装,php扩展fastdfs的安装

FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别适合以文件为载体的在线服务,如相册网站.视频网站等等.FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage).跟踪器主要做调度工作,在访问上起负载均衡的作用. FastDFS 是一个 C 语言实现的开源轻量级分布式文件系统,作者余庆(happyfish100),支持 Linux.FreeBSD.AID 等

编译安装PHP7及扩展

一.编译安装PHP 1. 下载源码包并解压 源码包地址:http://php.net/downloads.php 下载源码包 当前PHP最新本门是7.2.9,下载 php-7.2.9 源码包 wget http://be2.php.net/get/php-7.2.9.tar.gz/from/this/mirror -O php-7.2.9.tar.gz 解压源码包 解压缩 tar zxf php-7.2.9.tar.gz 进入解压缩后的目录,查看解压的文件 [root/usr/local/src