如何更改apache服务器的根目录?

时间:2011-05-05 01:46:56

标签: linux apache lamp

有谁知道如何更改Apache服务器的文档根目录?我基本上希望localhost来自/users/spencer/projects目录,而不是/var/www

修改

我最终搞清楚了。有人建议我更改httpd.conf文件,但我最终在/etc/apache2/sites-available/default中找到了一个文件,并将根目录从/var/www更改为/home/myusername/projects_folder,这样就可以了。

17 个答案:

答案 0 :(得分:250)

请注意,这仅适用于Ubuntu 14.04 LTS及更新版本。

在我的Ubuntu 14.04 LTS中,文档根目录设置为/var/www/html。它在以下文件中配置:

/etc/apache2/sites-available/000-default.conf

所以只需做一个

sudo nano /etc/apache2/sites-available/000-default.conf

并将以下行更改为您想要的内容:

DocumentRoot /var/www/html

也做一个

sudo nano /etc/apache2/apache2.conf

找到这个

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

并将/var/www/html更改为首选目录

并保存。

保存更改后,只需重启apache2网络服务器即可完成:)

sudo service apache2 restart

<小时/> 如果您更喜欢图形文本编辑器,则只需将sudo nano替换为gksu gedit

答案 1 :(得分:195)

您需要更改DocumentRoot文件中的httpd.conf设置。有可能是/etc/apache2/conf/httpd.conf

之类的东西

使用您喜欢的编辑器(我推荐Vim)并查找DocumentRoot并将其更改为/users/spencer/projects。还要进一步了解一下这样的设置:

<Directory "/var/www">

您还需要更改新目录的引号内容。当用户发出调用它的请求时,这使Apache访问该目录。

现在重启你的apache服务(httpd -k restart),你应该好好去。

编辑:Apache2网站配置文件现在通常保存在/etc/apache2/sites-available/(Debian,Ubuntu等)。

答案 2 :(得分:42)

我必须编辑/etc/apache2/sites-available/default。这些行与RDL提到的相同。

答案 3 :(得分:19)

这是Ubunutu 14.04:

在文件/etc/apache2/apache2.conf中,如果没有目录名,则它应如下所示:

<Directory /home/username>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

并在文件/etc/apache2/sites-available/000-default.conf中,您应该包含自定义目录名称,即www:

DocumentRoot /home/username/www

如果不是如上所述,则在加载服务器时会出现错误: Forbidden You don't have permission to access / on this server

答案 4 :(得分:9)

在apache2的不同端口下更改目录或从多个目录运行的正确方法如下:

对于apache2,配置文件位于/etc/apache2下,并不像旧版本那样使用单个配置文件,而是分成较小的配置文件,/etc/apache2/apache2.conf是主配置文件。要从不同的目录提供文件,我们需要一个新的虚拟主机配置文件。 virtualhost conf文件位于/etc/apache2/sites-available(不要编辑已启用站点的文件)。默认的apache安装使用virtualhost conf文件000-default.conf

首先创建一个新的虚拟主机文件,方法是复制默认安装的apache(在端口80上的localhost上运行的文件)使用的默认虚拟主机文件。转到目录/etc/apache2/sites-available,然后按sudo cp 000-default.conf example.com.conf复制,现在按sudo gedit example.com.conf编辑文件到:

<VirtualHost *:80>
    ServerAdmin example@localhost
    DocumentRoot /home/ubuntu/example.com    
</VirtualHost>

为简洁起见,我删除了上述文件中的非重要行。这里DocumentRoot是提供网站文件的目录的路径,例如index.html

创建您要从中提供文件的目录,例如; mkdir example.com并更改目录的所有者和默认组,例如,如果您的登录用户名为ubuntu,则将权限更改为sudo chown ubuntu:www-data example.com。这将授予对用户ubuntu的完全访问权限,并允许对组www-data进行读取和执行访问。

现在通过发出命令/etc/apache2/apache2.conf编辑apache conf文件sudo gedit apache2.conf并找到行<Directory /var/www/>并在结束标记</Directory>下方,添加以下内容:

<Directory /home/ubuntu/example.com>
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
</Directory>

现在有两个命令可以启用或禁用虚拟主机配置文件,分别为a2ensitea2dissite。现在,由于我们的example.com.conf文件使用默认配置文件(80)使用的相同端口(000-default.conf),我们必须通过发出命令{{1}来禁用默认配置文件并按sudo a2dissite 000-default.conf

启用虚拟主机配置文件

现在使用命令sudo a2ensite example.com.conf重新启动或重新加载服务器。现在,apache在默认端口sudo service apache2 restart上的example.com处的目录localhost中提供文件。

80命令基本上创建了一个指向启用站点的目录下的conf文件的符号链接

不要在启用网站的(或*启用的)directoy中编辑文件,如本回答https://stackoverflow.com/a/41568701/2532763

中所述

更改端口并从不同端口上的多个目录运行:

现在,如果您需要在其他端口上运行该目录,请将虚拟主机文件编辑为:将端口号从80更改为8080:

a2ensite

并修改<VirtualHost *:8080> ServerAdmin user@localhost DocumentRoot /home/ubuntu/work </VirtualHost> 并在/etc/apache2/ports.conf

行下方添加Listen 8080

现在我们可以启用在端口80上运行的默认virtualhost conf文件,因为example.com目录使用端口8080,因为Listen 80

现在使用命令sudo a2ensite 000-default.conf重新启动或重新加载服务器。现在可以从sudo service apache2 restartlocalhost

访问这两个目录

答案 5 :(得分:4)

我正在使用LAMP和 更改文档根文件夹 我已经编辑了默认文件 / etc / apache2 / sites-available 文件夹。 如果你想做同样的事情只需编辑如下

DocumentRoot /home/username/new_root_folder
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/username/new_root_folder>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

如果您在浏览器中输入localhost,它将加载 * / home / username / new_root_folder * 内容。

答案 6 :(得分:4)

对于 Linux Mint 17.3 Cinnamon 64位上的 apache2 ,以下工作:

  1. /etc/apache2/sites-available/中打开000-default.conf文件,然后将文档根更改为目录的绝对路径。

    sudo vim /etc/apache2/sites-available/000-default.conf

  2. /etc/apache2/打开httpd.conf,并添加引用您的目录的<Directory>标记,其中包含与var/www标记完全相同的设置。

    sudo vim /etc/apache2/apache2.conf

    在我的机器上看起来像这样:

  3. <Directory /home/my_user_name/php/>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
    </Directory>
    

    注意:在第一步中,您可能希望更改default-ssl.conf文件中的文档根以及SSL用途。但据我所知,这不需要让一般的开发环境运行。

答案 7 :(得分:3)

如果找不到http.conf并按照尼克的方式行事。

使用sudo service apache2 restart

重启Apache

答案 8 :(得分:2)

如果您使用的是Ubuntu 16.04。 请更新目录中的000-default.conf 的的/ etc / apache2的/位点可用的。

这里 - &GT; ServerAdmin webmaster @ localhost DocumentRoot / var / www / html / YourFolder

答案 9 :(得分:1)

在apache版本2.4.18(Ubuntu)中。

1.转到此文件/etc/apache2/apache2.conf 搜索<Directory /var/www/>并替换到您的目录......

2.go to /etc/apache2/sites-available/000-default.conf 搜索DocumentRoot /var/www/html并替换为您的DocumentRoot ....

答案 10 :(得分:1)

我已将/var/www作为指向所需目录的软链接(例如/users/username/projects),之后情况还不错。

但是,当然,原始/var/www需要删除 - 或重命名。

答案 11 :(得分:0)

如果有人在LAMP文件夹中安装了/opt,那么/etc/apache2就不是您想要的了。

httpd.conf中查找/opt/lampp/etc/httpd.conf个文件。

更改此文件夹中的行并将其从终端保存。

答案 12 :(得分:0)

在RedHat 7.0中:/etc/httpd/conf/httpd.conf

答案 13 :(得分:0)

如果您使用Linux Mint(个人意见,来自所有发行版,这一点让我感到高兴),请按照以下步骤操作:

1-转到/ etc / apache2 / sites-available并编辑000-default.conf 2-搜索DocumentRoot,例如DocumentRoot / var / www / html,您将更改为相应的目录; 3-打开终端并输入:sudo service apache2 restart

EDITED ----- 我意识到在Mint中你需要/etc/apache2/apache.conf,将/ var / www替换为相应的路径,而不是重启服务器(步骤3)。

那就是它。

答案 14 :(得分:0)

适用于 Ubuntu 14.04 和更高版本。进行任何更改之前,请确保备份以下文件。

1。打开/etc/apache2/apache2.conf,然后搜索<Directory /var/www/>指令,并用/home/<USERNAME>/public_html替换路径。您可以使用*代替。

2。打开/etc/apache2/sites-available/000-default.conf,并将DocumentRoot的{​​{1}}值属性替换为/var/www/html。 也是/home/<USERNAME>/public_html<Directory /var/www/html>

3。打开<Directory /home/<USERNAME>/public_html。查找并注释以下代码

/etc/mods-available/php7.1.conf

请勿打开<IfModule mod_userdir.c> <Directory /home/*/public_html> php_admin_flag engine Off </Directory> </IfModule> 标志,因为在指令代码上方的注释中提到了原因。 php版本也可以是5.0、7.0或您已安装的任何版本。

php_admin_flag engine OFF中创建public_html目录。

通过执行命令home/<USERNAME>重新启动apache服务。

通过在服务器上运行示例脚本进行测试。

答案 15 :(得分:-1)

您可以创建Alias,而不是更改Web服务器的默认目录。

因此,您必须创建两个文件:

  • /etc/apache2/sites-available/
  • 中的一个
  • /etc/apache2/sites-enabled/
  • 中的一个

将它们称为example.conf,并在两个文件中插入 Alias <where you want to access (eg. /example)> "<your files directory (eg. /home/user/host/example)>"

然后您应该可以使用//localhost/example访问它。

编辑:

也许我忘了提一些命令,因为我忘了它们:P
或者您必须编辑您尝试访问的文件夹/文件的授权。

答案 16 :(得分:-2)

如果您(像我一样)通过Google发现此帖:

我在/etc/apache2/sites-available/000-default.conf找到了