2016-08-26 9 views
0

私は現在Apacheの設定をしようとしています。 私は1つのIP(例:10.10.10.10)と1つのドメイン(例:www.mydomain.com)を持っています。Apache同じドメインのマルチ仮想ホスト

このサーバは現在2つのサイトをホスティングしている各サイトは、彼自身のconfとのphp.iniで彼自身のApacheインスタンスを持っています

/appli/projects/project1/apache_2.4/conf/project1.conf =>サイト1

/appli/projects/project2/apache_2.4/conf/project2.conf =>サイト2

project1.confは(SSL用の443と同じ)そのように設定されている:

<VirtualHost 10.10.10.10:80> DocumentRoot /appli/projects/project1/apache_2.4/htdocs/project1folder/ ServerName mydomain.com </virtualHost>

project2.confは(SSLのための453と同じ)そのように設定されている:私は "mydomain.com" 私が "サイト1" が、私のつもりですし、接続していますので、

<VirtualHost 10.10.10.10:90> DocumentRoot /appli/projects/project2/apache_2.4/htdocs/project2folder/ ServerName mydomain.com </virtualHost>

を本当に良いではない「サイト2」...

私はそのような何かを持っていると思いますしアクセスするためのmydomain.com:453をヒットする必要があります。

mydomain.com/site1 =>「サイト1」(またはsite1.mydomain.com

mydomain.com/site2 => "サイト2"(またはsite2.mydomain.com

そして、私は "サイト1" を押すmydomain.comを維持したいと思います。

残念ながら、各サイトに独自のApacheインスタンスがあるため、設定方法はわかりません。

最後に、マルチApacheインスタンス間でPHP(Apache)SESSIONを共有することが可能かどうか、またはドメイン間で情報を共有するためにCOOKIESを使用する必要があるかどうかを知りたいと思います。

本当に明確かどうかわかりませんが、もっと情報が必要かどうか尋ねてください。

ありがとうございます。

+0

あなたは何を達成しようとしていますか? 'mydomain.com/site1'と' mydomain.com/site2'が必要な場合は、 'mydomain.com'を2つの異なるフォルダに' site1'と 'site2'を含むフォルダに向けてください。複数のインスタンスや複数の仮想ホストは必要ありませんか? –

+0

Btw ..あなたは本当に 'apache'以外のすべてのタグを削除するべきです..この質問は純粋にapacheの設定です...他には何もありません... –

+0

私は他のタグを削除しました。それはまた、他の事を心配するかもしれないと思った。 'Site 1'と' Site 2'を同じHtdocsの中に入れるべきですか?私はそれが影響を受けていない他の1つがダウンしていた場合は、複数のApacheインスタンスを使用するスマートだったように感じた... – Dabeliuteef

答えて

1

私の推薦はこれです:

ファイル構造:

htdocs/ 
    site1 
     ...files... 
    site2 
     ...files... 

Apacheのバーチャルホスト:

<VirtualHost 10.10.10.10:80> 
    DocumentRoot /appli/projects/project1/apache_2.4/htdocs/ 
    ServerName example.com 
</virtualHost> 

...そしては、SSLのために同じことを行いますvhost。

http://example.com/site1http://example.com/site2をhttpsに使用できます。

異なるポート(デフォルト80および443以外のものを使用する場合は、サイトにアクセスできるように明示的にポート名を書くか、リバースプロキシを設定する必要があります。。サイトごとに)あなたも、あなたのバーチャルホストにsite1site2のための特定のルールを定義することができます

設定:

<VirtualHost 10.10.10.10:80> 
    DocumentRoot /appli/projects/project1/apache_2.4/htdocs/ 
    ServerName example.com 

    <Directory /appli/projects/project1/apache_2.4/htdocs/site1/> 
     # Some specific vhost config... 
    </Directory> 

    <Directory /appli/projects/project1/apache_2.4/htdocs/site2/> 
     # Some specific vhost config... 
    </Directory> 

</virtualHost> 

site1.example.comsite2.example.comのような異なるサブドメインが必要な場合は、httpをポート80、httpsをポート443として、フォルダを直接指す異なる仮想ホストを作成してください。

httpsのマルチドメイン証明書またはワイルドカード証明書が必要です(2つの異なるホスト名であるため)。またはLet's Encryptをインストールすることもできます。

+0

あなたのソリューションでもっとクリーンなようです。すべてのサイト間で 'SESSIONS'や' COOKIES'を共有できますか? また、 'www.exemple.com'のようなものをログインページ(' www.exemple.com/login.php'のようなもの)に行き、 'www.exemple.com/site1/接続後のindex.php'もし誰かが 'www.exemple.com/site1'や' '/ site2'にログオンせずにアクセスしようとすると、' www.exemple.com/login.php'にリダイレクトされます。 – Dabeliuteef

+0

はい、うまくいくはずです。 –

+0

ニースはうまくいきました、ありがとうございました;) – Dabeliuteef

関連する問題