在Mac OS X中更改Apache的Web根目录

23

我的apache无法更改网站根目录,由于某种原因,它指向 /Sites/folder1/folder2 而不是 /Sites 。 我已经配置并更改了我的apache, <Directory“/Users/saad/Sites”> 以及 DocumentRoot /Users/saad/Sites 重新启动了apachectl,但仍然没有变化。


如果您还没有这样做,请尝试在文档根目录中放置一个index.html文件。 - T I
1
这个问题与编程无关,最好在[su]上提问。 - Michael Dautermann
@TomIngram 我添加了 index.html 并重启了 Apache,但没有任何变化。 - saadlulu
10个回答

34

我也遇到了这个问题,需要更改DocumentRoot并将其指向我自定义的目录,用于保存图像文件。

Berkay是正确的,您需要在apache httpd.config文件上进行一些编辑,但除此之外,您还需要进行一个更改,否则WebSharing将无法再次启动。

  1. 使用您喜欢的编辑器打开httpd.config(如果您尚未更改对此文件的权限访问,则可能需要执行此操作)

    • sudo chmod 666 httpd.conf
    • 打开httpd.config并开始编辑。
    • 完成后,将其改回原始的权限访问sudo chmod 644 httpd.conf,然后继续第2步
  2. 查找DocumentRoot "/Library/WebServer/Documents",并将其更改为 DocumentRoot "/Users/leiwang/Sites" 或任何其他您想要的文件夹。

  3. 一个重要的事情是,您需要为指定的文件夹授予读/写权限。

    • sudo chmod -R 747 foldername

希望能对您有所帮助:)


7
我遇到了这个问题:一旦你把Web服务器的根目录更改为默认位置之外的其他位置(/Library/WebServer/Documents),你需要设置虚拟主机,否则localhost将不起作用,而且会出现403 Forbidden错误。您可以参考此链接以获取有关如何设置它的详细信息:http://coolestguidesontheplanet.com/set-virtual-hosts-apache-mac-osx-10-10-yosemite/ 此外,请确保以下行在Web目录的配置文件中,如果您的Max运行OS X 10.10:Require all granted 仅供参考,如果您也遇到此问题,请务必记住这点。

我也遇到了403禁止错误。但是,我通过查看DocumentRoot路径中所有文件夹的权限来解决了这个问题。权限不正确。因此,我按照https://mediatemple.net/community/products/dv/204644980/why-am-i-seeing-a-403-forbidden-error-message中建议的方式,在所有文件夹中执行了chmod 755命令。然后它就可以工作了! - K.K
对我来说,主要的问题是将 <VirtualHost *:80> ServerName localhost DocumentRoot /Library/WebServer/Documents/ </VirtualHost> 添加到 /etc/apache2/extra/httpd-vhosts.conf 文件中。 - Mukesh Chapagain

7

Apache有几个文件名相同的文件httpd.conf

"Official"路径在/usr/local/etc/httpd/httpd.conf中。


在与 /Library/WebServer/Documents 抗争了 12 小时后,我终于看到了这个答案。我的噩梦部分得以解决... - matheszabi

7
在OSX的/etc/apache2/httpd.conf文件中有一个DocumentRoot属性。因此我们可以轻松地像这样更改路径;

DocumentRoot "{您的根路径}"


2

我去了/etc/apache/users/saad.conf,将虚拟主机以"www.x.dev"的形式添加到我的虚拟主机列表顶部。这暂时解决了问题。希望这可以帮到你。


对我也起作用了。我也尝试按照上面提到的编辑httpd.conf,但没有成功。然后我添加了虚拟主机和相同的自定义DocumentRoot到我的/etc/apache/users/aza.conf中。非常顺利地解决了问题。如果有人能够解释一下原因,那就太好了。 - AzaFromKaza

2
我遇到了和你类似的问题,/private/etc/apache2/目录下的httpd.conf文件将DocumentRoot定义为/Library/Webserver/Documents。但是那个目录不起作用!
相反,实际起作用的DocumentRoot是/usr/htdocs!很奇怪!

1

如果这能帮到其他人,看起来Sierra已经为我创建了一个备份文件,位置在:

/etc/apache2/httpd.conf~previous

我能够将旧的配置文件复制到新文件中,重新启动apache,这样就可以正常工作了。

1
尽管我对我的文件夹有权限(并尝试了chmod解决方案),但对我来说它无法工作。
我发现有效的方法是编辑运行htppd conf文件的用户和组:
在httpd.conf文件中更改:
User daemon to User yourMacUsername (you can find that from folder info)
Group daemon to Group staff (this is the default)

保存并重启Apache。

0
如果有人遇到了403禁止访问的错误,可以尝试在httpd.config文件中更新DirectoryIndex。如果你忘记了文件夹中有.php文件,也会出现这种情况。我的配置文件位于此路径:/private/etc/apache2/httpd.conf。这解决了我在macOS Monterey上的问题。
DirectoryIndex index.html index.php

0
以下是在2023年新的mac os ventura中更新文档根目录的步骤。您只需要更新一个文件。
1). 打开/Application/XAMPP/xamppfiles/etc文件夹中的httpd.conf文件,并搜索文本DocumentRoot,您可以找到类似下面所示的内容。
DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs"
<Directory "/Applications/XAMPP/xamppfiles/htdocs">

2) 现在更新两行代码中的文档根路径,如下所示。
DocumentRoot "/Users/Stephen/Projects/Backend/PHP"
<Directory "/Users/Stephen/Projects/Backend/PHP">

3)现在是最重要的一步,搜索文本用户守护进程,你会找到类似下面所示的内容。
User daemon
Group daemon
</IfModule>

现在将名称daemon更改为您操作系统的用户名。
User Stephen
Group daemon
</IfModule>

4) 现在使用xampp控制面板重新启动您的服务器,就这样。
如果phpmyadmin在浏览器中无法打开,则只需清空/Applications/XAMPP/xamppfiles/temp文件夹中的临时文件。 有关更多详细信息,请查看视频链接https://www.youtube.com/watch?v=cWPSBbwmQFE

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接