【问题标题】:Set php second configuration ( php.ini file )设置php第二个配置(php.ini文件)
【发布时间】:2016-05-28 21:12:12
【问题描述】:

我想设置我自己的 (php2.ini) 文件,只有几行必须覆盖第一个 php.ini 设置 - 仅适用于这些行。

所以我开始在 google 上查找,似乎我需要的是 parse_ini_file 函数。

好的。现在,在 index.php 我有:

parse_ini_file("php2.ini");
phpinfo();
exit();

但是那些来自 php2.ini 的设置并没有加载...

尝试查看文件 php2.ini 是否已读取,因为如果我设置了parse_ini_file("php2-not-exist.ini"),它会告诉我找不到该文件。所以文件 php2.ini 被读取,但设置并没有被覆盖。

php2.ini 文件包含以下几行:

error_log = "errors.log"
display_errors = "0"
max_execution_time = "300"
upload_max_filesize = "60M"
post_max_size = "60M"
date.timezone = "Europe/Bucharest"
default_charset = "UTF-8"
mbstring.internal_encoding = "UTF-8"
mbstring.http_output = "UTF-8"
mbstring.encoding_translation = "On"
mbstring.func_overload = "6"

试图让这个文件只有一行像post_max_size = "60M",但仍然没有覆盖一般的php.ini设置。

我在这里错过了什么?

我知道有些设置只能使用 php.ini 文件配置进行设置。因此,使用 parse_ini_file 设置第二个文件是 php 的一个函数……有些不正确,因为某些服务器不允许您编辑一般的 php.ini 文件。那么,如果您无法访问一般的 php ini 文件,php 如何让您设置第二个 php ini 文件呢?我不知道这是否与我的问题有关。我只是说这可能是问题所在。

现在我正在使用 wamp 和 php 5.5.12。我只想在我上传我的网站时完成所有工作。我知道某些托管服务器允许您拥有第二个 php.ini 文件,该文件必须上传到 public_html 或任何文件夹中。这就是为什么我要设置我的 php2.ini 文件。当我上传到主机时让网站干净。

谢谢。

【问题讨论】:

  • 您是否尝试将 php.ini 文件简单地放在您的 public_html 中?默认情况下这是有效的。
  • 现在,我告诉过你,我在 wamp 服务器上,女巫有一个 www 文件夹。就这样。 www 文件夹就像服务器上的 public_html。所以,应该都是好的,但不是......
  • 你提到调用你的文件php2.ini 并使用parse_ini_file() 这绝对不是我说的。
  • 它的工作注意到一些主机禁用了用户php.ini,你可以很容易地检查它,只需在webroot中添加一个,如果这不起作用直接在用户中尝试,它通常在webroot之上。如果这些都不起作用,那么您可以在 php 文件或 htaccess 中尝试 ini_set 但我怀疑这些也会被阻止。
  • 我已经告诉过你我在 wamp 服务器上,并且 wamp 服务器设置没有像托管服务器这样的设置。所以 wamp 服务器不会读取像 php.ini 这样的文件,只有当你说他读取它时(例如使用 parse_ini_file)。另请注意,并非所有服务器都接受您在 public_html 中的 php.ini 文件。这就是为什么我想自己设置它,如果可以的话,使用 parse_ini_file。无论如何,Danny Staple 给出了我的问题的答案。

标签: php configuration


【解决方案1】:

php parse_ini_file() 函数将一个 ini 文件读入关联数组。它不会像 php.ini 文件那样将它们设置为设置。

没有像这样覆盖服务器设置的便捷功能。你可能想要的是.user.ini(前导点很重要)文件:

自 PHP 5.3.0 起,PHP 支持基于每个目录的配置 INI 文件。

和:

除了主 php.ini 文件外,PHP 还会扫描每个目录中的 INI 文件,从请求的 PHP 文件的目录开始,一直到当前文档根目录(如 $_SERVER[' DOCUMENT_ROOT'])。如果 PHP 文件位于文档根目录之外,则仅扫描其目录。

有关该功能的完整文档,请查看http://php.net/manual/en/configuration.file.per-user.php

请注意,此处只能更改部分设置:

只有模式为 PHP_INI_PERDIR 和 PHP_INI_USER 的 INI 设置才能在 .user.ini 样式的 INI 文件中被识别。

【讨论】:

  • 我现在明白了,但还有一件事。例如 display_errors 具有 PHP_INI_ALL 并且可以使用 htaccess 文件进行设置。如果我可以使用 htaccess 设置 display_errors,为什么我不能使用第二个 php.ini 文件来设置它?服务器上都有,对吧?所以 user.ini-style 还必须包含 PHP_INI_ALL,witch 不是......无论如何......我将使用 htacces。如果有 htacces 的许可,我会检查每个设置,就是这样。感谢您的明确答复。我希望我能理解你。
猜你喜欢
  • 2011-01-30
  • 2017-01-14
  • 1970-01-01
  • 2018-12-16
  • 2013-10-12
  • 2019-09-17
  • 2014-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多