2016-07-01 8 views
0

私はIPを使用してサーバーがあります。Apacheのマルチプロジェクト構成

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

:私のサーバーでXXX.XXX.XXX.XXX

を、私は、フォルダの/ var/WWWにおけるいくつかのプロジェクトを持っています私の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> 

現在、私は、次のURLを介してそれらにアクセス:

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

バーチャルホストは、ウェブページにアクセスするサーバー上のフォルダを指す各ドメイン用の仮想ホストを1つ作成します。

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

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

等...

Soruce各ドメイン/のDocumentRoot convinationための一つのVirtualHost:https://httpd.apache.org/docs/current/vhosts/examples.html

##################### EDIT

私は自分のサーバー上でそれをテストしている

私は2つの新しい設定ファイル

を作成しているは、default.confファイルに触れるWhithout

[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

を 私はちょうどProject1の名前の2つの新しいファイルを作成している私はそれらに触れていないデフォルトのファイルを無視してください....とのProject2 ....
[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# 

ENABLING SITES

[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# 
#################サブドメインEDIT

は、例えば、私がIP XXX.XXX.XXX.XXX番目の単一のサーバーを持っています複数のドメインが登録されています(現在15ドメイン)。

私はこのように動作する各ドメインに1つの仮想ホストエントリがあります。

domain1.example.com - >(/何も/他なし)のdomain1ウェブindex.htmlページをロード domain2.example.com - > 2番目の仮想ホストでexpecified別のフォルダにホストされているdomain2 web index.htmlページを読み込みます。

そして最後にa2ensiteまたはa2dissiteをウッシング私は、Webホスティングプロバイダとしてのウェブサイトを有効または無効にしない...

もしあなたがホストにアクセスdomain3.something.comそれはdomain3.somethingにリダイレクトすることを必要とする何らかの理由あなたの場合はD

+0

あなたは、/ etc/apache2の/ sites-に新しいsometing.confを作成することができます.COM// diferent何か...それは、.htaccessファイルとその完全diferent質問をウッシングサーバー上で実行する必要があります各ドメインで利用可能です。次に、各設定ファイルに対してa2ensite someting.conf を実行します。私はXXX.XXX.XXX.XXX/project2 にアクセスするためのVirtualHostで「/ Project2のは、」サーバー名になります割り当てることができる場所、あなたのconfファイル分離し、より組織 –

+0

を保つそのように私は理解していませんか? – Leonis

+0

は、私は私の000-は、default.confでこれを持っている: http://pastebin.com/raw/GxYtqiBn とApacheを再起動しようと、私はこれを得た:Webサーバapache2の (98)を再起動 *が既に使用中アドレス:AH00072:make_sock:アドレス[::]にバインドできませんでした:80 ...失敗します! * apache2インスタンスが20秒以内に起動しませんでした。問題を発見するためにログファイルをお読みください – Leonis

関連する問題