有谁知道如何更改Apache服务器的文档根目录?我基本上想localhost
来自/users/spencer/projects
目录而不是/var/www
。
编辑
我最终弄清楚了。有人建议我更改httpd.conf
文件,但最终还是在其中找到一个文件,/etc/apache2/sites-available/default
并将根目录从更改为/var/www
,/home/myusername/projects_folder
并且可以正常工作。
有谁知道如何更改Apache服务器的文档根目录?我基本上想localhost
来自/users/spencer/projects
目录而不是/var/www
。
我最终弄清楚了。有人建议我更改httpd.conf
文件,但最终还是在其中找到一个文件,/etc/apache2/sites-available/default
并将根目录从更改为/var/www
,/home/myusername/projects_folder
并且可以正常工作。
Answers:
您需要更改文件中的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等)中。
请注意,这仅适用于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
。
var/www/html
默认根目录。他们实际上是在试图浪费人们的时间吗?:)
You don't have permission to access / on this server.
当我在浏览器中点击localhost:80时,我收到了一个禁止的错误。我需要更改端口吗?
<Directory path_to_directory> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
/etc/apache2/apache2.conf 解决了这个问题
我不得不编辑/etc/apache2/sites-available/default
。这些行与RDL提到的相同。
.conf
结尾,默认情况下具有000-
as前缀”。结果是/etc/apache2/sites-available/000-default.conf
。我尚未对此进行测试,但可能会对某些人有所帮助。
这是针对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
更改目录或从apache2的不同端口下的多个目录运行的正确方法如下:
对于apache2,配置文件位于/etc/apache2
旧版本下,并且不像以前的版本中那样使用单个配置文件,而是被拆分为较小的配置文件,并/etc/apache2/apache2.conf
作为主要配置文件。要从其他目录提供文件,我们需要一个新的virtualhost 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
,因此我们必须通过发出命令来禁用默认配置文件,sudo a2dissite 000-default.conf
并通过以下方式启用我们的virtualhost conf文件:sudo a2ensite example.com.conf
现在,使用command重新启动或重新加载服务器sudo service apache2 restart
。现在阿帕奇提供从目录中的文件example.com
时localhost
的默认端口80
。
的 a2ensite
命令基本上在站点启用目录下创建指向conf文件的符号链接
请勿在此答复所指出的站点启用(或启用*)的Directoy中编辑文件,如https://stackoverflow.com/a/41568701/2532763
现在,如果您需要在其他端口上运行目录,请通过将virtualhost文件编辑为以下内容将端口号从80更改为8080:
<VirtualHost *:8080>
ServerAdmin user@localhost
DocumentRoot /home/ubuntu/work
</VirtualHost>
并在行下方进行编辑/etc/apache2/ports.conf
和添加Listen 8080
Listen 80
现在,我们可以启用在端口80上运行的默认virtualhost conf文件,因为example.com目录使用端口8080,因为 sudo a2ensite 000-default.conf
现在,使用command重新启动或重新加载服务器sudo service apache2 restart
。现在两个目录都可以从localhost
和访问localhost:8080
我正在使用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 *内容。
对于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>
注意:在第一步中,您可能还想出于SSL的目的更改文件中的文档根default-ssl.conf
目录。但是据我所知,这不是运行常规开发环境所必需的。
如果您使用的是Ubuntu 16.04。请更新目录中的000-default.conf / etc / apache2 / sites-available中。
此处-> ServerAdmin webmaster @ localhost DocumentRoot / var / www / html / YourFolder
如果有人安装LAMP
了该/opt
文件夹,则/etc/apache2
则不是您要查找的。
寻找httpd.conf
档案/opt/lampp/etc/httpd.conf
。
更改此文件夹中的行并将其从终端保存。
如果您使用的是Linux Mint(个人观点,从所有发行版中这使我感到高兴),请遵循以下步骤:
1-转到/ etc / apache2 / sites-available并编辑000-default.conf。2-搜索DocumentRoot,例如DocumentRoot / var / www / html,您将更改为各自的目录;3-打开终端并输入:sudo service apache2 restart
编辑-----我意识到在Mint中,您需要/etc/apache2/apache.conf,将/ var / www替换为各自的路径,而不是重新启动服务器(步骤3)。
而已。
适用于Ubuntu 14.04和更高版本。进行任何更改之前,请确保备份以下文件。
1.打开/etc/apache2/apache2.conf
并搜索<Directory /var/www/>
指令,并用替换路径/home/<USERNAME>/public_html
。您可以使用*代替。
2. 从到打开/etc/apache2/sites-available/000-default.conf
并替换DocumentRoot
value属性。也到。/var/www/html
/home/<USERNAME>/public_html
<Directory /var/www/html>
<Directory /home/<USERNAME>/public_html
3.Open /etc/mods-available/php7.1.conf
。查找并注释以下代码
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_flag engine Off
</Directory>
</IfModule>
不要打开 php_admin_flag engine OFF
指令代码上方的注释中提到了原因,请标志。php版本也可以是5.0、7.0或您已安装的任何版本。
在中创建public_html
目录home/<USERNAME>
。
通过执行命令重新启动apache服务sudo service apache2 restart
。
通过在服务器上运行示例脚本进行测试。
如果您(像我一样)通过Google查找此信息:
我在/etc/apache2/sites-available/000-default.conf中找到它