質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

CGI

CGI(Common Gateway Interface)とは、Webサーバー上でユーザプログラム動作させる仕組みのこと。また、動かす前提のプログラムをCGIと呼ぶこともあります。HTMLなどの静的な情報に限らず、プログラムの処理結果をベースにした動的情報の提供が可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

1637閲覧

djangoをxserverへデプロイしたい!500エラーが解決しない

ktg_st

総合スコア33

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

CGI

CGI(Common Gateway Interface)とは、Webサーバー上でユーザプログラム動作させる仕組みのこと。また、動かす前提のプログラムをCGIと呼ぶこともあります。HTMLなどの静的な情報に限らず、プログラムの処理結果をベースにした動的情報の提供が可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/06/19 15:36

編集2020/06/21 16:01

xserverへdjangoを上げたいのですが、上手く行きません。

参考サイト1
参考サイト2

現状
pythonは導入済のはず
TeraTermで下記をやった
pipenvは実行できた
server error500が出てる
pipenv install djangoもやってみてサクセスしたけど上手く行かない

.htaccess RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /index.cgi/$1 [QSA,L]
index.cgi #!/【pipenv --venvの実行結果】/bin/python3.7 import sys, os sys.path.insert(0, "【pipenv --venvの実行結果】/bin") os.environ['DJANGO_SETTINGS_MODULE'] = "【djangoのsettings.pyのあるフォルダ名】.settings" os.environ['OPENBLAS_NUM_THREADS'] = "1"←参考サイト②を参考にしました。 from wsgiref.handlers import CGIHandler from django.core.wsgi import get_wsgi_application application = get_wsgi_application() CGIHandler().run(application)

pandasを使用しているため、参考サイト②から追記した。
これを消しても結果は変わらなかった。

Fcgiも試したが、エラーすら失敗(まだ何も公開されていませんよってページのまま)

fcgi .htaccess AddHandler fastcgi-script .fcgi RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^/(.*)$ /mysite.fcgi/$1 [QSA,L]
mysite.fcgi #!/【pipenv --venvの実行結果】/bin/python3.7 import sys, os sys.path.insert(0, "【pipenv --venvの実行結果】/bin") os.environ['DJANGO_SETTINGS_MODULE'] = "【djangoのsettings.pyのあるフォルダ名】.settings" from django.core.servers.fastcgi import runfastcgi runfastcgi(method="threaded", daemonize="false")

fcgiでの参考サイト
古すぎて参考になるのかは微妙だった

.htaccessとindex.cgiはpublic_htmlフォルダないに置いています。
参考サイトだとサブドメインを使用していますが、私の場合はサブドメインではありません。
ドメイン名/public_html/
.htacces
index.cgi
djangoprojectのフォルダ【フォルダ内にappフォルダ、pipfile、pipfile.lockなど】
って感じになっています。

ちなみにdjangoはローカルであれば問題なく動きます。

どこが問題なのかも分からず、調べようがありません。
アドバイス頂けると助かります。

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ktg_st

2020/06/20 14:43

End of script output before headers: index.cgi ってエラーが出ていました。
yymmt

2020/06/20 15:55

手動で試すのが良いです。 【pipenv --venvの実行結果】/bin/python3.7 index.cgi
ktg_st

2020/06/21 01:07

手動で試すとはどういう事でしょうか?
yymmt

2020/06/21 01:35

sshでログインして、 python3.7 /path/to/index.cgi と打つということです。xserverを使ったことがないですが、もしかしてshellを解放していないですか?
ktg_st

2020/06/21 01:42

TeraTermで出来ると思います。 ありがとうございます。やってみます
ktg_st

2020/06/21 16:01

出来ませんでした。 パーミッションが間違っていたのでそれは修正をしました。 ちなみに、【pipenv --venvの実行結果】/bin/python3.7 の場所にpythonが存在していませんでした。質問に画像追加しました。 pip3.7ってのはあるんですが、これは違いますよね? ただpipenvは実行出来て、djangoも入れられているのでpython自体は入ってるはずではあると思うのですが、、、。
yymmt

2020/06/21 16:32

pip3.7は別物です。 手動でpipenvが実行できているということなので、Pipfile, Pipfile.lockのあるディレクトリで pipenv shell which python としてみて下さい。pythonが動くならこれで書くべきパスが得られます。
ktg_st

2020/06/26 15:36

pythonの場所は確認できましたが、はやり動きませんでした。 index.cgiの中身が #!/home/ktgst/.local/share/virtualenvs/bb-o_rdtwmK/bin/python3.7 import sys, os sys.path.insert(0, "/home/ktgst/.local/share/virtualenvs/bb-o_rdtwmK/bin") os.environ['DJANGO_SETTINGS_MODULE'] = "config.settings" os.environ['OPENBLAS_NUM_THREADS'] = "1" from wsgiref.handlers import CGIHandler from django.core.wsgi import get_wsgi_application application = get_wsgi_application() CGIHandler().run(application) となっています。 パーミッションは755に変更しています。 エラーログも確認しましたが変わらず「End of script output before headers: index.cgi」でした。 importの前に改行いれると「AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.」と別のエラーが出ました。 完全に手詰まり状態になってしまいました。
yymmt

2020/06/27 01:38

手動でindex.cgiを実行した場合にContent-Typeヘッダ表示されますか?
ktg_st

2020/06/28 15:12

すいません、調べたのですが手動で実行する方法が分かりません。 教えて頂けないでしょうか。
guest

回答1

0

まずはログをみる。どこでエラーが発生しているのか。

気になったのは、Debug = False にしてますか?

あと、 CGI で動かすと、かなり動作が遅くなります。
xrea.com で動かしたことがありますが、すぐにやめて VPS で動かしました。

Heroku を使ってみてはいかがでしょうか。
参考サイトの人に聞いてみたらいかがでしょうか。
開発している環境は?
ローカルで Apache を動かして動作確認してみては?

python の Web アプリケーションを CGI で動かしている人は、あまりいないとおもいます。
がんばってください。

投稿2020/07/05 12:16

Bindi

総合スコア129

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ktg_st

2020/07/05 16:31

コメントありがとうございます。 Debug=Falseにはなっています。 herokuではデプロイは成功しています、herokuだと初回の起動が遅かったり無料だと限界があるので、ちょうどドメイン持っているXserverで出来ないかと思っています。 はっきりいってまだ始めて3か月程度の初心者で、全然勉強不足です。 とりあえずdjangoで作ったものをxserverで動かしたく、方法はあまりこだわっていません。 探したところ一番わかりやすく見つかったのでcgiでの動作だったので、他に方法や、参考になりそうなサイトなどあれば教えて頂けると助かります。
Bindi

2020/07/08 03:15

"xrea.com python fcgi django" で検索してみてください。 私も、探してなんとか xrea.com で動かしたので。 xrea.com は歴史があり、 無料でサーバーが使えることもあって、情報は多いです。 どこのレンタルサーバーも環境は同じなので、参考になると思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問