方法一:PHP_diseval_extension禁用

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

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

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

方法二:suhosin禁用

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

服务器只装了一个PHP5.6版本,一定要安装对应的suhosin-0.9.38版本,
测试成功是  php5.x:

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

Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程_php_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.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

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

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

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

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

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

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

安装成功

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

extension=suhosin.so
suhosin.executor.disable_eval = on
  • 1.
  • 2.
三、测试确定是禁止,运行下面代码,
<?php
eval("echo'hello world';");
?>
  • 1.
  • 2.
  • 3.

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

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

四、重启php-fpm服务即可
service php-fpm restart
  • 1.