我一直在寻找有关如何做到的文章,但我找到了任何详细而直接的指示.我知道有很多与此有关的信息,但也许我只是不寻找合适的东西.
在我的域名的控制面板中,我添加blog.domain.com了转到我的网络服务器的IP地址.但是,在Apache的配置中,我希望能够指向blog.domain.com某个文件夹.
我需要修改哪个文件以及需要添加哪些文件?
你在找NameVirtualHost.我一直都在使用它,效果很好!
目前尚不清楚您使用的操作系统,但通常您需要先激活NameVirtualHost所需的端口.我假设您将使用端口80,因此在Apache配置中找到此行并设置如下:
NameVirtualHost *:80
Run Code Online (Sandbox Code Playgroud)
确保您的Apache配置设置为列表到端口80.应该是这种情况,但在此处添加以供参考:
Listen 80
Run Code Online (Sandbox Code Playgroud)
那么对于你的子域,这就是神奇发生的地方.同样,我只是在做基础知识,因此请根据您的服务器设置进行调整:
<VirtualHost *:80>
ServerName blog.domain.com
ServerAlias blog.domain.com
DocumentRoot /var/www/blog.domain.com
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
关键是ServerName和通配符VirtualHost.这基本上说,"好吧,我们正在NameVirtualHost端口80 上使用,这个配置是服务器名称blog.domain.com所以我将关注此配置中的所有选项并仅应用它们blog.domain.com.而DocumentRoot应该是我在这个配置指示."
编辑:根据下面的原始海报评论添加其他建议.
首先,不要/etc/apache2/sites-available/default以任何方式进行编辑.而是为您的新子域创建一个新的配置文件.这使得管理更容易.我假设您需要为我的示例运行sudo和编辑nano:
sudo nano /etc/apache2/sites-available/blog.domain.com.conf
Run Code Online (Sandbox Code Playgroud)
并将VirtualHost我上面的内容添加到该新blog.domain.com.conf文件中.当然要确保你的VirtualHost指令符合你的要求; 我只是一个光秃秃的例子.
现在,如果这样做了,你需要从创建符号链接sites-available到sites-enabled像这样:
sudo ln -s /etc/apache2/sites-available/blog.domain.com.conf /etc/apache2/sites-enabled/blog.domain.com.conf
Run Code Online (Sandbox Code Playgroud)
好的,这一切都完成了吗?由于您似乎有类似我所使用的Ubuntu 12.04服务器的Apache2配置布局,请进入此文件以查看是否NameVirtualHost已设置:
sudo nano /etc/apache2/ports.conf
Run Code Online (Sandbox Code Playgroud)
您应该看到两行如下:
NameVirtualHost *:80
Listen 80
Run Code Online (Sandbox Code Playgroud)
好的,一切都准备好了?现在,重启Apache&你应该设置!
如果要测试,请在文档根目录中为包含该行的子域创建一个测试文件; 我假设你可以使用PHP:
<?php
echo $_SERVER['SERVER_NAME'];
?>
Run Code Online (Sandbox Code Playgroud)
如果一切正常,它应该回显为该目录设置的主机的子域: blog.domain.com
| 归档时间: |
|
| 查看次数: |
184 次 |
| 最近记录: |