2021年2月14日日曜日

PythonをCGIとして実行する - CentOS7の場合

プロバイダ: さくらインターネットVPS
OS: CentOS7
Python3.6を手動でインストール済み

まず、Pythonがインストールされているパスを調べておきます。
通常は /usr/bin/python3.6
ですが、各自環境に合わせてください。

◆cgi-binディレクトリ内でPythonを実行させる場合

1./etc/httpd/conf/httpd.conf 内の以下赤文字部分を追記

<IfModule alias_module>
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>

<Directory "/var/www/cgi-bin">
    AllowOverride None
    #Options None #無効化
    Options ExecCGI #追記
    Require all granted
    AddHandler cgi-script .py .pyc #追記
</Directory>

※httpd.conf編集後、Apacheを再起動($ systemctl restart httpd)すること。

2./var/www/cgi-bin 内に以下の内容の hello.py を保存する。

#!/usr/bin/python3.6
import ioimport sys# 日本語を使用する場合、出力ストリームの文字エンコーディングを指定sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
# HTTP ヘッダprint('Content-Type: text/html; charset=utf-8')print() # blank line, end of headers
# HTML 本文print('<html><body>')print('Hello, world.<br>')print('こんにちは、世界。<br>')print('</body></html>')

※hello.pyファイルは、改行コード:LF、パーミッション:755にすること。

3.http://ホスト名/cgi-bin/hello.py にアクセスすると実行される。


◆ドキュメントルート以下で実行する場合

ドキュメントルート例:/var/www/html/python

1.以下の内容で /var/www/html/python/.htaccessファイルを保存する。

Options +ExecCGI
AddHandler cgi-script .py .pyc

2.前述と同じ内容の /var/www/html/python/hello.py を保存する。

3.http://ホスト名/python/hello.py にアクセスすると実行される。


参考
CentOS7上でPython3をCGIとして動かすまで
https://qiita.com/kusyami_p/items/7ca4fd774c12fc6324a2

pythonファイルをCGIとしてレンタルサーバー上でphp経由でCorn実行することで「500 Internal Server Error」を回避する方法 - なろう分析記録
https://karupoimou.hatenablog.com/entry/2019/05/21/184126

0 件のコメント:

コメントを投稿