2016-07-01 152 views
0

我有一個服務器IP地址:XXX.XXX.XXX.XXXApache的多項目配置

在我的服務器,我在文件夾中的/ var/WWW的幾個項目:

/var/www/project1 
/var/www/project2/trunk/webroot 
... 

我的000-default.conf是這樣的:

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    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文件和enab將每個站點分開。

但我認爲如果我爲每個項目(project1.conf,project2.conf)創建一個VirtualHost *:80,它們將會發生衝突,我不知道該如何去做。

任何人都可以幫助我嗎?

問候。

回答

0

虛擬主機是要走的路......爲每個域創建一個虛擬主機,指向服務器上的文件夾,以在網頁上進行註釋。

Listen 80 
<VirtualHost *:80> 
    DocumentRoot "/www/example1" 
    ServerName www.example.com 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot "/www/example2" 
    ServerName www.example.org 
</VirtualHost> 

等......一個虛擬主機,每個域/ DocumentRoot的convination

Soruce:https://httpd.apache.org/docs/current/vhosts/examples.html

#####################編輯

我已經測試過它自己的服務器上

觸摸內部消除我已經創建了兩個新的配置文件

的default.conf文件 請忽略我沒有碰過他們,我剛剛創建了兩個名爲Project的新文件的默認文件....和項目2 ....
[email protected]:/etc/apache2/sites-available# ls 
000-default.conf project1_domain_com.conf 
default-ssl.conf project2_domain_com.conf 
[email protected]:/etc/apache2/sites-available# 

[email protected]:/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> 
[email protected]:/etc/apache2/sites-available# 

創造有利地盤

[email protected]:/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 
[email protected]:/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 
[email protected]:/etc/apache2/sites-available# 

RELOAD APACHE

[email protected]:/etc/apache2/sites-available# /etc/init.d/apache2 reload 
[ ok ] Reloading apache2 configuration (via systemctl): apache2.service. 
[email protected]:/etc/apache2/sites-available# 
################# SUBDOMAIN EDIT

例如,我有與IP XXX.XXX.XXX.XXX個單個服務器在註冊多個域名(現在15個域名)。

我對這種方式工作的每個域一個虛擬主機條目:

domain1.example.com - >加載網頁域1 index.html頁面(無/無/其他) domain2.example.com - >加載在第二個虛擬主機上指定的另一個文件夾上託管的domain2 web index.html頁面。

最後尤斯a2ensite或a2dissite我啓用或禁用網站的網絡託管服務提供商做...

如果出於任何原因,你需要訪問主機domain3.something.com重定向到domain3.something .COM /事/ diferent ...它應該您的服務器尤斯.htaccess文件和一個完全diferent問題上進行:d

+0

你的情況,你可以創建上的/ etc/apache2的/ sites-新someting.conf可用於每個域。然後爲每個配置文件執行a2ensite someting.conf 。這樣,你把你的conf文件分離,並在虛擬主機更有條理 –

+0

我不明白我在哪裏可以分配「/項目2」訪問XXX.XXX.XXX.XXX/project2 將在服務器名? – Leonis

+0

我有這個在我的000-default.conf: http://pastebin.com/raw/GxYtqiBn ,並試圖重新啓動Apache,我得到了這一點:在使用 *重新啓動Web服務器的Apache2 (98)地址已:AH00072:make_sock:無法綁定到地址[::]:80 ...失敗! * apache2實例在20秒內未啓動。請閱讀日誌文件以發現問題 – Leonis