{"id":820,"date":"2008-02-12T01:00:00","date_gmt":"2008-02-11T16:00:00","guid":{"rendered":"https:\/\/ecoop.net\/memo\/2008-02-12-1.html"},"modified":"2026-08-10T14:42:31","modified_gmt":"2026-08-10T05:42:31","slug":"2008-02-12-1","status":"publish","type":"post","link":"https:\/\/www.ecoop.net\/memo\/archives\/2008-02-12-1.html","title":{"rendered":"FreeBSD6 + jail + httpd22 + fcgid\/fastcgi + Ruby on Rails"},"content":{"rendered":"<p>\n\u4e45\u3057\u3076\u308a\u306b\u3082\u306e\u3059\u3054\u304f\u306f\u307e\u3063\u305f\u306e\u3067\u30e1\u30e2\u3002<br \/>\n&nbsp;<br \/>\n\u76ee\u7684:<br \/>\nFreeBSD jail \u4e0a\u306e httpd + suexec \u74b0\u5883\u306b ruby on rails \u3092\u5165\u308c\u305f\u304c\u3001<br \/>\nCGI \u3067\u52d5\u304b\u3059\u3068\u9045\u3044\u306e\u3067 fcgi \u5bfe\u5fdc\u306b\u3057\u305f\u3044\u3002<br \/>\n&nbsp;<br \/>\n\u624b\u9806:<br \/>\n&#8211; jail host \u306e \/etc\/rc.conf \u306b\u4ee5\u4e0b\u306e\u8a18\u8ff0\u3092\u8ffd\u52a0<\/p>\n<blockquote><p>sysvipc_enable=&#8221;YES&#8221;<br \/>\njail_sysvipc_allow=&#8221;YES&#8221; # jail \u74b0\u5883\u3067 httpd \u3092\u52d5\u304b\u3057\u3066\u3044\u308b\u5834\u5408\u306e\u307f\u8ffd\u52a0\n<\/p><\/blockquote>\n<p>&#8211; fastcgi \u3092\u8ffd\u52a0(ruby_fcgi \u7528)\n<\/p>\n<blockquote><p>$ wget http:\/\/www.fastcgi.com\/dist\/fcgi-2.4.1-SNAP-0311112127.tar.gz # http:\/\/www.fastcgi.com\/dist\/ \u306e fastcgi \u306e\u6700\u65b0\u7248<br \/>\n$ tar xvzf fcgi-2.4.1-SNAP-0311112127.tar.gz <br \/>\n$ cd fcgi-2.4.1-SNAP-0311112127<br \/>\n$ .\/configure &#8211;prefix=\/usr\/local\/fastcgi # \/usr\/local\/fastcgi \u4ee5\u4e0b\u306b\u5c55\u958b(*1)<br \/>\n$ sudo make install\n<\/p><\/blockquote>\n<p>&#8211; ruby_fcgi \u3092\u8ffd\u52a0(gem install fcgi \u3067\u306f each_cgi \u304c\u306a\u3044\u3068\u6012\u3089\u308c\u308b\u5834\u5408\u304c\u3042\u308b\u305f\u3081\u3001\u30bd\u30fc\u30b9\u304b\u3089\u30d3\u30eb\u30c9)\n<\/p>\n<blockquote><p>$ wget http:\/\/rubyforge.org\/frs\/download.php\/11368\/ruby-fcgi-0.8.7.tar.gz<br \/>\n$ tar xvzf ruby-fcgi-0.8.7.tar.gz<br \/>\n$ cd ruby-fcgi-0.8.7<br \/>\n$ ruby install.rb config &#8212; &#8211;with-fcgi-dir=\/usr\/local\/fastcgi # (*1) \u3067\u6307\u5b9a\u3057\u305f\u30d5\u30a9\u30eb\u30c0\u3002(*1)\u3067 &#8211;prefix \u3092\u6307\u5b9a\u3057\u306a\u304b\u3063\u305f\u5834\u5408\u3001\u3053\u3053\u3067 config \u3092\u5b9f\u884c\u3057\u306a\u304f\u3066\u3088\u3044\u3002<br \/>\n$ sudo ruby install.rb \n<\/p><\/blockquote>\n<p>&#8211; mod_fcgid \u307e\u305f\u306f mod_fastcgi \u3092\u30d3\u30eb\u30c9\/\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<br \/>\nmod_fastcgi \u306e\u5834\u5408:\n<\/p>\n<blockquote><p>$ wget http:\/\/www.fastcgi.com\/dist\/mod_fastcgi-2.4.6.tar.gz<br \/>\n$ tar xvzf mod_fastcgi-2.4.6.tar.gz<br \/>\n$ cd mod_fastcgi-2.4.6<br \/>\n$ cp Makefile.AP2 Makefile<br \/>\n$ make <br \/>\n$ sudo make install<br \/>\n$ # httpd2 \u304c \/usr\/local\/apache2 \u306b\u306a\u3051\u308c\u3070 Makefile \u3092\u7de8\u96c6\u3057\u3066 top_dir \u3092\u5909\u66f4\u3059\u308b\u304b\u3001\u6b21\u306e\u3088\u3046\u306b\u3059\u308b<br \/>\n$ sudo make top_dir=\/opt\/httpd\/2.0.40<br \/>\n$ sudo make install top_dir=\/opt\/httpd\/2.0.40\n<\/p><\/blockquote>\n<p>mod_fcgid \u306e\u5834\u5408:\n<\/p>\n<blockquote><p>$ wget <a href=\"http:\/\/downloads.sourceforge.net\/mod-fcgid\/mod_fcgid.2.2.tgz?modtime=1185976592&amp;big_mirror=0\">http:\/\/downloads.sourceforge.net\/mod-fcgid\/mod_fcgid.2.2.tgz?modtime=1185976592&amp;big_mirror=0<\/a><br \/>\n$ tar xvzf mod_fcgid.2.2.tgz<br \/>\n$ cd mod_fcgid.2.2<br \/>\n$ make<br \/>\n$ sudo make install<br \/>\n$ # httpd2 \u304c \/usr\/local\/apache2 \u306b\u306a\u3044\u5834\u5408\u306fmod_fastcgi \u306e\u5834\u5408\u3068\u540c\u69d8\u306e\u624b\u6cd5\u3067 top_dir \u5909\u6570\u3092\u5909\u66f4\u3059\u308b\u3002\n<\/p><\/blockquote>\n<p>&#8211; mod_fcgid \u307e\u305f\u306f mod_fastcgi \u3092 httpd \u306b\u30ed\u30fc\u30c9\/\u8a2d\u5b9a<br \/>\nhttpd.conf:\n<\/p>\n<blockquote><p># mod_fastcgi \u3092\u4f7f\u3046\u5834\u5408\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8:<br \/>\n#LoadModule fastcgi_module modules\/mod_fastcgi.so<br \/>\n&lt;IfModule fastcgi_module><br \/>\n&nbsp;&nbsp;&nbsp;AddHandler fastcgi-script .fcgi<br \/>\n# \u30bd\u30b1\u30c3\u30c8\u306e\u5834\u6240(\u7701\u7565\u6642\u306f httpd \u306e log\/fastcgi\/ )<br \/>\n#  FastCgiIpcDir \/var\/run\/fastcgi<br \/>\n&nbsp;&nbsp;&nbsp;FastCgiConfig -autoUpdate -idle-timeout 20 -killInterval 3600 -maxClassProcesses 2<br \/>\n&nbsp;&nbsp;&nbsp;# suexec \u3092\u4f7f\u3046\u5834\u5408\u5fc5\u8981<br \/>\n&nbsp;&nbsp;&nbsp;FastCgiWrapper \/usr\/local\/apache2\/bin\/suexec<br \/>\n&lt;\/IfModule><br \/>\n# mod_fcgid \u3092\u4f7f\u3046\u5834\u5408\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8:<br \/>\n#LoadModule fcgid_module modules\/mod_fcgid.so<br \/>\n&lt;IfModule fcgid_module><br \/>\n&nbsp;&nbsp;&nbsp;AddHandler fcgid-script .fcgi<br \/>\n&nbsp;&nbsp;&nbsp;SocketPath \/tmp\/fcgidsock<br \/>\n&nbsp;&nbsp;&nbsp;SharememPath \/tmp\/fcgidshm<br \/>\n&nbsp;&nbsp;&nbsp;IPCCommTimeout 40<br \/>\n&nbsp;&nbsp;&nbsp;IPCConnectTimeout 10<br \/>\n&nbsp;&nbsp;&nbsp;# suexec \u3092\u4f7f\u3046\u5834\u5408\u3082\u4f7f\u308f\u306a\u3044\u5834\u5408\u3082 FCGIWrapper \u306f\u8a2d\u5b9a\u3057\u306a\u304f\u3066\u3088\u3044<br \/>\n&lt;\/IfModule><br \/>\n&nbsp;<br \/>\n# suexec \u4f8b(SuexecUserGroup \u304c\u809d):<br \/>\n&lt;VirtualHost 192.168.10.123><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;ServerAdmin webmaster@example.com<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;DocumentRoot \/usr\/local\/apache2\/htdocs\/<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;ServerName example.com<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;SuexecUserGroup john web<br \/>\n&lt;\/VirtualHost>\n<\/p><\/blockquote>\n<p>&nbsp;<br \/>\n&#8211; rails \u306e\u8a2d\u5b9a\u3092\u5909\u66f4<br \/>\n{rails_root}\/public\/.htaccess\n<\/p>\n<blockquote><p>&#8211; AddHandler fastcgi-script .fcgi<br \/>\n&#8211; RewriteRule ^(.*)$ dispatch.cgi [QSA,L]<br \/>\n+ RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]<br \/>\n&#8211; DefaultInitEnv RAILS_ENV development<br \/>\n+ SetEnv RAILS_ENV development\n<\/p><\/blockquote>\n<p>DefaultInitEnv \u3068\u304b SetEnv \u3067\u5909\u6570\u304c\u308f\u305f\u3089\u306a\u3044\u74b0\u5883\u306e\u5834\u5408\u306f <br \/>\n{rails_root}\/config\/environment.rb \u306e\u6b21\u306e\u9805\u76ee\u3092\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3057\u3066\u7de8\u96c6\u3059\u308b\n<\/p>\n<blockquote><p># Uncomment below to force Rails into production mode when<br \/>\n# you don&#8217;t control web\/app server and can&#8217;t set it the proper way<br \/>\n#ENV[&#8216;RAILS_ENV&#8217;] ||= &#8216;production&#8217;\n<\/p><\/blockquote>\n<p>&nbsp;<br \/>\n&#8211; \u30a8\u30e9\u30fc\u304c\u51fa\u308b\u5834\u5408\u306e\u30d2\u30f3\u30c8<br \/>\nhttp:\/\/ontherails.jp\/2007\/10\/13\/25 \u306a\u3069\u3092\u53c2\u8003\u306b\u3002<br \/>\n\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u3092\u898b\u308b:\n<\/p>\n<blockquote><p>httpd \u306e error_log, suexec_log<br \/>\nrails \u306e log\/fastcgi.crash.log, log\/development.log, log\/production.log\n<\/p><\/blockquote>\n<p>\u306a\u3069\u3002<br \/>\n\u7279\u306b fastcgi\/fcgid \u3092\u304b\u307e\u305b\u305f\u6642\u306e\u307f\n<\/p>\n<blockquote><p>Application error<br \/>\nRails application failed to start properly\n<\/p><\/blockquote>\n<p>\u3068\u30da\u30fc\u30b8\u8868\u793a\u3055\u308c\u308b\u5834\u5408\u306f rails \u306e fastcgi \u306e\u30ed\u30b0\u3092\u898b\u308b\u306e\u304c\u6709\u52b9\u305d\u3046\u3067\u3059\u3002<br \/>\n&nbsp;<br \/>\n\u53c2\u8003:<br \/>\n&#8211; configuration &#8211; The mod_fcgid Home Page<br \/>\n&#8211; <a href=\"http:\/\/d.hatena.ne.jp\/sakuramateo\/20060205\/1139162716\">Apache2 + fcgid + Ruby on Rails\u30e1\u30e2 &#8211; sakuramateo<\/a><br \/>\n&#8211; <a href=\"http:\/\/d.hatena.ne.jp\/nazone\/20070221\/p2\">FreeBSD + Apache2 + mod_fcgid + Ruby On Rails<\/a>(\u3075\u308f\u3075\u308f\u306a\u6bce\u65e5)<br \/>\n&#8211; <a href=\"http:\/\/underscore.jp\/diary\/20061006.html\">_ fcgid<\/a>(valda&#8217;s diary)<br \/>\n&#8211; <a href=\"http:\/\/kazuhiko.tdiary.net\/20040403.html#p02\">FastCGI \u5316<\/a>(\u3075\u3047\u307f\u306b\u3093\u65e5\u8a18)<br \/>\n&#8211; Rails Apache + FastCGI \u74b0\u5883\u69cb\u7bc9\u306e\u306f\u307e\u308a\u30d1\u30bf\u30fc\u30f3<br \/>\n&#8211; lighttpd + fcgi \u3067 each_cgi \u306a\u308b\u30e1\u30bd\u30c3\u30c9\u306f\u77e5\u3089\u306a\u3044\u3068\u3044\u308f\u308c\u308b(Don&#8217;tStopMusic)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e45\u3057\u3076\u308a\u306b\u3082\u306e\u3059\u3054\u304f\u306f\u307e\u3063\u305f\u306e\u3067\u30e1\u30e2\u3002 &nbsp; \u76ee\u7684: FreeBSD jail \u4e0a\u306e httpd + suexec \u74b0\u5883\u306b ruby on rails \u3092\u5165\u308c\u305f\u304c\u3001 CGI \u3067\u52d5\u304b\u3059\u3068\u9045\u3044\u306e\u3067 fcgi \u5bfe\u5fdc\u306b\u3057 &hellip; <a href=\"https:\/\/www.ecoop.net\/memo\/archives\/2008-02-12-1.html\" class=\"more-link\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"screen-reader-text\">FreeBSD6 + jail + httpd22 + fcgid\/fastcgi + Ruby on Rails<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[141],"tags":[25,15],"class_list":["post-820","post","type-post","status-publish","format-standard","hentry","category-lifehack","tag-freebsd","tag-ruby"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/posts\/820","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/comments?post=820"}],"version-history":[{"count":10,"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/posts\/820\/revisions"}],"predecessor-version":[{"id":1734,"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/posts\/820\/revisions\/1734"}],"wp:attachment":[{"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/media?parent=820"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/categories?post=820"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ecoop.net\/memo\/wp-json\/wp\/v2\/tags?post=820"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}