1

mod_wsgiを使用してデプロイする方法を学習しようとしています。virtualenvで実行されている小さなアプリでdjango1.4を使用しています

これが私のapache2.confコードの変更(ubuntu)です:

# https://docs.djangoproject.com/en/1.4/howto/deployment/wsgi/modwsgi/
# jcg 9/18/2012
WSGIScriptAlias / /home/jgoldstick/code/learn/myapp/wsgi.py
#WSGIPythonPath /home/jgoldstick/code/learn/myapp
WSGIPythonPath /home/jgoldstick/code/learn/myapp/lib/python2.7/site-packages

<Directory /home/jgoldstick/code/learn/myapp>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

サイトにアクセスすると404ページが表示されます。djangoが生成する標準のwsgi.pyスクリプトを使用しています。

私は何が欠けていますか

より完全になるように更新します。これがmyapp/myappのwsgi.pyファイルで、最初の回答に従って追加を追加しました。

その回答では、wsdl.pyは実際にはwsgi.pyを意味していると思います。

import os, sys

sys.path.append('/home/jgoldstick/code/learn')
sys.path.append('/home/jgoldstick/code/learn/myapp')


os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings")

# This application object is used by any WSGI server configured to use this
# file. This includes Django's development server, if the WSGI_APPLICATION
# setting points here.
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

# Apply WSGI middleware here.
# from helloworld.wsgi import HelloWorldApplication
# application = HelloWorldApplication(application)

apache2.conf(ubuntu構成のhttpd.confと同じだと思います)を次のように変更しました。

https://docs.djangoproject.com/en/1.4/howto/deployment/wsgi/modwsgi/

# jcg 9/18/2012
Alias /media/ /home/jgoldstick/code/learn/media/

<Directory /home/jgoldstick/code/learn/media>
Order deny,allow
Allow from all
</Directory>

WSGIScriptAlias / /home/jgoldstick/code/learn/myapp/wsgi.py
WSGIPythonPath /home/jgoldstick/code/learn/myapp/lib/python2.7/site-packages

<Directory /home/jgoldstick/code/learn/myapp>
Order deny,allow
Allow from all
</Directory>

apacheを再起動しましたが、アプリにアクセスすると404が表示されます

4

1 に答える 1

0

wsdl.py:

import os, sys
sys.path.append('/home/jgoldstick/code/learn')
sys.path.append('/home/jgoldstick/code/learn/myapp')
os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

そして、httpd.confは次のようになります。

Alias /media/ /home/jgoldstick/code/learn/media/

<Directory /home/jgoldstick/code/learn/media>
Order deny,allow
Allow from all
</Directory>

WSGIScriptAlias / /home/jgoldstick/code/learn/myapp/django.wsgi
WSGIPythonPath /home/jgoldstick/code/learn/myapp/lib/python2.7/site-packages

<Directory /home/jgoldstick/code/learn/myapp>
Order deny,allow
Allow from all
</Directory>

にある場合django.wsgiは、どこにでも/home/jgoldstick/code/learn/myapp/myapp/django.wsgi追加してください。/myapp

/media/ディレクトリと同じ構成がstaticあり、実行することを忘れないでください./manage.py collectstatic

ドキュメントDjango-modWSGIを参照してください

于 2012-09-18T18:46:43.010 に答える