Ubuntu Server 12.04でPython 2.7でDjango 1.4を使用しています。1 つのサーバーで複数の Web サイトをホストしようとしています。私はApacheを初めて使用し、仮想ホストをセットアップするときに何か間違ったものを書いたようです.
1 台のサーバーでホストしようとしている 2 つのドメインを所有しています。www.my_first_domain.com
それらを呼び出しますwww.my_second_domain.com
。
現在、ホストする予定の Django プロジェクトが 3 つ以上あります。1 つのプロジェクトが示されwww.my_first_domain.com
ます。1 つのプロジェクトが示されwww.my_second_domain.com
ます。他のすべてのプロジェクトは、 のサブドメインを指しwww.my_second_domain.com
ます。
すなわち、、、project3.my_second_domain.com
などproject4.my_second_domain.com
。
これらすべてが正しいIPを指すようにDNSを管理しました。`host www.my_first_domain.com
、host www.my_second_domain.com
、などでこれを確認しましたhost project3.my_second_domain.com
。これらはすべて正しい IP を指しています。
以下は、これを機能させるためにセットアップしたファイルの 3 つの例です。
/etc/apache2/sites-enabled/project1
<VirtualHost *:80>
ServerName www.my_first_domain.com
ServerAlias *.my_first_domain.com my_first_domain.com
DocumentRoot /var/www/project1
CustomLog /var/log/apache2/www.my_first_domain.com-access.log combined
ErrorLog /var/log/apache2/www.my_first_domain.com-error.log
WSGIScriptAlias / /home/user1/website/project1/project1/wsgi.py
<Directory /home/user1/website/project1/project1>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
</VirtualHost>
/etc/apache2/sites-enabled/project2
<VirtualHost *:80>
ServerName www.my_second_domain.com
ServerAlias my_second_domain.com
DocumentRoot /var/www/project2
CustomLog /var/log/apache2/www.my_second_domain.com-access.log combined
ErrorLog /var/log/apache2/www.my_second_domain.com-error.log
WSGIScriptAlias / /home/user2/website/project2/project2/wsgi.py
<Directory /home/user2/website/project2/project2>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
</VirtualHost>
/etc/apache2/sites-enabled/project3
<VirtualHost *:80>
ServerName project3.my_second_domain.com
DocumentRoot /var/www/project3
CustomLog /var/log/apache2/project3.my_second_domain.com-access.log combined
ErrorLog /var/log/apache2/project3.my_second_domain.com-error.log
WSGIScriptAlias / /home/user3/website/project3/project3/wsgi.py
<Directory /home/user3/website/project3/project3>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
</VirtualHost>
www.my_first_domain.com にアクセスすると、すべて正しく表示されます。www.my_second_domain.com にアクセスすると、www.my_first_domain.com の内容が表示されます (2 番目のプロジェクトではなく、最初のプロジェクト)。project3.my_second_domain.com にアクセスすると、Internal Server Error
.
project3 のエラー ログを見ると、project1 の Django 設定を読み込もうとしているようです。
私のように仮想ホストを使用する場合の代わりにファイルが使用される/etc/apache2/httpd.conf
という印象を受けていたので、意図的に空にしました。sites-enabled
httpd.conf
他の構成ファイルを変更したとは思いません。私が間違ったことについてのアイデアはありますか?