方法一:PHP_diseval_extension禁用

Linux CentOS 禁用php的eval函数详细图文教程_centos php 禁用 eval

这个方法make报错,懒得费时间处理,直接用第二种

Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程_linux

方法二:suhosin禁用

不支持PHP8,官方只支持PHP7以下

服务器只装了一个PHP5.6版本,一定要安装对应的suhosin-0.9.38版本,

测试成功是  php5.x:

之前安装suhosin-0.9.33版本,怎么样都make不上,

Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程_运维_02

一、安装Suhosin(不是宝塔环境)

cd /usr/local/src
wget https://download.suhosin.org/suhosin-0.9.38.tar.gz
tar zxvf suhosin-0.9.38.tar.gz
cd suhosin-0.9.38
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

1.1 宝塔环境安装

cd /usr/local/src
wget https://download.suhosin.org/suhosin-0.9.38.tar.gz
tar zxvf suhosin-0.9.38.tar.gz
cd suhosin-0.9.38
/www/server/php/56/bin/phpize
./configure --with-php-config=/www/server/php/56/bin/php-config
make && make install

两个环境安装重点在PHP路径不一样,其它都一样

Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程_linux_03

Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程_centos_04

Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程_centos_05

Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程_PHP_06

Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程_运维_07

安装成功

二、在php.ini下加入suhosin.so即可

extension=suhosin.so
suhosin.executor.disable_eval = on

三、测试确定是禁止,运行下面代码,

<?php
eval("echo'hello world';");
?>

如果能输出:hello world,说明没有禁用,

如果网页什么都看不到,报错,说明正确,禁用了

四、重启php-fpm服务即可

service php-fpm restart