さくらインターネットレンタルサーバー スタンダードプランでCGIを動かす
さくらインターネットでCGIスクリプトが動く条件
以下の条件満たすようにcgiを作る
- スクリプトファイルを置いているディレクトリのパーミッションを705または755に設定する。
- フォルダ名にチルダを含めない。
- スクリプトファイルのパーミッションが705または755に設定する。
- 改行コードがUNIXの改行コード(LF)になっている
- シェバン( shebang line、 #! に続くパス)で、cgiスクリプトを実行するプログラムを指定する。
- perlのcgiなら、スクリプトの1行目に #!/usr/local/bin/perl などと書いている。
- pythonのcgiなら、スクリプトの1行目に #!/usr/local/bin/python などと書いている。
- rubyのcgiなら、スクリプトの1行目に #!/usr/local/bin/ruby などと書いている。
- スクリプト中で print “Content-type: text/html\n\n” のように、表示するコンテンツのタイプを始めにprintしている。
- コメント外のスクリプト中に全角文字(全角スペース等)を含まない。
今回の環境
perlbrewでインストールしたので shebang lineは、
perl 5, version 14, subversion 2 (v5.14.2) built for amd64-freebsd
#!/home/ユーザーネーム/perl5/perlbrew/perls/perl-5.14.2/bin/perl
pythonbrewでインストールしたので shebang lineは、
Python 3.2.3
#!/home/ユーザーネーム/.pythonbrew/pythons/Python-3.2.3/bin/python
rvmでインストールしたので shebang lineは、
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-freebsd8.1]
#!/home/ユーザーネーム/.rvm/rubies/ruby-1.9.3-p194/bin/ruby
サンプルcgi
perl.cgi
#!/home/hpdjnqemjvpczhps/perl5/perlbrew/perls/perl-5.14.2/bin/perl
#
use strict;
#
# -*- coding: utf-8 -*-
#
print "Content-type: text/html; charset=UTF-8";
print "\r\n\r\n";
print "The Perl WORLD!!";
python.cgi
#!/home/hpdjnqemjvpczhps/.pythonbrew/pythons/Python-3.2.3/bin/python
#
# -*- coding: utf-8 -*-
#
print ('Content-type: text/html; charset=UTF-8')
print ("\r\n\r\n")
print ("The Python WORLD!!")
ruby.cgi
#!/home/hpdjnqemjvpczhps/.rvm/rubies/ruby-1.9.3-p194/bin/ruby
#
# -*- coding: utf-8 -*-
#
puts "Content-type: text/html; charset=UTF-8'"
puts "\r\n\r\n"
puts "The RUBY WORLD!!"
今回、個人的につまづいた箇所
スクリプト中で print “Content-type: text/html\n\n” のように、表示するコンテンツのタイプを始めにprintしていなかった。
参考
さくらインターネットでPythonのCGIを動かす為のメモ
http://djlab.sakura.ne.jp/mydiary/?p=2626
cgiとphp - PHP/CGIについて
http://faq.sakuratan.com/wiki/wiki.cgi?cgi%a4%c8php#i4
0 コメント:
コメントを投稿