将Apache文档根文件夹更改为辅助硬盘驱动器


28

我为服务器PC安装了ubuntu 12.04服务器版本。我已经安装了灯泡服务器。我需要将var / www位置更改为我的辅助硬盘位置。我在gedit中配置了很多时间/ etc / apache2 / sites-available / default这是我的代码

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    #DocumentRoot /var/www
    DocumentRoot /media/myserver/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    #<Directory /var/www/>
        <Directory /media/myserver/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

并且也使用了

sudo chown -R var/www /media/myserver/

chmod -R 755 /media/myserver/

仍然我无法连接我的/ media / myserver并且我的浏览器显示以下消息

Forbidden

You don't have permission to access / on this server.

请告诉任何人如何在我的var / www上挂载myserver,谢谢


第二个驱动器是否已格式化并安装到/ media / myserver目录?您是否为该驱动器添加了fstab条目?
达米安2014年

您是否检查过文档根目录上的尾部斜杠是否是问题,请注意在其注释处没有一个斜杠,但在编辑时存在。
克里斯

您是否尝试过更改apache2.conf文件?
Golden_flash

Answers:


40

您将必须编辑apache2.conf000-default.conf更改apache的文档根目录。

Apache服务器安装在上var/www/html。这是apache的默认根目录。

更改Apache的根目录或将项目移至/var/www/html

  1. 要更改Apache的根目录,请运行:

    cd /etc/apache2/sites-available
    
  2. 然后000-default.conf使用以下命令打开文件:

    nano 000-default.conf
    
  3. 编辑DocumentRoot选项:

    DocumentRoot /path/to/my/project
    
  4. 然后重新启动apache服务器:

    sudo service apache2 restart
    

如果您Forbidden You don't have permission to access / on this server在更改apache的根之后得到了,请按照以下步骤操作

  1. 找到apache2.conf位于/etc/apache2并使用以下方法打开它:

    nano apache2.conf
    
  2. 使用Ctrl+ W搜索目录(应该在第153行中)

  3. 它应该看起来像这样

    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all denied
    </Directory>
    
  4. 更改为

    <Directory />
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
    
  5. 重新启动Apache

    sudo service apache2 restart
    

我制作了一个脚本,可在单个命令中更改apache根目录。您可以在我的github上找到它。


对我来说这是种工作,但我必须补充<Directory /path/to/my/project>Options Indexes FollowSymLinks AllowOverride All Require all denied </Directory>。在/etc/apache2/apahce2.conf重新启动apache2服务之前。
r0ng

19

也许有点晚了。但是还是

您应该在/ etc / apache2下的apache.conf中编辑目录权限。

搜索此

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

并在其下添加此代码,从而可以访问您的目录

 <Directory /media/myserver/>
            Options Indexes FollowSymLinks
            AllowOverride None
            Require all granted
    </Directory>

3

只需在激活的配置中更改文档根目录。/etc/apache2/sites-enabled/000-default 然后确保重新加载您的Apache。

所以尝试这个:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /media/myserver/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /media/myserver/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

然后应给予适当的许可,如下所示:

sudo adduser <username> www-data
sudo chown -R www-data:www-data /media/myserver/
sudo chmod -R g+rw /media/myserver/

是的,我的朋友,我已经做到了。看到上面的代码,我注释了默认文档根目录并插入了新文档根目录。在apache2之后停止并启动。它没有用。这是403错误,并显示权限访问被拒绝,我的浏览器
凯文-Dhinesh babu 2013年

你看过我最后的编辑吗?
2013年

是的,我看到了。仍然表明您没有访问此服务器上的权限
Kevin-Dhinesh babu

2

作为一种快速的解决方法(安全快捷),可以将外部硬盘驱动器的安装点设置为默认的根目录(默认为/ var / www)。

将安装点分配到现有目录是安全的,但是除非卸载驱动程序,否则无法访问旧内容。

要了解更多如何创建安装点的信息,请参考


根据这个想法,我将使用挂载某些文件夹,bindfs如此处所述:askubuntu.com/a/1024308/566421
pa4080

1

sudo gedit etc/apache2/apache2.conf 添加此选项索引FollowSymLinks MultiViews AllowOverride无顺序允许,全部拒绝

在虚拟配置中:/etc/apache2/sites-available/site.conf

ServerAdmin anilrmg@localhost.com
ServerName anilrmg.localhost.com
ServerAlias www.anilrmg.localhost.com
DocumentRoot /home/anilrmg/projects/code/anilrmg

sudo a2dissite 000-default.conf


1

对于使用VirtualBox来宾添加并获得you don't have permission to access /on this server上述所有内容的用户:

如果您尝试将Apache文档的根文件夹设置为VirtualBox共享文件夹,并且您尝试了以上所有操作,但没有帮助,则需要执行另一步。

简而言之,解决方案是将用户“ www-data”添加到组“ vboxsf”:

sudo usermod -a -G vboxsf www-data

您不能更改VirtualBox共享文件夹的所有者和/或组,但是上述解决方案对我来说效果很好。


1

我也遇到了同样的问题,可以解决!

您需要做的是

  1. 您修改apache2.conf。交换/var/www/到您的路径: <Directory /your/path/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>

  2. 修改000-default.conf:

    DocumentRoot /your/path/

  3. 从文件管理器或终端更改目录的所有权给自己(例如sudo chown pi:path),否则,您将获得“您无权访问此服务器上的/”。错误信息。

就这样。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.