よくわからないエンジニア

よく分からないエンジニアの日々の記録

よくわからないエンジニア

apache mod_wsgiのインストール(ソースインストール)

もうすぐTwitterのUser Streams APIが廃止される。
後継のAPIはwebhook使うので、apacheでpythonが使える環境用意します。

目次

pythonの再インストール

とりあえず、apache上でpythonで書いたコードが動く環境を準備します。
djangoとかは出来たらそのうち…

まずは自分のpython環境ですが、

www.unknownengineer.net

当時何も考えずにインストールしましたが、sharedオプションつけないとwsgiがインストール出来ないようなので、configureし直します。

# cd /usr/local/src/Python-3.6.1/
# ./configure --prefix=/usr/local/python3.6 CFLAGS=-fPIC --enable-shared
# make
# make install
# ln -s /usr/local/python3.6/lib/libpython3.6m.so.1.0 /lib64/

最後のlnやらないと、今まで通りコマンドラインからpython3系が使えなくなるので、私の環境ではやりました。

mod_wsgiのインストール

下準備が終わったので、こちらをインストールしていきます。

# cd /usr/local/src/
# wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.6.2.tar.gz
# tar xvfz 4.6.2.tar.gz
# cd mod_wsgi-4.6.2/
# ./configure CFLAGS=-fPIC --with-python=/usr/local/python3.6/bin/python3.6 --with-apxs=/usr/local/apache2/bin/apxs
# make 
# make install

成功していればmod_wsgiがapacheのmodule配下に作成されているはずです。

apacheのコンフィグ変更

最後にapacheのコンフィグを一部変更します。
まずはmoduleを読み込むようにhttpd.confに追記します。

# vim /usr/local/apache2/conf/httpd.conf
LoadModule wsgi_module   modules/mod_wsgi.so

続いて使いたいvirtual hostの設定を変更します。
これらを追記してあげます。

# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<Directory xxx>
        Options ExecCGI
        AddHandler wsgi-script .py
        AddHandler wsgi-script .wsgi
</Directory>

後は適当にpythonを記述したpyファイルを作成し、実行されれば成功です。