RedHat や CentOS など Linux で Python を利用する方法


[初回公開] 2019年11月13日

Python は世界中で使われるプログラム言語の 1 つで、ウェブアプリケーションにおいてはモジュールが豊富に用意されているので初心者にも手が付けやすく、最近では RaspberryPi など IoT 機器やセンサーの制御にも利用されており、RedHat や CentOS など Linux で Python を利用する方法について紹介する。

RedHat や CentOS など Linux で Python を利用する方法

1.Python とは

Python とは、サーバやパソコンで動作するスクリプトで、人工知能やデータ解析など様々な用途に利用されるプログラム言語である。
ブラウザで表示するウェブサイトやウェブアプリケーションの開発にも用いられる。

Python


Python は無料で利用でき、ライブラリと呼ばれる機能を追加インストールすることで自分でプログラムせずとも簡単なコーディングで開発できるのが特徴である。

2.Linux にインストールされている Python とは

RedHat や CentOS など Linux 系の OS は最小構成でインストールしても Python は初期から標準インストールされているので、別途 Python をインストールする必要がない。

ただし、RedHat7 など古い OS バージョンは初期インストールされている Python のバージョンは 2.7 系となり古いため、最新のバージョン 3 系をインストールする際は別途インストールが必要になる。
インストールされている Python のバージョンを確認するコマンドは下記となる。

# python --version
Python 2.7.5


尚、3 系をインストールすると 2 系と 3 系は共存した状態になるため、3 系のバージョンを確認を行う場合は下記となる。
現段階ではまだインストールしていないので「見つからない」と表示される。

# python3 --version
-bash: python3: コマンドが見つかりません

3.Python スクリプトで Hello World を表示する方法

Python スクリプトで Hello World を表示する方法には、TeraTerm(テラターム)など SSH でコマンド操作するコンソールで直接実行する方法と、Phthon スクリプトをウェブアプリケーション化してブラウザで表示させる方法がある。

今回は Linux サーバの CentOS 上で Python を動作させるとともに、ブラウザでプログラムのサンプルコードでよく用いられる「Hello World」の表示をさせるためにウェブサーバ(Apache)の設定を行う流れが次の通りである。

3-1.サーバのコンソール上で Python を実行する方法

サーバのコンソール上で Python を実行する方法は、Python スクリプトを任意のディレクトリに作成して python コマンドで実行するだけである。



Python が動作するファイルは拡張子 .py となっており、その中に処理内容をプログラムする。
ブラウザで表示させる場合はウェブサーバの公開ディレクトリに Python スクリプトを設置する必要があるため、後述する。

# cd /var/www/html/ → 公開ディレクトリに移動
# mkdir python → Python スクリプトを設置するディレクトリ作成
# cd python/
# vi index.py
  → print("Hello World!") と記入して保存

Python スクリプトの準備ができれば SSH などコマンドで操作できるコンソール上で Python が正常に動作するか確認を行う。
Python コマンドの後ろにスクリプトのファイル名を入力すると実行できる。

# python index.py


3-2.ウェブサーバの Apache で Python を表示する設定方法

前述では既にウェブサーバの公開ディレクトリに Python スクリプトを設置した状態だが、このままブラウザでアクセスすると Python スクリプトに記述した内容がそのまま表示されてしまい、処理するソースコードもそのままブラウザで表示されてしまう。

そのため、ソースコードは表示させずに純粋に Python が実行した結果を返してブラウザに表示させるためにはウェブサーバの設定が必要となる。

今回はウェブサーバとして Apache を利用することとし、Apache の設定ファイルとなる /etc/httpd/conf/httpd.conf を開く。

># vi /etc/httpd/conf/httpd.conf

<Directory "/var/www/html">
  Options FollowSymLinks
  ▼
  Options FollowSymLinks ExecCGI → CGI が動作する設定
</Directory>

<IfModule mime_module>
  #AddHandler cgi-script .cgi
  ▼
  AddHandler cgi-script .cgi .py → .py を CGI と認識させる
</IfModule>


ウェブサーバの設定ファイルを変更した後は内容を適用するためにサービス再起動を実施する。

# systemctl restart httpd.service

加えて、もう 1 つ設定が必要となり、Apache の設定では .py が CGI として動作するためにパーミッションを変更して実行権限を与える必要がある。

# chmod 755 index.py → 実行権限を付与
# vi index.py → 再度 Python スクリプトを開く

#!/usr/bin/python → Python として動作する一行を追記
print 'Content-Type: text/html\n' → ブラウザで HTML として表示させるため追記
print "Hello world!" → Hello world を表示させる実行文

この状態でブラウザでアクセスすると Python スクリプトがウェブアプリケーションとして実行されブラウザでソースコードは表示されずに実行結果の「Hello World」だけが表示される。

http://[サーバの IP またはホスト名]/python/index.py


今回は公開ディレクトリの root 直下にディレクトリ「python」 の中にスクリプトを配置したので、ブラウザでアクセスする場合の URL は上記のようになる。

また、index.py の入力を省略して Python スクリプトで構成していることを利用者に開示したくない場合は、Apache の設定で index の名称のファイルは省略してアクセスできる設定を httpd.conf 内の DirectoryIndex で index.py を追記することで省略してアクセスすることが可能になる。

関連記事

コメントを残す