有谁知道如何更改Apache服务器的文档根目录?我基本上希望localhost
来自/users/spencer/projects
目录,而不是/var/www
。
我最终搞清楚了。有人建议我更改httpd.conf
文件,但我最终在/etc/apache2/sites-available/default
中找到了一个文件,并将根目录从/var/www
更改为/home/myusername/projects_folder
,这样就可以了。
答案 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>
现在有两个命令可以启用或禁用虚拟主机配置文件,分别为a2ensite
和a2dissite
。现在,由于我们的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 restart
和localhost
答案 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 ,以下工作:
在/etc/apache2/sites-available/
中打开000-default.conf
文件,然后将文档根更改为目录的绝对路径。
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
文件中的文档根以及SSL用途。但据我所知,这不需要让一般的开发环境运行。
答案 7 :(得分:3)
如果找不到http.conf
并按照尼克的方式行事。
使用sudo service apache2 restart
答案 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找到了