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

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

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

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

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

Q&A

解決済

2回答

15805閲覧

apache2、CGIでpythonが実行されず、 [cgi:error]エラーログが発生してしまいます。。。

bin_300K

総合スコア56

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

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

0グッド

1クリップ

投稿2016/05/13 15:47

Raspberry PiでWebサーバーを構築中ですが、
apache2、CGI設定をしたところ、

参考にしたチュートリアル
http://qiita.com/aryoa/items/2c28b466e911a3dd101d

pythonが実行されず、

500Internal Server Error

Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator at webmaster@localhost to inform them of the time this error occurred, and the actions you performed just before this error. More information about this error may be available in the server error log.

と、表示されてしまいます。

エラーログを確認すると、以下のように似たようなエラーログがでてきていました。

※(私のラズパイのユーザー名)は(ユーザー)、(私のラズパイのIPアドレス)は(IP)、と下記記入しています。

[Sat May 14 00:40:18.596773 2016] [cgi:error] [pid 21080:tid 1844442160] [client (IP):49769] AH01215: (8)Exec format error: exec of '/home/(ユーザー)/public_html/cgi-bin/test.py' failed, referer: http://(IP)/~(ユーザー)/cgi-bin/ [Sat May 14 00:40:18.599075 2016] [cgi:error] [pid 21080:tid 1844442160] [client (IP):49769] End of script output before headers: test.py, referer: http://(IP)/~(ユーザー)/cgi-bin/

ちなみにtest.pyのスクリプトは以下です。

#!/usr/bin/python print "Content-type: text/html" print print "<html>" print "<head>" print "<title>test</title>" print "</head>" print "<body>test it.</body>" print "</html>"

どなたか改善点わかるかたいらっしゃいますでしょうか。
ご教授いただけますと大変助かります。

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

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

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

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

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

TaichiYanagiya

2016/05/13 15:57

test.py ファイルに実行権限は付いていますか?
bin_300K

2016/05/13 15:59

$ ls -l 合計 4 -rwxr-xr-x 1 root root 205 5月 14 00:40 test.py と、出ておりますので、大丈夫・・・・だと思いますが、マズイですかね??
bin_300K

2016/05/13 16:00

TaichiYnagiyaさま とりあえず、ご協力いただき感謝です!ありがとうございます!
guest

回答2

0

可能性は薄いので解決には至らないと思いますが、僅かな可能性は潰しておきましょう。
それに、今後pythonを使っていくのであれば、知っておいたほうがいいと思いますし。

/usr/bin/pythonのバージョンを調べてください。

/usr/bin/python --version

提示されているtest.pyは、python3では動きません。

python

1print "Content-type: text/html"

は、

python

1print("Content-type: text/html")

と書くべきです。

(ubuntuですらデフォルトは2.7なんだから、3になっているとは思わないんだけどなぁ…)


あと、

/home/(ユーザ)/public_html/cgi-bin/test.py

と、CGIとしてでなくコマンドラインから実行して問題が起きないか確認してみてください。
結構これで問題がわかる事もあります。

投稿2016/05/13 21:32

katsuko

総合スコア3469

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

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

bin_300K

2016/05/14 00:17

katsuko さん ありがとうございます(涙)諦めずに頑張ろうと思います。 今、いただいたアドバイスを実践してみました。 まず、バージョンを確認しましたら、2系でしたのでシンタックスは大丈夫そうでした ``` $ /usr/bin/python --version Python 2.7.9 ``` 次にコマンドでパスを入力してみましたら、エラーがでました ``` $ /home/(ユーザー)/public_html/cgi-bin/test.py : そのようなファイルやディレクトリはありません.py: 行 1: #!/usr/bin/python /home/(ユーザー)/public_html/cgi-bin/test.py: 行 2: $'\r': コマンドが見つかりません "rror: no such file ":Content-type: text/html /home/(ユーザー)/public_html/cgi-bin/test.py: 行 4: $'print\r': コマンドが見つかりません "rror: no such file "<html> "rror: no such file "<head> "rror: no such file "<title>test</title> "rror: no such file "</head> "rror: no such file "<body>This is test.</body> "rror: no such file "</html> ``` そもそもパイソンコードとして動かないのか!?と思い、次にパイソンで動かしてみましたら、ちゃんと動きました ``` $ python /home/(ユーザー)/public_html/cgi-bin/test.py Content-type: text/html <html> <head> <title>test</title> </head> <body>This is test.</body> </html> ``` 他のアドバイスいただいた方からの情報から、もしかしたら文字コードに起因する可能性があるかもしれない と、今しらべているところです。経過ご報告でした。ありがとうございます。
katsuko

2016/05/14 02:28

test.pyの改行コードがCR+LF(Windowsでよく使われる改行コード)になっているようです。 LFに変換してください。 「改行コード」で調べてください。 lightsonさんもおっしゃっていますが、ちょっといろんなことをして混乱されているように見受けられます。 「間違ってはいないのだけど、ちょっと余計なことをしているのでは?」という点も何点かあります。 (でも、それを突っ込んでまた混乱を招くのも悪いと思って、やめています) これまでの質問・回答の中でやってきたことを全て一日で理解しろ、というのは、無理があると思います。 焦らずに時間をかけて理解するようにしてください。 頑張ってください。
katsuko

2016/05/14 02:45

おぉ、コメントしている間に解決していたw 良かったですね。
bin_300K

2016/05/14 03:04

katsuko さん 感謝です!ノウハウの点からも、精神面からもほんと助かりました!まさに最後いただいたアドバイスの改行のところがネックになっていたようです。ありがとうございました。
guest

0

ベストアンサー

質問には参照したリンクだけでなく、実際に何を行って、どこまではうまくいっているのか、どこからダメなのかを書いてもらったほうが回答者は、問題のありかを絞れると思います。

現在の情報をもとに検索したら次のような記事がヒットしました。

文字コードがちがうとEnd of script output before headers エラー
http://dynamic-one.com/archives/51588699.html
Raspberry Pi でのpython cgi実行
http://raspberrywebserver.com/cgiscripting/writing-cgi-scripts-in-python.html

下のリンクでは、Content-typeの後ろに\n\nが入っています。
文字コードの問題が発生しないように、Raspberry pi上でtest.pyを書きなおしてみてはいかがでしょうか?

python

1#!/usr/bin/env python 2print "Content-type: text/html\n\n" 3print "<h1>Hello World</h1>"

bik_300Kさんは、いろいろなところを変更して、自分でも混乱しているように見受けられます。ある程度やってうまくいかなければ、信頼のできる記事に沿って、OSの再インストールから始めたほうがいいかもしれません。

投稿2016/05/13 21:30

lightson

総合スコア553

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

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

bin_300K

2016/05/14 00:20

lightsonさま ありがとうございます!まだプログラミングなどに触れて日が浅いので、半日くらいハマってしまうと、非常に焦ってしまい、絶望的な気分になります・・・が、諦めずに頑張ります。 文字コードの見直しをしてみて、うまくいかなければOS再インストールも覚悟して、頑張ります。ありがとうございます。
lightson

2016/05/14 00:47

$ sudo chmod +x test.py で実行権をつけてみて下さい。
bin_300K

2016/05/14 02:28

経過後報告です。文字コードを見直したところ、おかげさまで、無事CGIが動きました! ありがとうございました! $ file test.py test.py: Python script, UTF-8 Unicode (with BOM) text executable, with CRLF line terminators となっているのが、問題となるケースもあるようでしたので、with BOMを消して、CRLF改行を消すと、無事実行されました!! ご協力いただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問