服务器运行一段时间后,可能突然会需求添加某个扩展,如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中的extension_dir来查看(如:/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的操作就不同了,具体看情况
相关推荐
postgresql14加postgis3.2在centos离线编译安装
centos7编译安装httpd
CentOS 6.8编译安装LNMP环境
centos7编译安装php
gdal在linux上安装需要的文件比较多,附件包含gdal2.2.3及依赖的文件: proj-4.9.3.tar.gz geos-3.6.2.tar.gz jpegsrc.v9b.tar.gz hdf-4.2.13.tar.gz hdf5-1.10.1.tar.gz netcdf-4.4.1.tar.gz gdal-2.2.3.tar....
centos6.5下编译安装lamp
针对在CentOS7.1编译安装mysql-5.7.7遇到各种各样的困难的人,或许有点作用
CentOS编译安装MYSQL5.6.17---验证成功
CentOS 6.2编译安装LAMP最详细教程!
nginx_在centos环境编译安装
全新的linux Centos7的环境下,编译安装zabbix_agent的环境rpm包,亲测可用;详细文字描述:https://blog.csdn.net/qq_36896749/article/details/80196081
CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13
操作系统:CentOS 5.9 64 位 MySQL 版本:mysql-5.6.10 MySQL 安装目录:/usr/local/mysql MySQL 数据库存放目录:/data/mysql 准备篇: 一、配置好IP、DNS 、网关,确保使用远程连接工具能够连接服务器,服务器yum ...
centos7编译安装mysql
centos7编译安装nginx
基于CentOS7 系统下的 ARM 开发板 QT 交叉编译工具,使CentOS7 系统下编译的 QT 程序能够运行在 ARM 开发板上。
Centos 6.3编译安装lamp脚本
以前在centos6下安装,只要按照官方提供的教程编译即可。升级Centos7后,发现原来官方的教程已不能编译安装。于是,我自己摸索编译,发现竟然成功了,于是我分享出来。Centos7拥有的库比较多,Gnome3也非常漂亮,...
CentOS 6.2编译安装Apache2.4.1+MySQL5.5.21+PHP5.3.10
CentOS 5.6编译安装Apache2.4.1+MySQL5.5.21+PHP5.3.10