{"id":4936,"date":"2015-01-04T15:48:49","date_gmt":"2015-01-04T06:48:49","guid":{"rendered":"http:\/\/www.vincentina.net\/?p=4936"},"modified":"2020-02-23T18:54:05","modified_gmt":"2020-02-23T09:54:05","slug":"index-rhtml-erb-cgi-%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6-ruby-%e3%81%a7-html","status":"publish","type":"post","link":"https:\/\/www.vincentina.net\/?p=4936","title":{"rendered":"index.rhtml + erb.cgi \u3092\u4f7f\u3063\u3066 ruby \u3067 html"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p>Rails\u3092\u5c11\u3057\u89e6\u3063\u3066\u307f\u3066\u3061\u3087\u3063\u3068\u6a5f\u80fd\u304c\u591a\u3059\u304e\u308b\u306a\u3041\u3063\u3066\u3053\u3068\u3067Sinatra\u3067\u30a2\u30d7\u30ea\u3092\u4f5c\u3063\u3066\u307f\u3066\u3001\u5f8c\u304b\u3089\u307e\u305fRails\u3067\u3084\u3063\u3066\u307f\u3088\u3046\u3068\u601d\u3063\u3066\u3044\u307e\u3057\u305f\u304c\u3001\u306a\u305c\u304b\u9006\u8d70\u3057\u3066\u4eca\u56de\u306fErb\u306e\u307f\u3092\u4f7f\u3063\u3066Ruby\u3067Html\u3092\u3084\u3063\u3066\u307f\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>Apache\u306e\u8a2d\u5b9a\u306fCGI\u3092\u8a31\u53ef\u3059\u308b\u3053\u3068\u306f\u5fc5\u9808\u3067\u3059\u304c\u3001\u30e6\u30fc\u30b6\u30fc\u5358\u4f4d\u3067CGI\u306e\u8a31\u53ef\u3068.htaccess\u306e\u66f4\u65b0\u3092\u8a31\u53ef\u3057\u305f\u65b9\u304c\u697d\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002<br \/>\n\u305d\u3046\u3057\u3066\u304a\u304f\u3068\u3001index.rhtml\u3092\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30eb\u30fc\u30c8\u3067\u8aad\u3080\u3088\u3046\u306b\u3059\u308b\u4e8b\u3060\u3063\u305f\u308a\u3001\u30e6\u30fc\u30b6\u30fc\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305frbenv\u3067\u7ba1\u7406\u3057\u3066\u3044\u308b\u30d0\u30fc\u30b8\u30e7\u30f3\u306eRuby\u3067\u306e\u5b9f\u884c\u3082\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<br \/>\n\u4ee5\u4e0b\u3067\u52d5\u304f\u3068\u601d\u3044\u307e\u3059\u304c\u3001\u3042\u308a\u3042\u308a\u8a2d\u5b9a\u306a\u306e\u3067\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306f\u500b\u3005\u3067\u5909\u3048\u308b\u5fc5\u8981\u3042\u308a\u3042\u308a\u3002<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n&lt;IfModule mod_userdir.c&gt;\r\n\u00a0\u00a0\u00a0 # UserDir disabled\r\n\u00a0\u00a0\u00a0 UserDir public_html\r\n&lt;\/IfModule&gt;\r\n\r\n&lt;Directory \/home\/*\/public_html&gt;\r\n\u00a0\u00a0\u00a0 AllowOverride All\r\n\u00a0\u00a0\u00a0 Options Includes ExecCGI FollowSymLinks\r\n\u00a0\u00a0\u00a0 &lt;Limit GET POST OPTIONS&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Order allow,deny\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Allow from all\r\n\u00a0\u00a0\u00a0 &lt;\/Limit&gt;\r\n\u00a0\u00a0\u00a0 &lt;LimitExcept GET POST OPTIONS&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Order deny,allow\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Deny from all\r\n\u00a0\u00a0\u00a0 &lt;\/LimitExcept&gt;\r\n&lt;\/Directory&gt;\r\n<\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"brush: ruby; title: ; notranslate\" title=\"\">\r\n.htaccess\r\n\r\nDirectoryIndex index.html index.rhtml\r\nAddHandler rubypage .rhtml\r\nAction rubypage \/erb.cgi\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>erb.cgi \u306f\u3053\u3061\u3089\u304b\u3089<\/p>\n<p><a href=\"http:\/\/dekstop.de\/weblog\/2006\/01\/rhtml_on_osx_with_apache_and_erb\/\" target=\"_blank\" rel=\"noopener noreferrer\">Serving .rhtml Files on OS X With Apache and ERB<\/a> &#8211; dekstop weblog:<\/p>\n<p>\u3042\u308a\u304c\u305f\u304f\u5229\u7528\u3057\u307e\u3059\u304c\u3001\u3053\u306e\u307e\u307e\u3060\u3068Debug\u7528\u306b\u8a2d\u7f6e\u3055\u308c\u3066\u3044\u308bApache\u306e\u60c5\u5831\u304c\u307e\u308b\u3063\u3068\u51fa\u3061\u3083\u3044\u307e\u3059\u306e\u3067\u5c11\u3057\u3060\u3051\u5f04\u304f\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n\r\ndiff -u\r\n\r\n--- public_html\/erb.cgi.org\u00a0\u00a0 \u00a02015-01-04 14:53:31.936164210 +0900\r\n+++ public_html\/erb.cgi\u00a0\u00a0 \u00a02015-01-04 14:53:57.551158992 +0900\r\n@@ -1,4 +1,6 @@\r\n-#!\/usr\/local\/bin\/ruby\r\n+#!\/home\/takeken\/.rbenb\/shims\/ruby\r\n+\r\n+print &quot;Content-Type: text\/html\\n\\n&quot;;\r\n\u00a0\r\n\u00a0# erb.cgi\r\n\u00a0#\r\n@@ -9,11 +11,14 @@\r\n\u00a0# Martin Dittus (martin@dekstop.de), 2006-01-09\r\n\u00a0# last change: 2006-01-11\r\n\u00a0\r\n+# 20150104 takeken little change\r\n+\r\n\u00a0require 'time'\r\n\u00a0require 'erb'\r\n\u00a0\r\n\u00a0time = Time.now.httpdate\r\n\u00a0\r\n+\r\n\u00a0HEADERS = &lt;&lt;EOF\r\n\u00a0Date: #{ time }\r\n\u00a0Server: #{ ENV&#x5B;'SERVER_SOFTWARE'] }\r\n@@ -33,7 +38,8 @@\r\n\u00a0\u00a0\u00a0\u00a0 raise &quot;Attempt to access invalid path: #{path}&quot; unless path.index(ENV&#x5B;'DOCUMENT_ROOT']) == 0\r\n\u00a0\u00a0 end\r\n\u00a0\u00a0 erb = File.open(path) { |f| ERB.new(f.read) }\r\n-\u00a0 print HEADERS + erb.result(binding)\r\n+#\u00a0 print HEADERS + erb.result(binding)\r\n+\u00a0 print erb.result(binding)\r\n\u00a0 \u00a0\r\n\u00a0rescue Exception\r\n\u00a0 \u00a0\r\n@@ -44,13 +50,13 @@\r\n\u00a0\u00a0 print &quot;&lt;pre&gt;#{ $! }&lt;\/pre&gt;&quot;\r\n\u00a0\r\n\u00a0\u00a0 # debug info\r\n-\u00a0 print &quot;&lt;h2&gt;Backtrace&lt;\/h2&gt;&quot;\r\n-\u00a0 print &quot;&lt;pre&gt;#{$!.backtrace.join(&quot;\\n&quot;)}&lt;\/pre&gt;&quot;\r\n+#\u00a0 print &quot;&lt;h2&gt;Backtrace&lt;\/h2&gt;&quot;\r\n+#\u00a0 print &quot;&lt;pre&gt;#{$!.backtrace.join(&quot;\\n&quot;)}&lt;\/pre&gt;&quot;\r\n\u00a0\r\n-\u00a0 print &quot;&lt;h2&gt;Environment&lt;\/h2&gt;&quot;\r\n-\u00a0 print &quot;&lt;pre&gt;#{ENV.keys.map { |key| key + ' = ' + ENV&#x5B;key] + &quot;\\n&quot;} }&lt;\/pre&gt;&quot;\r\n+#\u00a0 print &quot;&lt;h2&gt;Environment&lt;\/h2&gt;&quot;\r\n+#\u00a0 print &quot;&lt;pre&gt;#{ENV.keys.map { |key| key + ' = ' + ENV&#x5B;key] + &quot;\\n&quot;} }&lt;\/pre&gt;&quot;\r\n\u00a0\r\n-\u00a0 print &quot;&lt;hr&gt;&quot;\r\n-\u00a0 print &quot;&lt;i&gt;#{__FILE__} -- #{time}&lt;\/i&gt;&quot;\r\n+#\u00a0 print &quot;&lt;hr&gt;&quot;\r\n+#\u00a0 print &quot;&lt;i&gt;#{__FILE__} -- #{time}&lt;\/i&gt;&quot;\r\n\u00a0 \u00a0\r\n\u00a0end\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\u3053\u308c\u3067\u571f\u53f0\u306f\u3067\u304d\u307e\u3057\u305f\u3002<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&#x5B;takeken@ubuntu]$ cat public_html\/test.rhtml\r\n&lt;html&gt;\r\n&lt;head&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n&lt;h2&gt;\u305f\u3051\u3051\u3093\u306eRuby\u52c9\u5f37\u65e5\u8a18&lt;\/h2&gt;\r\n&lt;h6&gt;\u3054\u5229\u7528\u306f\u81ea\u5df1\u8cac\u4efb\u3067(^_^)v&lt;\/h6&gt;\r\n\r\n&lt;h3&gt;&lt;b&gt;index.rhtml + erb.cgi \u3092\u4f7f\u3063\u3066 ruby \u3067 html&lt;\/b&gt;&lt;\/h3&gt;\r\n\r\n&lt;p&gt;\u305f\u3060\u3044\u307e&lt;%=Time.now%&gt;\u3067\u3054\u3056\u3044\u307e\u3059\u3002&lt;\/p&gt;\r\n\r\n\u30eb\u30fc\u30d7\u306e\u958b\u59cb\r\n&lt;% %w{One Two Three}.each do |x| %&gt;\r\n\u00a0 &lt;%=\u00a0\u00a0\u00a0 x %&gt; \u56de\u76ee\r\n&lt;% end %&gt; \r\n\r\n&lt;% yen = 2980 * 1.05 %&gt;\r\n&lt;p&gt;\r\n\u672c\u306e\u5024\u6bb5\u306f&lt;%= yen %&gt;\u5186\u3067\u3059\u3002\r\n&lt;\/p&gt;\r\n\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\u3053\u3093\u306a\u611f\u3058\u306eindex\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u3063\u3066\u307f\u307e\u3059\u305f\u3002\u30d6\u30e9\u30a6\u30b6\u304b\u3089\u898b\u308b\u3068\u3053\u3046\u306a\u308a\u307e\u3059\u3002<\/p>\n<p><a href=\"http:\/\/www.vincentina.net\/wp-content\/uploads\/2015\/01\/web001.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.vincentina.net\/wp-content\/uploads\/2015\/01\/web001.jpg\" alt=\"web001\" width=\"475\" height=\"252\" class=\"alignnone  wp-image-4947\" srcset=\"https:\/\/www.vincentina.net\/wp-content\/uploads\/2015\/01\/web001.jpg 609w, https:\/\/www.vincentina.net\/wp-content\/uploads\/2015\/01\/web001-300x159.jpg 300w\" sizes=\"auto, (max-width: 475px) 85vw, 475px\" \/><\/a><\/p>\n<p>\u306f\u3058\u3081\u306f\u30d2\u30a2\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u4f75\u7528\u3057\u3066CGI\u3068RUBY\u3067\u3084\u3063\u3066\u3044\u305f\u306e\u3067\u3059\u304c\u3001\u3082\u3063\u3068\u826f\u3044\u65b9\u6cd5\u306f\u306a\u3044\u3082\u306e\u304b\u3068\u63a2\u3057\u3066\u3044\u3066\u898b\u3064\u3051\u307e\u3057\u305f\u3002<\/p>\n<p>\u53c2\u8003\u30b5\u30a4\u30c8<\/p>\n<p>START HERE <a href=\"http:\/\/bremen.blog.shinobi.jp\/ruby\/ruby%E5%9F%8B%E3%82%81%E8%BE%BC%E3%81%BF%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88rhtml%20on%20windows\" target=\"_blank\" rel=\"noopener noreferrer\">ruby\u57cb\u3081\u8fbc\u307f\u30b9\u30af\u30ea\u30d7\u30c8rhtml on windows:<\/a><\/p>\n<p>&nbsp;<\/p>\n<div class='wp_social_bookmarking_light'>        <div class=\"wsbl_twitter\"><a href=\"https:\/\/twitter.com\/share\" class=\"twitter-share-button\" data-url=\"https:\/\/www.vincentina.net\/?p=4936\" data-text=\"index.rhtml + erb.cgi \u3092\u4f7f\u3063\u3066 ruby \u3067 html\" data-via=\"TakekenTw\" data-lang=\"ja\">Tweet<\/a><\/div><\/div>\n<br class='wp_social_bookmarking_light_clear' \/>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Rails\u3092\u5c11\u3057\u89e6\u3063\u3066\u307f\u3066\u3061\u3087\u3063\u3068\u6a5f\u80fd\u304c\u591a\u3059\u304e\u308b\u306a\u3041\u3063\u3066\u3053\u3068\u3067Sinatra\u3067\u30a2\u30d7\u30ea\u3092\u4f5c\u3063\u3066\u307f\u3066\u3001\u5f8c\u304b\u3089\u307e\u305fRails\u3067\u3084\u3063\u3066\u307f\u3088\u3046\u3068\u601d\u3063\u3066\u3044\u307e\u3057\u305f\u304c\u3001\u306a\u305c\u304b\u9006\u8d70\u3057\u3066\u4eca\u56de\u306fErb\u306e\u307f\u3092\u4f7f\u3063\u3066Ruby\u3067Htm &hellip; <a href=\"https:\/\/www.vincentina.net\/?p=4936\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;index.rhtml + erb.cgi \u3092\u4f7f\u3063\u3066 ruby \u3067 html&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[119],"tags":[],"class_list":["post-4936","post","type-post","status-publish","format-standard","hentry","category-apli"],"_links":{"self":[{"href":"https:\/\/www.vincentina.net\/index.php?rest_route=\/wp\/v2\/posts\/4936","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vincentina.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vincentina.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vincentina.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vincentina.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4936"}],"version-history":[{"count":0,"href":"https:\/\/www.vincentina.net\/index.php?rest_route=\/wp\/v2\/posts\/4936\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.vincentina.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4936"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vincentina.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4936"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vincentina.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4936"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}