【问题标题】:php doc_root in php.ini and DocumentRoot in httpd.confphp.ini 中的 php doc_root 和 httpd.conf 中的 DocumentRoot
【发布时间】:2014-07-29 12:05:36
【问题描述】:

我想了解更多关于 PHP 和 Apache 的信息,所以我决定手动安装它们。我不完全了解这两个文件如何协同工作(或者在这种情况下它们是否齐头并进)。每当我加载 localhost 网页时,php 文件的位置都来自我在 httpd.conf 文件中指定的位置。为了测试,我创建了两个根文件夹,C:/Users/Alex/test 和 C:\Users\Alex\My Websites。 Apache 实际上并没有使用我在 php.ini 中指定的位置 (doc_root = "C:\Users\Alex\My Websites"),而是使用我在 httpd.conf (DocumentRoot "C:/Users/亚历克斯/测试”)。谁能解释一下 php.ini 中的 root 什么时候有用?

【问题讨论】:

  • 提示 #1:它是由 apache 运行的 php,而不是相反。
  • 我明白了,那么我在 php.ini 中指定的根是用来做什么的?
  • 为什么要询问是否有可用的文档:php.net/manual/en/ini.core.php#ini.doc-root

标签: php apache


【解决方案1】:

您很可能在 Apache 内部运行 mod_php(这是在 Apache 下运行 PHP 的最常见方式)。这意味着 PHP 环境完全由 Apache 控制(在 Unix 环境中,Apache 也有自己的用户)。您可以将其重新配置为使用 Fast CGI(这是在 nginx 等其他 Web 服务器下运行 PHP 的唯一方法),并且该设置在该类型的设置下很重要。

这是设置的manual entry

PHP 在服务器上的“根目录”。仅在非空时使用。如果 PHP 配置了安全模式,这个目录之外的文件都没有 服务。如果 PHP 不是用 FORCE_REDIRECT 编译的,你应该设置 doc_root 如果您在任何 Web 服务器下将 PHP 作为 CGI 运行(其他 比 IIS)。另一种方法是使用 cgi.force_redirect 如下配置。

【讨论】:

  • 我看到的唯一安全模式是:[SQL]; php.net/sql.safe-mode sql.safe_mode = Off...是这个吗?
  • 如果您使用的是 PHP 5.4 或更高版本(听起来好像是),那么您将根本没有该选项,因为它was removed
猜你喜欢
  • 2016-03-28
  • 2012-09-01
  • 2011-04-09
  • 2014-12-30
  • 1970-01-01
  • 2014-06-15
  • 2014-12-29
  • 2013-04-17
  • 2012-08-04
相关资源
最近更新 更多