centos的PHP编译安装模块的基本步骤
2016-02-27 12:30
453 查看
服务器运行一段时间后,可能突然会需求添加某个扩展,如curl、pdo、xmlrpc等,这就需要在不重新编译PHP的情况下独立添加扩展。
下面以安装curl为例,介绍具体安装步骤。(以下的安装,是基于php源码包安装的,且安装路径是在/usr/local/php,Apache源码编译安装)
1.安装crul服务
wget http://curl.haxx.se/download/curl-7.19.6.tar.gz
tar -zxvf curl-7.19.6.tar.gz
cd curl-7.19.6
./configure --prefix=/usr/local/curl
make
make install
2.编译生成扩展(也就是生成so文件):进入php源程序目录(非安装目录)中的ext目录中,这里存放着各个扩展模块的源代码,选择你需要的模块,比如curl模块:
cd curl
执行phpize生成编译文件,phpize在PHP安装目录的bin目录下(具体可使用 whereis phpize 这个命令来查看)
/usr/local/php5/bin/phpize
运行时,可能会报错:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable is set correctly and then rerun this script.“,需要安装autoconf:
yum install autoconf(RedHat或者CentOS)、apt-get install autoconf(Ubuntu Linux)
生成配置文件,并编译生成模块:
/usr/local/php5/bin/phpize
./configure --with-curl=/usr/local/curl --with-php-config=/usr/local/php5/bin/php-config
make
make install
这样,curl.so就被复制到PHP对应目录,该目录可通过phpinfo中的[b]extension_dir来查看[/b](如:/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/)
3.修改配置在php.ini里,设置扩展目录:(系统默认)
extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/"
并添加扩展模块引用:
extension = curl.so
4.检查并重启Apache
/usr/local/php/bin/php -v
执行这个命令时,php会去检查配置文件是否正确,如果有配置错误,这里会报错,可以根据错误信息去排查。
总结:php不重新编译的情况下安装扩展模块的步骤可分为3步:
第一步:安装该扩展模块需要的服务,例如上面的curl,必须先安装了curl服务才行,也就是说该步骤不是必须的,需要看情况
第二步:安装扩展模块,也就是将编译安装好的so文件放到php对应的模块so文件目录中,无论你的php是源码安装还是yum安装的,都有对应的专门存放php扩展模块so文件的目录,可通过phpinfo()来查看,其中,编译安装php的这些模块的一般步骤是进入php源码包中的ext目录相应的扩展文件目录中,然后使用php的phpize和php-config这2个执行文件命令来编译安装
第三部:在配置文件中加载该模块,这个配置文件加载跟httpd服务的类型有关系,例如Apache和nginx的操作就不同了,具体看情况
下面以安装curl为例,介绍具体安装步骤。(以下的安装,是基于php源码包安装的,且安装路径是在/usr/local/php,Apache源码编译安装)
1.安装crul服务
wget http://curl.haxx.se/download/curl-7.19.6.tar.gz
tar -zxvf curl-7.19.6.tar.gz
cd curl-7.19.6
./configure --prefix=/usr/local/curl
make
make install
2.编译生成扩展(也就是生成so文件):进入php源程序目录(非安装目录)中的ext目录中,这里存放着各个扩展模块的源代码,选择你需要的模块,比如curl模块:
cd curl
执行phpize生成编译文件,phpize在PHP安装目录的bin目录下(具体可使用 whereis phpize 这个命令来查看)
/usr/local/php5/bin/phpize
运行时,可能会报错:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable is set correctly and then rerun this script.“,需要安装autoconf:
yum install autoconf(RedHat或者CentOS)、apt-get install autoconf(Ubuntu Linux)
生成配置文件,并编译生成模块:
/usr/local/php5/bin/phpize
./configure --with-curl=/usr/local/curl --with-php-config=/usr/local/php5/bin/php-config
make
make install
这样,curl.so就被复制到PHP对应目录,该目录可通过phpinfo中的[b]extension_dir来查看[/b](如:/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/)
3.修改配置在php.ini里,设置扩展目录:(系统默认)
extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/"
并添加扩展模块引用:
extension = curl.so
4.检查并重启Apache
/usr/local/php/bin/php -v
执行这个命令时,php会去检查配置文件是否正确,如果有配置错误,这里会报错,可以根据错误信息去排查。
总结:php不重新编译的情况下安装扩展模块的步骤可分为3步:
第一步:安装该扩展模块需要的服务,例如上面的curl,必须先安装了curl服务才行,也就是说该步骤不是必须的,需要看情况
第二步:安装扩展模块,也就是将编译安装好的so文件放到php对应的模块so文件目录中,无论你的php是源码安装还是yum安装的,都有对应的专门存放php扩展模块so文件的目录,可通过phpinfo()来查看,其中,编译安装php的这些模块的一般步骤是进入php源码包中的ext目录相应的扩展文件目录中,然后使用php的phpize和php-config这2个执行文件命令来编译安装
第三部:在配置文件中加载该模块,这个配置文件加载跟httpd服务的类型有关系,例如Apache和nginx的操作就不同了,具体看情况
相关文章推荐
- ubuntu配置NFS,挂载开发板
- linux下创建和删除目录
- u盘安装linux,将grub安装到了u盘,将U盘拔掉后系统无法引导启动的解决方法
- LINUX之块设备整理(二) EMMC 驱动,emmc驱动
- CentOS6.7安装
- 新手指南: Linux 新手应该知道的 26 个命令
- VNC Viewer连接后闪退
- Linux系统启动时间查看
- 如何快速配置CentOS的时间同步
- linux服务器 LAMP平台的部署
- 关于fork()函数父子进程之间的问题
- 20135316王剑桥Linux内核学习笔记
- Linux看门狗脚本 1.4
- linux新增用户并设置密码以及删除用户
- linux新增用户并设置密码以及删除用户
- Linux如何查看JDK的安装路径
- linux内核file结构
- 如何不加完全路径直接输入linux命令
- linux内核inode结构
- linux内核super_block结构分析