CentOS7 に Python3 をインストールして Apache 上で CGI として動かす
タイトルのとおり。CentOS 7 系のサーバに、とりあえず何らかの Python 3 系をインストールして、Apache 上で CGI として動かせるようにした。
目次
Python3 をインストールする
本稿執筆時点では、Yum でサクッと入れられる Python は v3.6 系が最新だった。
$ yum install -y https://centos7.iuscommunity.org/ius-release.rpm
$ yum install -y python36u python36u-libs python36u-devel python36u-pip
# 以下のようにインストールされた
$ which python3
/bin/python3
$ which python3.6
/bin/python3.6
$ python3 -V
Python 3.6.8
# pip3 もインストールされている
$ which pip3
/bin/pip3
$ pip3 --version
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)
python
・pip
コマンドはデフォルトでインストールされていた v2.7.5 のモノを指しているので、Python3 系を使いたい場合は python3
・pip3
ですな。
Apache で CGI として使えるようにする
Apache の設定ファイルを開き、次のような設定を入れていく。
$ vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html">
Options Indexes FollowSymLinks ExecCGI
AddHandler cgi-script .cgi .rb .py
AllowOverride All
Require all granted
</Directory>
こんな感じで、Options ExecCGI
とか、AddHandler cgi-script .py
とかを入れていけば OK。
設定ができたら、
$ apachectl
を叩いて再起動してみて、設定ファイルにエラーがないか確認し、設定を反映する。
Python スクリプトを書いてみる
次のような Python CGI スクリプトを書いて、動作確認してみる。
$ vi /var/www/html/example.py
#!/usr/bin/python3
import os
print('Content-Type: text/html; charset=UTF-8\n')
print('TEST : ' + os.environ['SCRIPT_NAME'])
コレで
http://example.com/example.py
にアクセスして、TEST : /example.py
と表示されたら OK。
以上
コレで Python を CGI として動かせる CentOS Apache サーバができた。