0

基本的に、この記事で説明されているのと同じエラーが発生していますが、根本的な原因が異なると考えられるため、解決策がうまくいきません。

データベースパスを絶対に定義しました:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': '/var/www/myapp/database.db',                      # Or path to database file if using sqlite3.
        'USER': '',                      # Not used with sqlite3.
        'PASSWORD': '',                  # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}

それでも、そのようなテーブルはありません: django_session.

を実行するmanage.py runserverと、エラーが発生しません。

何かを試すために他にもいくつかのことをしましたが、役に立ちませんでした:

  • manage.py リセット セッション
  • データベースを削除し、syncdbで再作成しました
  • chown apache:apache database.db を試し、親ディレクトリ chown -R apache:apache myapp/ にも試しました
  • chmod 777 database.db を試しました

私のApache設定は次のようになります:

NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot /var/www/html/
</VirtualHost>

<VirtualHost *:80>
  ServerName myserver.mydomain.local
  ServerAlias myserver.mydomain.local

  DocumentRoot /var/www/myapp

  WSGIScriptAlias / /var/www/myapp/myapp/wsgi.py

  <Directory "/var/www/myapp/">
    Allow from all
  </Directory>
</VirtualHost>

/myapp を 2 回書いているのは、最初のファイルには DB ファイルと manage.py だけが含まれているためです。wsgi.py を含むアプリを含むその下のフォルダー

また、これを Apache で実行するには wsgi.py に次の 2 行を追加する必要がありますが、manage.py からアプリを実行する場合は追加する必要はありません。

import sys
sys.path.append(os.path.abspath(os.path.dirname(__file__) + "/../"))
4

1 に答える 1

-1

私はまったく同じエラーを抱えていました.....私のものはWindows環境です。database.dbファイルをコピーしてapacheフォルダーに配置するだけで済みました。同じことを試して、それが役立つかどうかを確認することができます。

于 2012-06-25T20:18:27.820 に答える