2

Alwaysdataからデプロイ中のdjangoアプリを読みましたが、問題があります。

私たちが実行するbash django.fcgi、ターミナルショー:

import: unable to open X server `' @ import.c/ImportImageCommand/367.
django.fcgi: line 5: syntax error near unexpected token `('
django.fcgi: line 5: `PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))'

私は彼らが言ったことをすべて作りましたが、それを修正することはできません。私はDjango1.5で実行しています。

- mymodule
- mysite
... __init__.py
... settings.py
... urls.py
.. wsgi.py
- public
... django.fcgi
... .htaccess
... static
... media
- manage.py
- statics
- templates
- __init__.py

これはdjango.fcgi.htaccess

#!/usr/bin/python

import os, sys

PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, PROJECT_DIR)
sys.path.insert(0, os.path.dirname(PROJECT_DIR))

PROJECT_NAME = PROJECT_DIR.split('/')[-1]
os.environ['DJANGO_SETTINGS_MODULE'] = "settings"

from django.core.servers.fastcgi import runfastcgi
runfastcgi(method="threaded", daemonize="false")

AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ django.fcgi/$1 [QSA,L]

私の問題はどこにありますか?django.fcgiファイルをここのようにUnicodeBOMでエンコードしましたが、結果はありません。何か考えはありますか?ありがとうございました...

編集:そして、まあ、私のウェブサイトは機能しません:500内部サーバーエラー。

サーバー構成:Apache、Python 2.6、Django 1.5

4

1 に答える 1

1

そのファイルをそのように実行することは想定されていないと思います。最初にシバン行がありますが、ファイルはPythonスクリプトではなくシェルスクリプト(bash)として解釈される必要があるため、「インポート」エラー(importスクリーンショットのようなものを作成するImageMagickコマンドのようです)。

したがって、そのファイルを実行する正しい方法は、それらの1つです。

bash -c "./django.fcgi" # file must have execution permission
python django.fcgi
./django.fcgi           # also

アプリケーションがどこかにログを記録するように構成されている場合、500エラーは、ログをオンDEBUG=Trueにするか読み取ることでデバッグできます。settings.py

編集:

インポートエラーに関しては、正しい構成は

os.environ['DJANGO_SETTINGS_MODULE'] = "mysite.settings"

あなたがそれを持っている方法Djangoは失敗するロードしようとしてpublic/settings.pyいます。詳細はこちら

それでもうまくいかない場合は、settings.pyへのフルパスを指定してみてください。

os.environ['DJANGO_SETTINGS_MODULE'] = os.path.join(PROJECT_DIR, "mysite", "settings")

それが役に立てば幸い。

于 2013-03-01T00:58:17.273 に答える