DjangoプロジェクトをEC2サーバーにデプロイします。mod_wsgiをインストールしました。
そして、Djangoのチュートリアルのように設定を行いました。
私は以下を得ています:
Invalid command 'WSGIScriptAlias', perhaps misspelled or defined by a module not included in the server configuration
理由は何ですか? mod_wsgiが正しくインストールされていませんか?
LoadModule wsgi_module libexec/httpd/mod_wsgi.so
LoadModule alias_module libexec/httpd/mod_alias.so
WSGIScriptAlias / /usr/local/Apache2/htdocs/mysite/mysite/wsgi.py
WSGIPythonPath /usr/local/Apache2/htdocs/mysite/mysite
<Directory /path/to/mysite.com/mysite>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
このエラーは、具体的にはmod_wsgiがApacheにロードされていないことを示しています。
どのファイルで:
LoadModule wsgi_module libexec/httpd/mod_wsgi.so
Mod_wsgiにディストリビューションバイナリパッケージを使用した場合にロードされるように、適切なLinuxディストリビューション管理コマンドでmod_wsgiモジュールを有効にしましたか?
問題はそれです mod_wsgi
が正しくインストールされていません。
解決策(Apache 2を使用):
apacheをインストールします。
$ Sudo apt-get install Apache2
インストールlibapache2-mod-wsgi
:
$ Sudo apt-get install libapache2-mod-wsgi
そして、これはうまくいくはずです。
追加するだけで、モジュールの場所がわからない場合にモジュールを検索するだけで問題を解決する方法
locate mod_alias.so
それからあなたはのような出力を得るかもしれません
/usr/lib/Apache2/modules/mod_alias.so
次に、その場所を設定ファイルに追加できます
LoadModule alias_module /usr/lib/Apache2/modules/mod_alias.so
OpenSUSE 12.2で、Apache 2.2と同じ問題が発生しました。
Wsgiがインストールされている場合でも、アクティブ化されているかどうかを確認することをお勧めします。これはどういう意味ですか:
_#outputs a list of registered modules
/usr/sbin/httpd2 -M
_
wsgi_module (shared)
が表示されない場合は、ファイル__Apache_MODULES
_内の変数_/etc/sysconfig/Apache2
_にwsgi
を追加します
このようにして、httpd.confからのLoadModule
行を完全に回避できます。