torinaブログ

DjangoとBootstrap4で作成したブログ
Python, Django, Kivy, Bootstrap, Apache等のメモです
ソースコード

さくらVPS(CentOS) Python3.5とmod_wsgiの導入

Apache Apacheモジュール マイサーバ初期設定1 マイサーバ初期設定2
約351日前 2016年3月6日5:52
Pythonの導入です。
さくらVPSのCentOS6、CentOS7で動作を確認しています。

まず必要なもののインストール。
最低限下記のものがあれば、ちょっとしたDjangoアプリなら実際に公開できます。
# これでmakeやgccなど様々な開発環境が整えられる。入れておけば間違いなし
yum groupinstall "Development Tools"

# DSOという動的リンクを利用したモジュールのビルドには以下が必要。これも入れておいて間違いなし
yum install httpd-devel

# pipが使えなかったり、Ignoring ensurepip failure: pip...等と出る場合はこれが足りてない
yum install openssl-devel

# No module named '_sqlite3' 等が出たらいやなので、インストールしておく
yum install sqlite-devel


今回の例はwgetで書いていますが、CentOS7には初期でwgetがないので、欲しい方はyumでインストールしましょう。
curlでも同様のことは可能です。
yum install wget


./configureにprefixの指定をしないと/usr/local に入ります。
cd /usr/local/src/
wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
tar zxvf Python-3.5.2.tgz
cd Python-3.5.2
./configure --enable-shared
make && make altinstall
ln -s /usr/local/lib/libpython3.5m.so.1.0 /lib64/


make install は python3 バイナリを上書きまたはリンクを破壊してしまうかもしれません。そのため、make install の代わりに exec_prefix/bin/pythonversion のみインストールする make altinstall が推奨されています。


http://docs.python.jp/3.5/using/unix.html


ちゃんと動くか、確かめておきましょう。動けばOKです。
python3.5
pip3.5


mod_wsgiの導入です
cd /usr/local/src/
wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.5.6.tar.gz
tar xvzf 4.5.6.tar.gz
cd mod_wsgi-4.5.6
./configure --with-python=/usr/local/bin/python3.5
make && make install



Apacheの拡張モジュールは、ちゃんと読み込まないと 効果がないぜ!
httpd.confでもいいですし、どこかで読み込みと設定をしましょう。
vim /etc/httpd/conf/httpd.conf


私はDjangoを使うときはVirtualHostで動かします。
httpd.confの下のほうにある#NameVirtualHost *:80の#を外し、2行追加します。
追加した下2行がmod_wsgiモジュールの読み込みと設定です。
NameVirtualHost *:80
LoadModule wsgi_module modules/mod_wsgi.so
WSGISocketPrefix run/wsgi



忘れずに再起動しましょう。
# Centos6
service httpd restart

# CentOS7
systemctl reload httpd