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

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

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

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

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Mecab

Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

Python

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

Q&A

1回答

3481閲覧

【Python】MecabをApache上のPythonから動かす方法

nnahito

総合スコア2004

Apache

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

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Mecab

Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

Python

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

0グッド

0クリップ

投稿2016/04/19 09:49

編集2022/01/12 10:55

前提

あまり知識はありません。

環境

  • Macbook Pro 10.10.5(Yosemite)
  • プロセッサ:2.8 GHz Intel Core i5
  • RAM:16 GB 1600 MHz DDR3
  • Python:2.7.10
  • Apache:Apache/2.4.16 (Unix)

質問概要

Macbook Pro上で動作しているApacheで、CGIとして動かすPythonで、
Mecabを動かしたいのですが、**504エラー(Gateway Timeout)**が返って来ます。
何か必要な設定があるのでしょうか?

質問詳細

Macbook Pro上で動作しているApacheで、CGIとして動かすPythonで、
Mecabを動かしたいのですが、**504エラー(Gateway Timeout)**が返って来ます。
何か必要な設定があるのでしょうか?

http.confなどは設定しており、Python自体はブラウザで実行できる状態です。

Python

1#!/usr/bin/python 2# coding:utf-8 3print 'Content-Type: text/html\n\n' 4print "Hello world!<br>"

これは通常通り「Hello world!」がブラウザに出力されます。
しかし、上記のコードを、

Python

1#!/usr/bin/python 2# coding:utf-8 3import sys 4import time 5import math 6import codecs 7import MeCab 8 9 10print 'Content-Type: text/html\n\n' 11print "Hello world!<br>" 12 13m = MeCab.Tagger() 14n = m.parseToNode("太郎が花子にりんごをあげた。") 15 16while n: 17 if n.surface != "": 18 print n.feature + "<br>"; 19 20 n = n.next 21

と書き換えると、504エラーが返って来ます。
これはどのように設定すれば利用することができるのでしょうか?

また、Mecabはターミナル上からでの実行だと正常に動作できます。(Pythonに書いたMecabも)

よろしくお願いいたします。

追記:Apacheエラー

見方はわかりませんが、修正依頼が来たので提示します。
[Tue Apr 19 18:27:43.975097 2016] [cgi:warn] [pid 13336] [client ::1:49506] AH01220: Timeout waiting for output from CGI script
[Tue Apr 19 18:27:43.975435 2016] [cgi:error] [pid 13336] [client ::1:49506] Script timed out before returning headers: hello.py

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

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

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

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

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

t_obara

2016/04/19 10:29

サーバのログは確認されましたか?まずはそれを確認することをお勧めします。それを見てわからなければ、その内容をこの場で共有されると良いのではないでしょうか。
nnahito

2016/04/19 10:35

修正依頼ありがとうございます。「前提」部分で書かせていただきました通り、あまり知識はなく勉強中ですので、申し訳ありませんがサーバログの場所と見方を合わせてご教示頂けませんでしょうか?
guest

回答1

0

ターミナルでは実行できるけど、CGIで動かすとエラーになる
といった場合、往々にして環境変数が設定されてない
という原因が多い気がします。
そのへんの違いを確認してみてはいかがでしょうか?

投稿2016/04/19 11:13

takasima20

総合スコア7458

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

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

nnahito

2016/04/20 17:58

ご回答有り難うございます。 >往々にして環境変数が設定されてない Macの環境変数は……どこをいじればよいのでしょうか? Windowsですと、システムプロパティにあると思いますが……
takasima20

2016/04/21 09:37

とりあえず、ターミナルとCGIの両方でenvコマンドを実行して どのような環境変数が設定されているかを確認しましょう。 で、怪しそうなのがあったらPythonから設定してみる という手順になると思います。 http://tmlife.net/programming/python/python-environ.html
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問