Apache多项目配置

时间:2016-07-01 09:45:46

标签: linux apache subdomain

我有一台带有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,它们将会发生冲突,我不知道该怎么做。

有人能帮助我吗?

问候。

1 个答案:

答案 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