方法一:PHP_diseval_extension禁用
Linux CentOS 禁用php的eval函数详细图文教程_centos php 禁用 eval-CSDN博客
这个方法make报错,懒得费时间处理,直接用第二种
方法二:suhosin禁用
不支持PHP8,官方只支持PHP7以下
服务器只装了一个PHP5.6版本,一定要安装对应的suhosin-0.9.38版本,
测试成功是 php5.x: wget https://download.suhosin.org/suhosin-0.9.38.tar.gz
之前安装suhosin-0.9.33版本,怎么样都make不上,
一、安装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路径不一样,其它都一样
安装成功
二、在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