2017年5月13日土曜日

PythonでHello World

Pythonで「<h1>This is my first CGI script.</h1> Hello World」と表示するプログラムを作ります。とりあえず「index.py」という名前のファイルを作ります。index.pyという名前のファイルを「C:\MyVM\MyCentOs\」のディレクトリに作ります。(以前に作ったvagrantとの共有フォルダです。他のディレクトリにあるならそこに作ってください。)そしたら「index.py」に次のように書きます。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

print ("Content-Type: text/html\n\r")
print ("""
    <TITLE>CGI script ! Python</TITLE>
    <H1>This is my first CGI script</H1>
    Hello, world!
""")

注意すべきなのは改行コードはLFで作らないとエラーになって動かないということです(CRはだめです)。サクラエディタとかで改行コードをLFにして作ってください。

そしたらTeraterm上で次のようなコマンドを実行します。

$ sudo vim /etc/httpd/conf/httpd.conf

vimがない場合はvimをインストールします。

$ sudo yum -y install vim-enhanced

/etc/httpd/conf/httpd.confをvimで開くことができます。ExecCGIを/var/www/htmlの「cgi handler」の場所に書き足します。他にも似たようなのがあるのでディレクトリが/var/www/htmlであることを確認してください。


<Directory "/var/www/html">
    Options Indexes FollowSymlinks ExecCGI
    AllowOverride None
    Require all granted
</Directory>

cgi handlerの場所

それから .py をAccess handlerに加えます。
こんな感じ。

AddHandler cgi-script .cgi .py


Access handlerはここ pyをここに足す

できたら「:wq」もしくは「shift + zz」で「保存して終了」します。

Apache (httpd)を再起動します。
$ sudo systemctl restart httpd

そしたらファイルにブラウザからアクセスします。
http://192.168.33.10/index.py

Hello World!!ちゃんと表示されてますね。

もしエラー500とか404がでるなら何らかの設定が間違っています。以下のコマンドでサーバーログ、エラーの確認ができるので参考にしてください。

$ sudo less /var/log/httpd/error_log

エラーをググると大抵対処法がヒットします

リンク:
1. VagrantとVirtual box
2. アパッチのインストール
3. MySQLのインストール
4. Pythonのインストール
5. PythonでHello World