Apacheの設定
sudo find / -name 000-default.conf
で検索かけると2箇所ある。
/etc/apache2/sites-enabled/000-default.conf
/etc/apache2/sites-available/000-default.conf
設定を読み込まれているのは、enabledで、availableの
設定ファイルへシンボリックしている。
mods-enabledの中でシンボリックしているのは、
cgid.conf
cgid.load
だけ。
mods-availableの中にcgi関連は、
authnz_fcgi.load
cgi.load
cgid.conf
cgid.load
proxy_fcgi.load
proxy_scgi.load
だけ。
sites-availableを以下のように変更。
<Directory /home/okamura/www/>
Require all granted
AllowOverride All
Options +ExecCGI
AddHandler cgi-script .rb
</Directory>
CGI側(Ruby)
rubyのファイルに以下のように記述し、
chmod +x で実行権限をつければOK。
1 2 3 4 5 6 7 8 9 10 |
#!/usr/bin/ruby print "Content-Type: text/html\n\n" print "<html>\n" print "<head>\n" print "<title>CGI Test</title>\n" print "</head>\n" print "<body>\n" print "Hello CGI!\n" print "</body>\n" print "</html>\n" |
エラーの場合、
改行コードが違っていてハマッた。Winで作ってLinuxに転送の場合注意。
GETを受取たい場合
送信側(Form)
1 2 3 4 |
<form action="test.rb" method="GET"> <input type="text" name="sub" value=""> <input type="submit"> </form> |
CGI(Ruby)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#!/usr/bin/ruby require 'cgi' cgi = CGI.new print "Content-Type: text/html\n\n" print "<html>\n" print "<head>\n" print "<title>CGI Test</title>\n" print "</head>\n" print "<body>\n" print cgi["sub"] print "</body>\n" print "</html>\n" |