xserveのデプロイでindex.cgiが動かない
djangoで作ったwebアプリをxserverでアップしたいのですが、index.cgiがうまく動きません。
EC2を使いたいですが、xseverにしろと言われたのでやらなくてはいけません。
共用サーバは初めてでしたが、調べてみるとできないことはないようなのでやってみました。
ファイル構成
下記のようになっています。
public_html内にDjangoのプロジェクトを配置しています。
linuxbrewでpipを入れて必要なものをインストールしています。
. |-- ssl `-- xs341725.xsrv.jp |-- autoreply |-- htpasswd |-- log |-- mail | `-- xs341725.xsrv.jp |-- public_html | |-- Pipfile | |-- Pipfile.lock | |-- default_page.png | |-- index.html | |-- keiba_project | | |-- Pipfile | | |-- Pipfile.lock | | |-- aaa.html ←確認のためのhtmlファイル | | |-- accounts | | | |-- 省略 | | |-- db.sqlite3 | | |-- index.cgi | | |-- keiba_app | | | |-- 省略 | | |-- keiba_project | | | |-- __init__.py | | | |-- __pycache__ | | | |-- asgi.py | | | |-- settings.py | | | |-- urls.py | | | `-- wsgi.py | | `-- manage.py | |-- pip-9.0.1 | | |-- 省略 | | |-- pip | | | |-- 省略 | | `-- setuptools-3.5.1.tar.gz | |-- pip-9.0.1.tar.gz | `-- pip_list.txt |-- script `-- xserver_php |-- php.ini `-- session
index.cgi
以下がindex.cgiです
#! /home/[サーバID]/.linuxbrew/lib/python3.9 import sys, os os.environ['DJANGO_SETTINGS_MODULE'] = "keiba_project.settings" from wsgiref.handlers import CGIHandler from keiba_project.wsgi import application CGIHandler().run(application)
これで実行すると、500errorが表示されます。
logを見るとEnd of script output before headers: index.cgi
と表示されています。
学校でperlでCGIを使用したときに、headerとbodyを区別するために改行を2つ入れろと言われましたが、そのようなことを調べると出てきますが今回はpythonで勝手が違く原因がわかりません。
参考サイトではこれでうまく行っているようです。
試したこと
runserverを動かしてみる
どこかでimportエラーが起きてるのかと思い、runserverをたてましたが、正常に立ち上がりました。
urlを確認してみた
アクセスするurlやindex.cgiの置き場所が違うのかと思い確認してみました。
index.cgiと同じ階層にaaa.htmlというものを作って、http://[serverip]/keiba_project/aaa.html
でアクセスすると正常にaaa.htmlが表示されました。
ですが、http://[serverip]/keiba_project/aaa.html
でアクセスすると500エラーが表示されてEnd of script output before headers: index.cgi
とlogに出てくるのでやはりcgiの書き方が間違っているのかと思います。
参考サイト
エックスサーバーでDjangoを動かす
XserverでDjangoアプリ公開してみた
エックスサーバでDjango+Pythonを運用!うまくいかない原因はnumpyだった!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/14 11:17
2021/05/14 11:23
2021/05/14 11:29
2021/05/14 13:05
2021/05/14 13:24
2021/05/14 13:40 編集