0
我正在学习如何使用ruby在我的web服务器上编写CGI应用程序。使用CGI库,我编写了下面的代码:Ruby CGI库:生成500内部服务器错误的基本代码
#!usr/bin/ruby
require 'cgi'
#print "Content-type: text/html\r\n\r\n" << Not needed with cgi.out?
cgi = CGI.new('html3')
cgi.out do
cgi.html do
cgi.head do
"\n" + cgi.title {"This is a test"}
end
+ cgi.body do "\n" +
cgi.form do "\n" +
cgi.hr +
cgi.h1 { "A form: " } + "\n" +
cgi.textarea("get_text") + "\n" +
cgi.br +
cgi.submit
end
end
end
end
我使用的Kubuntu 13.04使用的Apache2 web服务器,该文件位于/ usr/lib目录/ cgi-bin目录,并使用chmod如下:
[email protected]:~/projects/pickaxe/mini-projects/cgi-bin$ ls -l /usr/lib/cgi-bin/
total 12
-rwxr-xr-x 1 richard richard 170 May 27 13:30 cgi_escape.rb
-rwxr-xr-x 1 richard richard 395 May 27 13:30 cgi_htmlgen.rb
-rwxr-xr-x 1 richard richard 126 May 27 13:30 cgi_test.rb
我不认为权限的问题,因为cgi_test.rb和cgi_escape.rb工作只是 罚款。
有没有人有一个想法,为什么这给500内部服务器错误?请注意,这只是一个离线Web开发环境,所以如果有人对此感兴趣,我不能给出链接。
的Apache2 error.log中:
[email protected]:/var/log/apache2$ cat error.log
[Mon May 27 14:06:57 2013] [notice] Apache/2.2.22 (Ubuntu) PHP/5.4.6-1ubuntu1.2 configured -- resuming normal operations
[Mon May 27 14:07:04 2013] [error] [client 127.0.0.1] (2)No such file or directory: exec of '/usr/lib/cgi-bin/cgi_htmlgen.rb' failed
[Mon May 27 14:07:04 2013] [error] [client 127.0.0.1] Premature end of script headers: cgi_htmlgen.rb
[Mon May 27 14:07:04 2013] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
你有一个错误日志? –
添加了error.log。每当我刷新页面时,这三行就会显示出来。 – Senjai
如果我运行其中一个工作的脚本。像cgi_escape.rb,我得到的唯一消息是Favicon(这实际上并不重要)。这些并不使用CGI库进行输出,只是使用一系列的打印语句。 – Senjai