Apacheで動かすphp,python,ruby の Hello World まとめ
Apache上でphp,python,rubyをそれぞれちゃんとWEBアプリとして動かす時の手順をまとめてみた。
対象プラットフォームはCentOS5.*
Apacheの準備
以下ディレティブに以下の記述があることを確認
nなければ追加
DirectoryIndex index.php index.py index.rb AddHandler cgi-script .cgi .pl .py .rb
ruby,pythonの場合は、動かしたいディレクトリへの設定として、以下のoptionsを記入
Options ExecCGI
Python
pythonではCGIとして動いているので、以下のように表記
#!/usr/bin/python # coding:utf-8 print "Content-Type: text/html\n"; print "Hello World!";
まず一行目でpythonのパスを指定。
次に、コーディングを指定。
次に、ヘッダーを出力し、ここでコンテントタイプを指定。
これがないと即エラーなので注意。
かつ、ヘッダーと本コードの間には一行の空行が必要。
printメソッドは強制的にひとつ改行を出力するので、文末に\nでもう一回改行すれば空行ができる。
そのあと、Hello Worldを出力
これをindex.pyで保存。
さらに、実行権限を与えるためパーミッション設定を755にする必要があります。
★これは、サーバーによって異なります。所有者をApacheにする必要があったり、色々です。
特にレンタルサーバーではそのレンタルサーバーの規定に従う必要があります。
chmode 755 index.py
これでWEBで閲覧できます。
Ruby
#!/usr/bin/ruby -Ku # -*- coding: utf-8 -*- print "Content-Type: text/html\n\n"; print "Hello World";
一行目はやはりrubyの場所をフルパスで示します。
その際、引数を渡しています。 -Ku とは、文字コードをUTF-8で処理するようにとの意味です。
これがないと、日本語は文字化けします。
次にヘッダーです。コンテントタイプを指定します。
Rubyのprintメソッドは、強制改行を一つ入れないので、ここで二回\nを末尾に入れておきます。
そして、Hello Worldを出力します。
これを、index.rb で保存し、パーミッション設定を755に変更すれば、閲覧することができます。