我有一台带有ip的服务器:XXX.XXX.XXX.XXX
在我的服务器中,我在/ var / www文件夹中有几个项目:
/var/www/project1
/var/www/project2/trunk/webroot
...
我的000-default.conf是这样的:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
目前我通过以下网址访问它们:
XXX.XXX.XXX.XXX/project1
XXX.XXX.XXX.XXX/project2/trunk/webroot
...
我有一个以我的服务器为目标的域名
domain.com -> XXX.XXX.XXX.XXX
我的目的是为每个项目创建一个子域,每个子域指向项目的目标文件夹:
project1.domain.com -> XXX.XXX.XXX.XXX/project1
project2.domain.com -> XXX.XXX.XXX.XXX/project2/trunk/webroot
(我认为最好的解决方案是XXX.XXX.XXX.XXX/project2直接针对XXX.XXX.XXX.XXX/proyect2/trunk/webroot)
我已经读过,每个项目在apache中都有自己的.conf文件并且分别启用每个站点会很棒。
但我想如果我为每个项目(project1.conf,project2.conf)创建一个VirtualHost *:80,它们将会发生冲突,我不知道该怎么做。
有人能帮助我吗?
问候。
答案 0 :(得分:0)
虚拟主机是可行的方法...为每个域创建一个虚拟主机,指向服务器上要放置网页的文件夹。
Listen 80
<VirtualHost *:80>
DocumentRoot "/www/example1"
ServerName www.example.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/www/example2"
ServerName www.example.org
</VirtualHost>
等...每个域/ DocumentRoot圈定的一个VirtualHost
Soruce:https://httpd.apache.org/docs/current/vhosts/examples.html
#####################编辑我在自己的服务器上测试了它
在没有触及default.conf文件的情况下,我创建了两个新的配置文件
root@raspberrypi:/etc/apache2/sites-available# pwd
/etc/apache2/sites-available
root@raspberrypi:/etc/apache2/sites-available#
请忽略我没有触及的默认文件我刚刚创建了两个名为project1 ....和project2的新文件....
root@raspberrypi:/etc/apache2/sites-available# ls
000-default.conf project1_domain_com.conf
default-ssl.conf project2_domain_com.conf
root@raspberrypi:/etc/apache2/sites-available#
root@raspberrypi:/etc/apache2/sites-available# cat project*
<VirtualHost *:80>
DocumentRoot "/var/www/projects/project1/"
ServerName project1.domain.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/var/www/projects/project2/"
ServerName project2.domain.com
</VirtualHost>
root@raspberrypi:/etc/apache2/sites-available#
启用网站
root@raspberrypi:/etc/apache2/sites-available# a2ensite project1_domain_com.conf
Enabling site project1_domain_com.
To activate the new configuration, you need to run:
service apache2 reload
root@raspberrypi:/etc/apache2/sites-available# a2ensite project2_domain_com.conf
Enabling site project2_domain_com.
To activate the new configuration, you need to run:
service apache2 reload
root@raspberrypi:/etc/apache2/sites-available#
RELOAD APACHE
root@raspberrypi:/etc/apache2/sites-available# /etc/init.d/apache2 reload
[ ok ] Reloading apache2 configuration (via systemctl): apache2.service.
root@raspberrypi:/etc/apache2/sites-available#
################# SUBDOMAIN编辑
例如,我有一台服务器,其IP XXX.XXX.XXX.XXX注册了多个域(现在有15个域)。
每个域都有一个虚拟主机条目以这种方式工作:
domain1.example.com - &gt;加载domain1 web index.html页面(不带/ nothing / else) domain2.example.com - &gt;加载托管在第二个虚拟主机上指定的另一个文件夹上的domain2 web index.html页面。
最后使用a2ensite或a2dissite我启用或禁用该网站作为网络托管服务提供商...
如果您因任何原因需要访问主机domain3.something.com,它会重定向到domain3.something.com/something/diferent ...它应该在您的服务器上使用.htaccess文件及其完全不同的问题:d