如何更改apache服务器的根目录?
有谁知道如何更改Apache服务器的文档根目录? 我基本上希望localhost
来自/users/spencer/projects
目录而不是/var/www
。
编辑
我终于搞清楚了。 有人build议我更改httpd.conf
文件,但是我最终在/etc/apache2/sites-available/default
find了一个文件,并将根目录从/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 gedit
replacesudo 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位以下作品:
-
在
/etc/apache2/sites-available/
打开000-default.conf
文件,并将Document Root更改为目录的绝对path。sudo vim /etc/apache2/sites-available/000-default.conf
-
在
/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文件,分别是a2ensite
和a2dissite
。 现在,因为我们的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
启动或重新加载服务器。 现在可以从localhost
和localhost: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它