4

Django プロジェクトを開発し、クラウド VΜ にアップロードしました。現在、8080ポートからアクセスできます。

python manage.py runserver 0.0.0.0:8080

8080 ポートなしで URL を入力すると、「動作します」ページが表示されます。Django プロジェクトをデフォルトで 80 ポートで実行するように設定するにはどうすればよいですか?

Ubuntu 12.04 サーバーを使用しています

4

3 に答える 3

9

ドキュメントが言うようにrunserver、展開サーバーとしてのものではありません。また、ルートとして実行しない限り、おそらくポート 80 で起動できないことにも言及しています。

于 2013-03-28T18:39:57.133 に答える
4

/etc/apache2/sites-enabled に配置する必要があるファイルの種類は次のとおりです。その中のパスを調整する必要があります。また、apt-get を介して実行できる mod_wsgi をロードする必要があります。

<VirtualHost 192.168.1.14:80>
ServerAdmin youremail@whatever.com

ServerName www.whatever.com
ServerAlias whatever.com

Alias /robots.txt  /home/dimitris/Python/mysite/site_media/robots.txt
Alias /favicon.ico /home/dimitris/Python/mysite/site_media/favicon.png
Alias /static/     /home/dimitris/Python/mysite/site_media/static

WSGIDaemonProcess mysite user=dimitris processes=1 threads=5
WSGIProcessGroup mysite
WSGIScriptAlias / /home/dimitris/Python/mysite/deploy/mysqite_wsgi.py

# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel debug

ErrorLog  ${APACHE_LOG_DIR}/mysite.error.log
CustomLog ${APACHE_LOG_DIR}/mysite.access.log combined

ServerSignature Off
</VirtualHost>

これのほとんどは、virtualenv で実行していることを前提としています。つまり、実行するには wsgi ファイルが必要です。上記のファイルは、次のような「wsgi」ファイルを実行するように apache を設定します。

import os
from os.path import abspath, dirname, join
import sys

with open("/tmp/mysite.sys.path", "w") as f:
  for i in sys.path:
    f.write(i+"\n")


#redirect sys.stdout to sys.stderr for libraries that use
#print statements for optional import exceptions.
sys.stdout = sys.stderr

sys.path.insert(0, abspath(join(dirname(__file__), "../../")))
sys.path.insert(0, abspath(join(dirname(__file__), "../../lib/python2.7/site-packages/")))

from django.conf import settings
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

mod_wsgi で、この 1 つのファイルを開いて実行します。application は Web サーバーからの要求を待つ部分であり、残りは runserver と同じように動作しますが、マルチプロセスおよびマルチスレッドにできる点が異なります。

于 2013-03-31T16:53:32.423 に答える