質問: flaskを使って外部公開すためにまずwsgiファイルを作成しました。 wsgiを使って、pythonのファイルを外部公開したいです。 apacheの/etc/httpd/conf.d/mod_wsgi.conf のディレクトリ以下に ``` #LoadModule wsgi_module modules/mod_wsgi.so WSGIScriptAlias /?????/myapp /home/h0/?????/webapps/myapp.wsgi Order allow,deny Allow from all #SSLRequireSSL ``` と書き込みました。 ?????は私のpublic_htmlです。 https://ドメイン名/?????/myapp にアクセスすると Not Found になります。これはmyappというファイルを作成していないからでしょうか? 必要ならどのような設定で必要でしょうか。 またhttps://ドメイン名/?????/webapps/myapp.wsgi にアクセスするとインターナルサーバーエラーが出力されます。 myapp.wsgiの中身は ``` #/usr/local/bin/python3 def application(environ, start_response): start_response('200 OK', [('Content-type', 'text/plain')]) return [b'Hello, world'] ``` です。 権限は755に変更してあります。 そもそも、/usr/local/python/lib/python3.5/site-packages にアクセスしてみると、mod_wsgiがダウンロードされていません。 このサーバーは共有サーバーであり、一般ユーザーの私に権限がありません。 mod_wsgi.confファイルは以前使われていた方の真似をして自分の名前だけを変えて追加書き込みしてもらいました。 管理者の方曰く、以前の方々はこの設定でpythonファイルを実行できていたそうです。 今は、その方達がいないため何も聞くことができないため、この場で質問させていただきます。 外部公開するための wsgiファイル、apacheやディレクトリなどのアドバイスをお願いします。 現在調べても何もわからず八方塞がりです。よろしくお願いいたします。
回答: `mod_wsgi.conf` の中身が本当に記載されているとおりなのであれば、まずは `LoadModule` の行をアンコメントして `mod_wsgi` を適切にロードする形に変更する必要があるのではないでしょうか。 ``` - #LoadModule wsgi_module modules/mod_wsgi.so + LoadModule wsgi_module modules/mod_wsgi.so ``` そして、もし `mod_wsgi` のインストールをまだ行っていらっしゃらなければ、まずは `mod_wsgi` をインストールするところから、かと思います。 リポジトリの README と公式ドキュメントをまずはご覧になってみてください。 * GitHub - GrahamDumpleton/mod_wsgi * Quick Installation Guide — mod_wsgi documentation その上で、うまく行かなければ何らかのエラーがログが出ると思いますので、 CHERRY さんのおっしゃるようにログを確認するとよいのではないかと思います。 ### 追記 1 コメント欄でいただいた質問に回答します。 > > modules ディレクトリには mod_wsgi.so がインストールされているのですが > > /usr/local/python/lib/python3.5/site-packages には、mod_wsgiがインストールされていません。 > > site-packages 以下のmod_wsgi と modules ディレクトリ以下の mod_wsgi.so は全く違う挙動でしょうか? > > wsgiファイルを動かすためには、どちらもインストールする必要があるのでしょうか? > > > `mod_wsgi.so` ファイルが `modules` 以下にあるか `site-packages` 以下にあるかは単純にインストール方法による違いだと思います。ですので、 `modules` 以下に正しく動くものがすでに入っているのであれば `site-packages` には `mod_wsgi` 関連のものが入っていなくても問題ないと私は考えます(ただし一般論としてのお話です。前の担当の方が特殊なことをされていたらわかりません)。 その感じだと Quick Installation Guide のページをまだご覧になっていらっしゃらない、ですよね?まずは Quick Installation Guide をじっくりお読みになって & `LoadModule` の行をアンコメントして `mod_wdgi.so` が読み込まれるかどうかを確認されてみるのはいかがでしょうか。 ### 追記 2 質問者さんが同内容の質問を別に立てられたようなので、重複を防ぐためこちらの回答は終了します: * wsgi ウェブ公開 Internal Server Error