这里有一个与我的开发服务器配置(安装了 LAMP 的 Ubuntu 服务器)相关的问题
我有一个指向我的服务器的子域名,例如http://sudomain.domain.com。
现在我需要在我的服务器上创建一些子域,每个域都指向服务器上的单独文件夹 /var/www/proj1 应该通过访问来加载http://proj1.subdomain.domain.com, http://proj2.subdomain.domain.com
有人能帮我解决这个问题吗?任何帮助我都会很感激。
答案1
您需要的是 Apache VirtualHost 指令。请参阅Apache 文档还有一些例子。
基本上,您想要在 Ubuntu 中执行的操作是确保您要使用的端口(通常为:80)已在 /etc/apache2/ports.conf 中启用,如下所示:
NameVirtualHost *:80
Listen 80
接下来,您必须在 /etc/apache2/sites-available 中创建一个新的 conf 文件。我建议将其命名为 proj1.conf 或 proj1.mydomain.conf。
您可以在那里按如下方式配置 VirtualHost:
<VirtualHost *:80>
ServerName proj1.subdomain.domain.com
DocumentRoot /var/www/proj1
ServerAdmin [email protected]
# Write a seperate log per Virtualhost
CustomLog /var/log/apache2/proj1.subdomain.access_log combined
ErrorLog /var/log/apache2/proj1.subdomain.error_log
# Maybe you want to put some restrictions on the directory
<Directory /var/www/proj1>
Options -Indexes +FollowSymLinks + Includes
AllowOverride All
# Restrict Access to certain IP's
Order Deny,Allow
Deny from All
Allow from 127.0.0.1 IP IP IP
Satisfy ALL
</Directory>
</VirtualHost>
查阅 Apache 手册来了解可以使用该指令做什么。
要启用此站点,请将其链接到 /etc/apache2/sites-enabled
ln -s /etc/apache2/sites-available/proj1.conf /etc/apache2/sites-enabled/proj1
现在您要做的就是确保您的配置有效,然后重新启动 Apache:
apache2ctl configtest && /etc/init.d/apache2 restart
当然,您必须在 DNS 中设置子域名,以使其指向该服务器。