我在 VPS 上使用托管,他们不允许我使用 php 的 ini_set 函数在运行时逐个脚本地设置配置。相反,我必须直接在 php.ini 文件中更改设置,这是通过 SSH 访问的任务。
为什么是这样?
这虽然很好,但有点烦人,因为我在共享服务器上有 12 个域,而且我不一定想全面设置设置....
如果它是针对经销商的产品,它可能是为了防止您的客户/客户/用户随意更改 php.ini 设置,这通常是明智的做法。
但是,如果您对机器具有完全访问权限,您不应该能够重新激活ini_set
吗?
就像 Pekka 说的那样,如果您可以通过 SSH 修改 php.ini,那么请尝试在那里进行更改。
关闭safe_mode
并检查内容disable_functions
该指令允许您出于安全原因禁用某些功能。它采用逗号分隔的函数名称列表。disable_functions 不受安全模式的影响。该指令必须在 php.ini 中设置,例如,您不能在 httpd.conf 中设置。
VPS 提供商倾向于强迫他们的用户使用最安全的环境。禁用ini_set()
通常是良好的安全实践,因为您可以轻松地eval()
在 PHP 代码中使用例如 GET/POST/SESSION 变量作为输入的语句。我相信如果打开ini_set()
,默认情况下会被阻止。safe_mode
我想任何共享托管服务提供商都会强制执行safe_mode
.
你能告诉更多关于服务器组件的信息吗?PHP 作为 CGI 或 mod_php。PHP 是否启用了 suPHP 或其他保护系统?可以使用 .htaccess 文件更改某些选项。您是否可以直接访问 httpd.conf 文件?在那里你可以启用 ini_set() -> http://php.net/manual/en/configuration.changes.php