{"id":495,"date":"2016-12-22T22:31:16","date_gmt":"2016-12-22T13:31:16","guid":{"rendered":"http:\/\/okamurax.com\/?p=495"},"modified":"2017-03-17T03:07:52","modified_gmt":"2017-03-16T18:07:52","slug":"apache%e3%81%aecgi%e3%81%a7ruby%e3%82%92%e5%91%bc%e3%81%b3%e5%87%ba%e3%81%99%e3%80%82","status":"publish","type":"post","link":"https:\/\/appbay.org\/?p=495","title":{"rendered":"Apache\u306eCGI\u3067Ruby\u3092\u547c\u3073\u51fa\u3059\u3002"},"content":{"rendered":"<h2>Apache\u306e\u8a2d\u5b9a<\/h2>\n<p><span style=\"color: #0000ff;\">sudo find \/ -name 000-default.conf<br \/>\n<\/span>\u3067\u691c\u7d22\u304b\u3051\u308b\u30682\u7b87\u6240\u3042\u308b\u3002<\/p>\n<p><span style=\"color: #0000ff;\">\/etc\/apache2\/sites-enabled\/000-default.conf<\/span><br \/>\n<span style=\"color: #0000ff;\">\/etc\/apache2\/sites-available\/000-default.conf<\/span><\/p>\n<p>\u8a2d\u5b9a\u3092\u8aad\u307f\u8fbc\u307e\u308c\u3066\u3044\u308b\u306e\u306f\u3001enabled\u3067\u3001available\u306e<br \/>\n\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3078\u30b7\u30f3\u30dc\u30ea\u30c3\u30af\u3057\u3066\u3044\u308b\u3002<\/p>\n<p>mods-enabled\u306e\u4e2d\u3067\u30b7\u30f3\u30dc\u30ea\u30c3\u30af\u3057\u3066\u3044\u308b\u306e\u306f\u3001<br \/>\n<span style=\"color: #0000ff;\">cgid.conf<\/span><br \/>\n<span style=\"color: #0000ff;\">cgid.load<\/span><br \/>\n\u3060\u3051\u3002<\/p>\n<p>mods-available\u306e\u4e2d\u306bcgi\u95a2\u9023\u306f\u3001<br \/>\n<span style=\"color: #0000ff;\">authnz_fcgi.load<\/span><br \/>\n<span style=\"color: #0000ff;\">cgi.load<\/span><br \/>\n<span style=\"color: #0000ff;\">cgid.conf<\/span><br \/>\n<span style=\"color: #0000ff;\">cgid.load<\/span><br \/>\n<span style=\"color: #0000ff;\">proxy_fcgi.load<\/span><br \/>\n<span style=\"color: #0000ff;\">proxy_scgi.load<\/span><br \/>\n\u3060\u3051\u3002<\/p>\n<p>sites-available\u3092\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5909\u66f4\u3002<br \/>\n<span style=\"color: #0000ff;\">&lt;Directory \/home\/okamura\/www\/&gt;<\/span><br \/>\n<span style=\"color: #0000ff;\"> Require all granted<\/span><br \/>\n<span style=\"color: #0000ff;\"> AllowOverride All<\/span><br \/>\n<span style=\"color: #0000ff;\"> Options +ExecCGI<\/span><br \/>\n<span style=\"color: #0000ff;\"> AddHandler cgi-script .rb<\/span><br \/>\n<span style=\"color: #0000ff;\">&lt;\/Directory&gt;<\/span><\/p>\n<h2>CGI\u5074(Ruby)<\/h2>\n<p>ruby\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u8a18\u8ff0\u3057\u3001<br \/>\nchmod +x \u3067\u5b9f\u884c\u6a29\u9650\u3092\u3064\u3051\u308c\u3070OK\u3002<\/p>\n<pre class=\"lang:ruby decode:true \">#!\/usr\/bin\/ruby\r\nprint \"Content-Type: text\/html\\n\\n\"\r\nprint \"&lt;html&gt;\\n\"\r\nprint \"&lt;head&gt;\\n\"\r\nprint \"&lt;title&gt;CGI Test&lt;\/title&gt;\\n\"\r\nprint \"&lt;\/head&gt;\\n\"\r\nprint \"&lt;body&gt;\\n\"\r\nprint \"Hello CGI!\\n\"\r\nprint \"&lt;\/body&gt;\\n\"\r\nprint \"&lt;\/html&gt;\\n\"<\/pre>\n<p>\u30a8\u30e9\u30fc\u306e\u5834\u5408\u3001<br \/>\n\u6539\u884c\u30b3\u30fc\u30c9\u304c\u9055\u3063\u3066\u3044\u3066\u30cf\u30de\u30c3\u305f\u3002Win\u3067\u4f5c\u3063\u3066Linux\u306b\u8ee2\u9001\u306e\u5834\u5408\u6ce8\u610f\u3002<\/p>\n<h2>GET\u3092\u53d7\u53d6\u305f\u3044\u5834\u5408<\/h2>\n<p>\u9001\u4fe1\u5074(Form)<\/p>\n<pre class=\"lang:xhtml decode:true \">&lt;form action=\"test.rb\" method=\"GET\"&gt;\r\n&lt;input type=\"text\" name=\"sub\" value=\"\"&gt;\r\n&lt;input type=\"submit\"&gt;\r\n&lt;\/form&gt;<\/pre>\n<p>CGI(Ruby)<\/p>\n<pre class=\"lang:ruby decode:true\">#!\/usr\/bin\/ruby\r\n\r\nrequire 'cgi'\r\ncgi = CGI.new\r\n\r\nprint \"Content-Type: text\/html\\n\\n\"\r\nprint \"&lt;html&gt;\\n\"\r\nprint \"&lt;head&gt;\\n\"\r\nprint \"&lt;title&gt;CGI Test&lt;\/title&gt;\\n\"\r\nprint \"&lt;\/head&gt;\\n\"\r\n\r\nprint \"&lt;body&gt;\\n\"\r\n\r\nprint cgi[\"sub\"]\r\nprint \"&lt;\/body&gt;\\n\"\r\nprint \"&lt;\/html&gt;\\n\"<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Apache\u306e\u8a2d\u5b9a sudo find \/ -name 000-default.conf \u3067\u691c\u7d22\u304b\u3051\u308b\u30682\u7b87\u6240\u3042\u308b\u3002 \/etc\/apache2\/sites-enabled\/000-default.conf \/etc\/ap &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/appbay.org\/?p=495\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;Apache\u306eCGI\u3067Ruby\u3092\u547c\u3073\u51fa\u3059\u3002&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[42],"class_list":["post-495","post","type-post","status-publish","format-standard","hentry","category-1","tag-apache"],"_links":{"self":[{"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/posts\/495","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/appbay.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=495"}],"version-history":[{"count":7,"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/posts\/495\/revisions"}],"predecessor-version":[{"id":1100,"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/posts\/495\/revisions\/1100"}],"wp:attachment":[{"href":"https:\/\/appbay.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=495"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/appbay.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=495"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/appbay.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}