原文地址:https://blog.lmzg.org/2018/PHP_disable_eval.html
tips: eval是一个语言构造器而不是一个函数,不能被disable_functions禁止。 |
很多教程会提供suhosin
禁用eval
的方法,但是不能用于php7(这里有suhosin
的7.x开发版本)
关于使用suhosin
禁用eval的方法可以参考这篇文章:《LINUX服务器安全设置:禁止php的eval函数》
安装php-dev
如果是ubuntu/debian系统,使用:(注意PHP版本)
1 2 3 4 | # PHP5 sudo apt-get install php-dev # PHP7 sudo apt-get install php7.0-dev |
如果是redhat/centos/fedora系统,使用:
1 | yum install php-devel |
下载PHP_diseval_extension
github 地址 : PHP_diseval_extension
在服务器上操作:
1 2 | cd /tmp git clone https://github.com/mk-j/PHP_diseval_extension.git |
编译安装
1 2 3 4 5 | cd /tmp/PHP_diseval_extension/source phpize ./configure make sudo make install |
编译成功后返回如下:
Installing shared extensions: /usr/lib/php/20151012/ |
启用扩展
方法1:直接编辑php.ini 添加一行:
1 | extension=diseval.so |
方法2:放入mods-available,使用软链接启用:
(如下需要操作注意实际路径可能不一样)
1 | vim /etc/php/7.0/mods-available/diseval.ini |
添加下面一局:
1 | extension=diseval.so |
:wq
保存退出
创建软链接:
1 | ln -s /etc/php/7.0/mods-available/diseval.ini /etc/php/7.0/fpm/conf.d/ |
重启PHP
1 | service php7.0-fpm restart |