前提・実現したいこと
sample.netのサブドメインapptestでdjangoを動かしたいと考えています。
Djangoが動くドメイン「https://apptest.sample.net/」
エックスサーバー:X10プラン
Python:3.9.1
Django3
Djangoをサーバーに設置すると以下の文言表示されます。
サイトに表示される文言
A server error occurred. Please contact the administrator.
サーバーエラー表記
End of script output before headers: index.cgi, referer: https://apptest.sample.net/
試したこと
ローカル環境ではxserver_testというプロジェクトの中にml_systemというアプリを作成。
ローカルhttp://127.0.0.1:8000/で動くことを確認。
エックスサーバーで設定したサブドメインapptestフォルダに、
各種フォルダ、ファイルを設置します。
サイトのフォルダ構成は以下の通り
/sample.net/public_html/apptest │ manage.py │ Pipfile │ Pipfile.lock ├─xserver_test │ │ admin.py │ │ apps.py │ │ models.py │ │ tests.py │ │ urls.py │ │ views.py │ │ __init__.py │ └─migrations │ └─ __init__.py │ └─ml_system │ settings.py │ urls.py │ wsgi.py └ __init__.py
仮想環境
エックスサーバーにSSHでログインし、仮想環境のパスをメモ。
pipenv --venv /home/エックスサーバーID/.local/share/virtualenvs/hogehoge ```をindex.cgi(トップページの表示ようcgi)に設定します。
#!/home/エックスサーバーID/.local/share/virtualenvs/hogehoge/bin/python
-- coding: utf-8 --
import sys, os
sys.path.insert(0, "/home/エックスサーバーID/.local/share/virtualenvs/hogehogebin")
os.environ['DJANGO_SETTINGS_MODULE'] = "ml_system.settings"
from wsgiref.handlers import CGIHandler
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
CGIHandler().run(application)
.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.cgi/$1 [QSA,L]
RewriteRule ^(.*)$ /index.cgi/$1 [QSA,L]にしているのは、 https://apptest.sample.net/ で動かしたいからです。 settings.py
DEBUG = False
ALLOWED_HOSTS = ['https://apptest.sample.net/',]
パーミッションは755に設定。 結果は、「A server error occurred. Please contact the administrator.」です。 ### 試したこと エラーでは「End of script output before headers: index.cgi」とあり、cgiのheader部分が悪さをしているのかと思い、
#!/home/エックスサーバーID/.local/share/virtualenvs/hogehoge/bin/python3.9
-- coding: utf-8 --
へ変更。結果、**変化なし**。 settings.pyの一部を変更
DEBUG = False
ALLOWED_HOSTS = ['*']
結果に**変化なし**。 .htaccessの一部を変更
RewriteRule ^(.*)$ /apptest/index.cgi/$1 [QSA,L]
参考にさせていただいたサイト https://kazusa-pg.com/xserver-django/
あなたの回答
tips
プレビュー