找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 293|回复: 0

lnmp之安装PHP模块/扩展(不需要重装PHP)

[复制链接]

3万

主题

7

回帖

9万

积分

管理员

积分
91233
发表于 2024-5-28 15:02:15 | 显示全部楼层 |阅读模式
VPS侦探一直在努力的去营造一个VPS相关话题的交流环境,于是有了很多的VPS相关的教程、QQ群、有了论坛、有了LNMP一键安装包...,在此说明一下Linux下PHP模块/扩展都是采用此方法安装或安装php直接编译进去,PHP的dll模块/扩展文件是Windows下php模块的使用方法,两者是无法通用的!!
VPS侦探主要根据论坛上lnmp版块用户反映来写一些教程,今天说一下如何为lnmp的php安装一些自己需要的模块,下面主要有两种方式进行安装:源码编译方式安装和pecl方式进行安装
源码编译安装安装前
安装前建议先执行 /usr/local/php/bin/php -m (此命令显示目前已经安装好的PHP模块)看一下,要安装的模块是否已安装。然后下载当前PHP版本的源码并解压。
大部分php扩展/模块的源码编译安装就是三个步骤,在源码目录下执行:
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
有些模块可能会稍微有差异(如要求添加一些参数),但是 --with-php-config=/usr/local/php/bin/php-config 是所有PHP模块最基本的参数这个是必须要有的,具体看模块的安装文档就可以。
本文以imap和exif模块为例,进入php源码目录下ext,里面会有大部分模块的源码,这里都是php自带模块,第三方模块的话需要自己找第三方模块的源码。
一、安装imap模块
1、安装imap模块前需要先安装imap所需的库:
CentOS :yum install libc-client-devel
Debian:apt-get install libc-client-dev
2、首先进入php安装目录的ext目录
比如php的源码目录为:/root/lnmp1.3-full/src/php-5.4.45/
则执行:cd /root/lnmp1.3-full/src/php-5.4.45/ext/  ###一般安装完LNMP php源码都是自动删除了的,需要自己进入src目录下解压对应版本的php源码包。###
我们要安装imap模块,执行cd imap/
再执行 /usr/local/php/bin/phpize 会返回如下信息:
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519
再执行以下命令:
[root@vpser imap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-kerberos --with-imap-ssl
[root@vpser imap]# make && make install
执行完返回:
Build complete.
Don't forget to run 'make test'.
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
表示已经成功,再修改/usr/local/php/etc/php.ini
查找:extension_dir 再下面一行添加上extension = "imap.so"
保存,执行/etc/init.d/php-fpm restart 重启。
在浏览器里面输入http://ip/p.php,打开探针,安装IMAP模块前:
安装IMAP模块后:
二、安装exif模块
安装exif不需要另外安装库,所以省略掉了安装库的步骤。
比如php的源码目录为:/root/lnmp1.3-full/src/php-5.4.45/
则执行:cd /root/lnmp1.3-full/src/php-5.4.45/ext/
我们要安装exif模块,执行cd exif/
再执行 /usr/local/php/bin/phpize 会返回如下信息:
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519
再执行以下命令:
[root@vpser imap]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@vpser imap]# make && make install
执行完返回:
Build complete.
Don't forget to run 'make test'.
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
表示已经成功,再修改/usr/local/php/etc/php.ini
查找:extension = 再最后一个extension= 后面添加上extension = "exif.so"
保存,执行/etc/init.d/php-fpm restart 重启。
在/home/wwwroot/下面创建一个exif.php的文件,内容如下:
while(list($k,$v)=each($exif)) {
echo "$k: $v
";
}
?>
其中IMG_0001.JPG为照片文件。
未安装exif模块前:
安装exif模块后:
可以读出照片的exif信息。
安装其他模块也基本上都是这两种方式,当./configure --with-php-config=/usr/local/php/bin/php-config 执行这个的时候是会检查系统上库是否安装上,如果没有安装上就会报错,按错误提示安装相关的库就行。
pecl方式安装
pecl方式安装是使用pecl install xxx 命令的方式,xxx为php模块名字,但是该php模块必须是 https://pecl.php.net 上面的且必须要提前按要求安装好依赖包,不同php模块可能不需要也可以需要安装,具体可以官网手册 https://www.php.net/manual/en/index.php 中查询。
lnmp默认禁用掉了部分php函数,需要将exec、popen、readlink这些函数从禁用函数中去掉,可以在/usr/local/php/etc/php.ini 中查找disable_function 就可以在后面看到是否有禁用函数。
安装好依赖包就可以直接,pecl install xxx 进行安装php模块。
如果还有其他问题,可以到https://bbs.vpser.net提问,记得提问前在https://bbs.vpser.net/search.php搜索一下哦。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|番茄论坛

GMT+8, 2024-11-21 19:26 , Processed in 0.087709 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表