php - 在特殊目录上禁用一些 php 函数

标签 php windows apache

我想禁用在特殊目录上执行一些 php 函数,如 file_put_contentexeceval

我可以在 php.ini 中使用 disable_functions 但如何定义一个特殊的文件夹,如 c:\poject\public

最佳答案

如果您有一个 php.ini 的工作版本禁用了您想要的功能,那么您只需将文件夹“链接”到该特定的 .ini 文件。这意味着当从该目录提供文件时,您的 Web 服务器应该使用该特定的 .ini 文件而不是系统文件。

如果您使用 Apache2 作为服务器,可以找到解决方案 here您可以为每个虚拟主机定义一个特定的 php.ini 文件。假设您的特定文件夹是/var/www/web1,您应该将禁用该功能的php.ini 放入/var/www/web1 并使用此Apache2 配置

<VirtualHost 1.2.3.4:80>
[...]
PHPINIDir /var/www/web1
[...]
</VirtualHost>

如果您不熟悉或不使用 VirtualHosts(但仍在使用 Apache2),另一种可能的解决方案是将 PHP 配置放入文件夹中名为 .htaccess 的文件中,语法如下:

php_value disable_functions "file_put_content,exec,eval"

关于php - 在特殊目录上禁用一些 php 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41339146/

相关文章:

javascript - 如何检查所有带 Angular 复选框

java - 将信号从 .NET 应用程序传递到 Java 应用程序

Java 线程异常终止并出现消息为 null 的异常。

windows - 在 Windows 批处理文件中打开网页

php - 在 xampp 中添加 Imagick

apache - .htaccess 重写特定子文件夹

php - 我的密码接受大小写字母

php - 从粘贴的亚马逊网址获取 ASIN

javascript - 如何从 Angular route 完全删除#标签?

php - 如何禁用 Yii 2 中 activeform 的客户端验证消息?