我想禁止执行一些PHP之类的函数file_put_content,exec,eval在特殊的目录。
我可以disable_functions在 php.ini中使用,但如何定义一个特殊的文件夹,如c:\poject\public
小智 5
如果您的 php.ini 工作版本禁用了您想要的功能,那么您只需将该文件夹“链接”到该指定的 .ini 文件即可。这意味着您的 Web 服务器在从该目录提供文件时,应该使用该特定的 .ini 文件而不是系统文件。
如果您使用 Apache2 作为服务器,可以在这里找到解决方案,您可以为每个虚拟主机定义特定的 php.ini 文件。假设您的特定文件夹是/var/www/web1,您应该将禁用该功能的php.ini放入/var/www/web1并使用此Apache2配置
<VirtualHost 1.2.3.4:80>
[...]
PHPINIDir /var/www/web1
[...]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
如果您不熟悉或不使用 VirtualHosts(但仍在使用 Apache2),另一种可能的解决方案是将 PHP 配置放入文件夹中名为 .htaccess 的文件中,语法如下:
php_value disable_functions "file_put_content,exec,eval"
Run Code Online (Sandbox Code Playgroud)