CentOS/Red Hat Linux安装PHP 5.x PECL过滤器扩展

时间:2020-01-09 10:43:17  来源:igfitidea点击:

问题描述:如何安装过滤器扩展,以便使用filter_var()安全处理通过Web表单提供的输入参数?

解决方法:此扩展是PHP Core 5.20及更高版本的一部分。
不幸的是,RHEL/CentOS附带了PHP版本5.1.6。
因此,您需要通过执行以下命令来安装此扩展。

安装php-devel

您需要安装php-devel才能编译php扩展名:

# yum install php-devel

下载php源代码

php_pcre.h头文件不包含在php源代码5.1.6中,因此您也需要php源代码。
访问php.net获取最新版本并将其存储到/opt目录。
使用山猫和elinks:

# cd /opt
# elinks http://www.php.net/get/php-5.2.6.tar.bz2/from/a/mirror

将php源代码保存到磁盘中。
接下来,提取源代码:

# tar -jxvf php-5.2.6.tar.bz2

下载过滤器扩展

访问pecl扩展以获取用于过滤器的最新源代码:

# cd /opt
# wget http://pecl.php.net/get/filter-0.11.0.tgz

安装过滤器扩展

Unrar文件:

# tar -jxvf filter-0.11.0.tgz
# cd filter-0.11.0

打开logical_filters.c文件:

# vi logical_filters.c

查找如下所示的行:

#include "ext/pcre/php_pcre.h"

更改为(需要php_pcre.h的绝对路径):

#include "/opt/php-5.2.6/ext/pcre/php_pcre.h"

保存并关闭文件。
最后,执行以下命令以编译扩展名:

# phpize
# ./configure
# make install

配置过滤器扩展

执行以下命令:

# echo 'extension=filter.so' > /etc/php.d/filter.ini

重新启动httpd:

# service httpd restart