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

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

编辑

我终于搞清楚了。 有人build议我更改httpd.conf文件,但是我最终在/etc/apache2/sites-available/defaultfind了一个文件,并将根目录从/var/www更改为/home/myusername/projects_folder并且工作正常。

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

使用你最喜欢的编辑器(我推荐Vim )并查找DocumentRoot ,并将其更改为/users/spencer/projects 。 再看下去,看起来像这样的设置:

 <Directory "/var/www"> 

您还将要更改引号中的内容到您的新目录。 当用户发出调用请求时,这使得Apache可以从该目录读取数据。

现在重新启动你的Apache服务( httpd -k restart ),你应该很好。

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

请注意,这只适用于Ubuntu 14.04 LTS和更新的版本。

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

 /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 

并find这个

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

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

并保存。

保存更改后,只需重新启动apache2networking服务器即可完成

 sudo service apache2 restart 

如果你喜欢graphics化的文本编辑器,你可以用gksu geditreplacesudo nano

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

这是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

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

  1. /etc/apache2/sites-available/打开000-default.conf文件,并将Document Root更改为目录的绝对path。

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

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

    sudo vim /etc/apache2/apache2.conf

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


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

注意:在第一步中,您可能希望更改default-ssl.conf文件中的Document Root以及SSL目的。 但据我所知,这并不是要求运行一般的开发环境。

我正在使用LAMP,并且要更改Document Root文件夹,我编辑了默认文件,它位于/ 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> 

在此之后,如果您在浏览器中inputlocalhost,则会加载* / home / username / new_root_folder *内容。

如果你找不到http.conf并按照Nick的方式。

使用sudo service apache2 restart启动Apache

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

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

通过复制缺省安装的apache(在端口80上运行在本地主机上的缺省安装)使用的默认虚拟主机文件来创build新的虚拟主机文件。 转到目录/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> 

为了简洁起见,我从上面的文件中删除了非重要的行。

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

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

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

现在有两个命令来启用或禁用虚拟主机configuration文件,分别是a2ensitea2dissite 。 现在,因为我们的example.com.conf文件使用与默认configuration文件( 000-default.conf )相同的端口( 80 ),所以我们必须通过发出命令sudo a2dissite 000-default.conf来禁用默认configuration文件并通过sudo a2ensite example.com.conf启用我们的虚拟主机configuration文件

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

a2ensite命令基本上在站点启用的目录下创build一个到conf文件的符号链接

不要编辑启用了站点的文件(或* -enabled)directoy,正如在这个答案中指出的那样https://stackoverflow.com/a/41568701/2532763

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

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

 <VirtualHost *:8080> ServerAdmin user@localhost DocumentRoot /home/ubuntu/work </VirtualHost> 

编辑/etc/apache2/ports.conf并在Listen 80下面添加Listen 8080

现在,我们可以启用在端口80上运行的默认虚拟主机conf文件,因为example.com目录使用端口8080,如sudo a2ensite 000-default.conf

现在使用命令sudo service apache2 restart启动或重新加载服务器。 现在可以从localhostlocalhost:8080访问这两个目录

如果有人在/opt文件夹中安装了LAMP ,那么/etc/apache2不是你正在寻找的。

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

更改此文件夹中的行并从terminal保存。

在Apache版本2.4.18(Ubuntu)。

1.go到这个文件/etc/apache2/apache2.confsearch<Directory /var/www/>并replace到你的目录……

2.go到/etc/apache2/sites-available/000-default.confsearchDocumentRoot /var/www/html并replace为您的DocumentRoot ….

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

我已经使得/var/www成为所需目录的软连接(例如/users/username/projects ),而且之后的事情都很好。

然而,自然,原始的/var/www需要被删除 – 或重新命名。

如果你使用的是Linux Mint(个人认为,所有的发行版都让我高兴),请按照下面的步骤操作:

1-进入/ etc / apache2 / sites-available并编辑000-default.conf 2-searchDocumentRoot,例如DocumentRoot / var / www / html更改到各自的目录; 3-打开terminal,input:sudo service apache2 restart

编辑—–我意识到,在Mint你去/etc/apache2/apache.conf,replace/ var / www到你的path,比重新启动服务器(步骤3)。

而已。

如果你是(像我)通过谷歌find这个职位:

我在/etc/apache2/sites-available/000-default.conffind它