apache - 对Apache'文档根目录'的MAMP更改无效

标签 apache mamp document-root phpinfo

我寻求帮助,以查找MAMP为什么无法影响对Apache“文档根目录”的更改,并解决此问题。原始申请文件的第二次编辑包含大量其他信息,可帮助您识别解决方案。

Apache最近停止响应Apache httpd.conf的“主”服务器配置部分中“ DocumentRoot”指令中的更改。 Apache继续运行良好,但仍然停留在“ DocumentRoot”的一个先前设置上。我非常重视您的帮助,以查找并解决此问题的根源。

我在装有Lion的2011年初MacBookPro上运行Apache 2.0.64。为了方便起见,我在MAMP 2.0.5(包括Apache 2.0.64)中进行工作。我一直在开发多个网站,这些网站位于不同路径下的不同目录中。要在这些路径和目录之间切换本地主机,我通常使用MAMP(而非MAMP Pro)GUI操作序列
'首选项...'>'Apache'>'文档根目录'>'选择...'
在两条路径之间切换。

一个多星期前,此GUI开关后面的某些设置或过程陷入了一条路径(为简单起见,称为“路径p”)。 GUI本身没有卡住;它显示“文档根目录”,就好像它在路径p和路径q之间来回切换。但是,只有路径p下的站点才能在localhost / path上运行。如果我将“文档根目录”的MAMP设置切换到路径q,然后尝试运行localhost站点q,即使q在问题首次出现之前运行良好,q也不会运行。但是通过路径p访问的任何站点仍将运行。

在MAMP GUI的后面,“ phpinfo”报告“ DOCUMENT_ROOT”在phpinfo的“ Apache Environment”部分以及“ PHP Variables”部分的“ _SERVER(“ DOCUMENT_ROOT”)”中已更改为“ path q”。当我更改MAMP的“ Document_Root”设置时,可以使用TextWrangler实时查看在“ httpd.conf”中更新的设置。

Mac的“活动监视器”显示了七个正在运行的“ httpd”进程。使用“检查”显示所有它们都在MAMP中运行。 Mac对“ httpd.conf”的“ Spotlight”搜索仅显示上面讨论的一个“ httpd.conf”文件。

通过MAMP / logs / apache_error.log访问的相关错误消息始终(时间戳除外):

-恢复正常运行
[2012年4月22日星期日12:34:22] [通知]抓住了SIGTERM,并关闭了
[2012年4月22日星期日12:34:24] [公告]摘要:为摘要身份验证生成机密...
[2012年4月22日星期日12:34:24] [注意]摘要:已完成
[2012年4月22日12:34:24] [注意] Apache / 2.2.21(Unix)mod_ssl / 2.2.21 OpenSSL / 0.9.8r DAV / 2 PHP / 5.3.6已配置-恢复正常运行

如果我理解正确,则Apache的运行版本是2.2.21,而不是Apache 2.0.64,MAMP的FAQ页面(显示为通过GUI的“打开开始页面”按钮打开的Web屏幕上的选项卡显示)是已安装的版本。

控制台常规错误日志中的相应错误消息是:

12/4/21 9:40:27.746 PM [0x0-0xcd0cd] .de.appsolute.MAMP:120421 21:40:27 pid文件/Applications/MAMP/tmp/mysql/mysql.pid结束的mysqld_safe mysqld
12/4/21 9:40:28.653 PM [0x0-0xcd0cd] .de.appsolute.MAMP:警告:DocumentRoot [/Applications/MAMP/Library/docs/dummy-host2.example.com]不存在
12/4/21 9:40:28.721 PM [0x0-0xcd0cd] .de.appsolute.MAMP:120421 21:40:28 mysqld_safe登录到'/Applications/MAMP/logs/mysql_error_log.err'。
12/4/21 9:40:28.871 PM [0x0-0xcd0cd] .de.appsolute.MAMP:120421 21:40:28 mysqld_safe使用/ Applications / MAMP / db / mysql中的数据库启动mysqld守护程序
12/4/21 9:40:29.799 PM [0x0-0xcd0cd] .de.appsolute.MAMP:警告:DocumentRoot [/Applications/MAMP/Library/docs/dummy-host2.example.com]不存在

除日期和时间外,对于通过MAMP更改为“ DocumentRoot”的所有消息,这些消息均保持不变。我无法识别这些消息中的任何有用信息。

在此问题发生之前不久,我重新安装了MAMP,以解决MySQL服务器的问题。在尝试在MAMP中调试MySQL服务器时,我和一位更熟练的计算机科学家还安装了MacPorts。

MAMP似乎实际上正在打开MacPorts可能已经安装的Apache 2.2.21版本,而不是MAMP 2.0.5附带的2.0.64版本。但是MAMP的这一部分仍然像Apache 2.0.64是可运行的版本一样起作用。如果是这样,那么尽管我对MAMP或Apache的工作方式还不了解,但可能会很快找到解决方案。

我已经广泛搜索了在线建议,测试了为多个用户设置WordPress格式的建议,并且喜欢更改“ etc / hosts”,现在将其恢复为默认值。大多数相关的网站都使用XHTML,PHP和CSS进行了硬编码。一些使用WordPress。

在我将此问题发布到“堆栈溢出”(问题#10252067)的第二天后,仍未收到响应,我将此查询的早期版本附加到了有关PHP无法正常工作的MAMP论坛线程中。该帖子尚未发布,可能正在审查中。当我更仔细地研究该问题时,在我看来,与httpd.conf交互的MAMP界面部分可能正在按预期方式工作,并且该问题可能与httpd如何读取和解释httpd中的设置有关。 conf,或者MAMP如何在几种可能的Apache版本之间进行识别和交互。

非常感谢您的指导,以解决无法实现Apache'DocumentRoot'设置的问题。

最佳答案

出现相同的症状并通过发现以下行未出现来解决了该问题

/Applications/MAMP/conf/apache/httpd.conf文件:

# Virtual hosts
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf


这是因为在我之前使用我的计算机的人将MAMP设置为适用于Zend Framework 2,并设置了一个覆盖DocumentRoot设置的虚拟主机。我重新注释了这一行,现在首选项中的DocumentRoot可以按预期工作。

关于apache - 对Apache'文档根目录'的MAMP更改无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10252067/

相关文章:

apache - 单个 DynDNS 名称背后有多个子域和服务器?

java - 如何在 Java 中生成没有空格和换行符的 XML 签名?

MySQL 无法在 MAMP 中启动

php - 从根目录检查文件是否存在

apache - 如果 httpd.conf 中的 DocumentRoot 被注释掉,httpd 从哪里提供内容?

apache - 针对 ARM 问题交叉编译 Apache

php - Symfony 中的 ResponseListener 导致在开发模式下来自 apache 的重复 header 'Content-Type'

mysql - 在端口 80 上运行 mamp 时建立数据库连接时出错

ubuntu - DocumentRoot 没有改变,从 Apache2 2.2.22 更新到 2.4.7

apache - 使用 .htaccess 的 URL 重定向