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

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

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

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

解決済

Python:Apacheでflaskを動かす際のapacheのhttpd\.confの設定

削除済ユーザー
削除済ユーザー

総合スコア0

Apache

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

1回答

0評価

0クリップ

89閲覧

投稿2017/08/27 01:59

pythonのflaskでwebアプリを作るときの
apacheのhttpd.confの設定について質問です。

単純にapacheでmod_wsgiモジュールを使った場合は
ただしく動作しました。

###mod_wsgiモジュールで実行した場合

ini

<VirtualHost \*:80> LoadModule wsgi_module /usr/local/python/lib/python3\.6/site-packages/mod_wsgi/server/mod_wsgi-py36\.cpython-36m-x86_64-linux-gnu\.so WSGIDaemonProcess myapp user=my_user group=my_user WSGIProcessGroup myapp #WSGISocketPrefix /var/run/wsgi WSGIScriptAlias / /var/www/example\.com/public/index\.py ServerName example\.com DocumentRoot "/var/www/example\.com/public" <Directory "/var/www/example\.com/public"> AllowOverride All Options All MultiViewsMatch Handlers AddHandler wsgi-script \.py AddHandler wsgi-script \.wsgi DirectoryIndex index\.html index\.py index\.php app\.wsgi Order allow,deny Allow from all </Directory> </VirtualHost>

###mod_wsgiで動かす場合のpythonスクリプト

python

def application\(environ, start_response\): start_response\('200 OK', \[\('Content-type', 'text/plain'\)\]\) return \[b'Hello, world'\]

上記のようなよく見るソースで問題なく動かせました。

次にflaskで実行させる場合のapacheの設定をwebで調べたところ
人様のサイトですが以下のURLから引用させてもらいました。
http://blog\.akashisn\.info/entry/%3Fp%3D258
上記の文献の場合

###flaskが動くと思われるapacheの設定

ini

#flask\.conf <VirtualHost \*:80> ServerName localhost WSGIDaemonProcess flask_app user=www-data group=www-data threads=5 WSGIScriptAlias / /var/www/flask/flask_app\.wsgi <Directory /var/www/flask> WSGIProcessGroup flask_app WSGIApplicationGroup %{GLOBAL} Order deny,allow Allow from all </Directory> </VirtualHost>

上記のようになっておりました。

そのため上記のような設定を踏まえて設定を変えたところ以下のようなシンタックスエラーがでました。

以下がエラー内容です Syntax error on line 211 of /usr/local/apache/conf/httpd\.conf: Invalid command 'WSGIDaemonProcess', perhaps misspelled or defined by a module not included in the server configuration

結果的に動作させるためには

LoadModule wsgi_module /usr/local/python/lib/python3\.6/site-packages/mod_wsgi/server/mod_wsgi-py36\.cpython-36m-x86_64-linux-gnu\.so

上記のmod_wsgiモジュールを読み込ませないと動作しませんでした。

###実際にflaskが動いた設定

ini

<VirtualHost \*:80> ServerName \*\*\* LoadModule wsgi_module /usr/local/python/lib/python3\.6/site-packages/mod_wsgi/server/mod_wsgi-py36\.cpython-36m-x86_64-linux-gnu\.so WSGIDaemonProcess app user=\*\*\* group=\*\*\* threads=5 WSGIScriptAlias / /var/www/\*\*\*/public/index\.wsgi <Directory /var/www/\*\*\*/public> Allowoverride All WSGIProcessGroup app WSGIApplicationGroup %{GLOBAL} Order deny,allow Allow from all </Directory> </VirtualHost>

さて,質問としては
(1)このApacheの組み込みとして動かすためのmod_wsgiモジュールがなくてもflaskが動くという場合はどのような設定にすれば良いのでしょうか?

(2)また,flaskをつかった場合,スクリプトを修正してもapacheを再起動させないと,スクリプトの変更が反映されませんでした。
しかし,冒頭のflaskを使わずにpython+apacheのmod_wsgiで実行させる場合のようにapacheを再起動させずに
スクリプトを修正してその修正を反映さえるにはどのようにしたら良いのでしょうか?

(3)apacheのmod_wsgiを使った場合の動作とはphpなどのphp5_moduleやrubyのpassengerなどと同様にapacheのプロセスとして実行させるという認識でよろしいでしょうか?

以上,有識者の方ご教授いただけますと幸いです。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Apache

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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