为什么在共享主机上关闭了php的ini_set函数

时间:2010-01-19 17:47:46

标签: php set shared host ini

我在VPS上使用托管,他们不允许我使用php的ini_set函数在运行时设置配置,逐个脚本。相反,我必须直接在php.ini文件中更改设置,这是通过SSH访问的任务。

为什么会这样?

这虽然很好,但有点烦人,因为我在共享服务器上有12个域,而且我不一定想要全面设置设置....

4 个答案:

答案 0 :(得分:2)

如果它是针对经销商的产品,则可能会阻止您的客户/客户/用户随意更改php.ini设置,这通常是明智之举。

但是,如果您拥有对该计算机的完全访问权限,那么您是否应该能够重新激活ini_set

答案 1 :(得分:1)

像Pekka说的那样,如果你可以通过SSH修改你的php.ini,那么试着在那里修改它。

关闭safe_mode并检查disable_functions

的内容
  

此指令允许您出于安全原因禁用某些功能。它采用以逗号分隔的函数名列表。 disable_functions不受安全模式的影响。必须在php.ini中设置此指令。例如,您无法在httpd.conf中设置此指令。

答案 2 :(得分:0)

VPS提供商倾向于强制其用户使用最安全的环境。禁用ini_set()通常是一种很好的安全措施,因为您可以轻松地在PHP代码中使用eval()语句,例如使用GET / POST / SESSION变量作为输入。我相信如果启用ini_set(),默认情况下会屏蔽safe_mode。我想任何共享托管服务提供商都会强制执行safe_mode

答案 3 :(得分:0)

您能告诉我们有关服务器组件的更多信息吗? PHP作为CGI或mod_php。 PHP是否启用了suPHP或其他保护系统? 可以使用.htaccess文件更改某些选项。您是否可以直接访问httpd.conf文件?在那里你可以启用ini_set() - > http://php.net/manual/en/configuration.changes.php