【发布时间】:2011-08-12 04:29:30
【问题描述】:
我想在apache2中创建一个虚拟主机,但是我希望它把源文件放在/var/www文件夹之外,即我需要在配置文件中包含另一个文档根目录,但是我通过编辑实现了它apache/sites-available/default 文件,但我知道它不是正确的实现方式,有人可以提出正确的实现方式吗?
感谢和问候,
巴拉
【问题讨论】:
我想在apache2中创建一个虚拟主机,但是我希望它把源文件放在/var/www文件夹之外,即我需要在配置文件中包含另一个文档根目录,但是我通过编辑实现了它apache/sites-available/default 文件,但我知道它不是正确的实现方式,有人可以提出正确的实现方式吗?
感谢和问候,
巴拉
【问题讨论】:
您可以在sites-available 文件夹中创建一个新文件(例如myvirtualhost),然后在sites-enabled 中创建一个符号链接。文件和符号链接可以有任何名称。
在新文件中创建一个新的虚拟主机定义:
<VirtualHost *:80>
DocumentRoot /path/to/your/webapplication
ServerName abc.local
</VirtualHost>
如果您仅在本地部署应用程序以进行测试,则将服务器名称设置为 .local 域(例如 abc.local)就足够了,在这种情况下,您应该编辑 /etc/hosts 文件并添加一个新行,例如。
127.0.0.1 abc.local
如果您想让新的虚拟主机在互联网上可用,您需要确保您已向您的提供商注册了一个有效的 DNS 名称(例如 webapplication.mydomain.com)。
基本上就是这样。但是,您可能希望在虚拟主机定义中添加一些指令来控制对资源的访问。
【讨论】:
您可以转到您的 httpd.conf 文件(位于 conf 目录中的 apache 配置文件)。然后找到一行写着:
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
然后像这样取消注释第二行:
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
转到同样位于 conf 文件夹中的“额外”文件夹。您将看到名为“httpd-vhosts.conf”的文件
编辑虚拟主机示例中的文件:
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.localhost
DocumentRoot "...full path to you new root folder for this site...."
ServerName yourwebsite.com
ServerAlias www.yourwebsite.com
ErrorLog "logs/newpath.error.log"
CustomLog "logs/newpath.access.log" common
</VirtualHost>
但这是非常简单的解决方案,请阅读更多关于虚拟主机的内容,但它应该为您指明正确的方向
【讨论】: