Windows 下的 Apache + FastCGI 部署 ROR 應用

來源:互聯網
上載者:User
系統需求
  • Apache
  • Ruby
  • Rails

安裝 Ruby 建議使用 Ruby 1.8.6 One-Click Installer,而不要使用 Ruby 1.8.6 Binary ,因為後者不包含 FCGI 模組,即使使用 gem install fcgi 安裝也必須編譯才能使用。如果沒有 FCG 模組,則 Apache 啟動 FastCGI 進程可能會報以下錯誤:

The pipe has been ended.  : mod_fcgid: get overlap result error

安裝 Rails : gem install rails

安裝 Apache Http Server。

獲得 mod_fcgid,該模組依賴 Visual C++ 2008 Redistributable Package;解壓 mod_fcgid.so 到 Apache 目錄的 modules 子目錄下。fcgid 進程預設只有一個 _FCGI_SHUTDOWN_EVENT_ 環境變數,而 Windows DNS 解析必須有一些特定的環境變數,否則會導致無法解析 DNS,應用報以下錯誤:

  getaddrinfo: no address associated with hostname.

下面的配置描述了如何解決該問題。

 

我們這裡作一些假設:

  • ROR 應用目錄:D:/WebRoot/redmine/
    初始化資料庫 :rake db:migrate

配置 Apache,添加以下指令碼:

LoadModule fcgid_module et/mod/mod_fcgid.so
DefaultInitEnv RAILS_ENV production
# 設定以下環境變數以保證 DNS 解析正確
# 如果不設定,則會報 getaddrinfo: no address associated with hostname.
DefaultInitEnv PATH "C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;"
DefaultInitEnv SystemRoot "C:/Windows"
DefaultInitEnv SystemDrive "C:"
DefaultInitEnv TEMP "C:/WINDOWS/TEMP"
DefaultInitEnv TMP "C:/WINDOWS/TEMP"
DefaultInitEnv windir "C:/WINDOWS"

Alias "/redmine" "D:/WebRoot/redmine/public/"

<Directory "D:/WebRoot/redmine/public/">
  Options Indexes ExecCGI FollowSymLinks
  AllowOverride all
  Order Deny,Allow
  Allow from All
</Directory>

<Location /redmine/>
    AddHandler fcgid-script .fcgi
    FCGIWrapper "C:/ruby/bin/ruby.exe D:/WebRoot/redmine/public/dispatch.fcgi" .fcgi
    RewriteEngine on
    RewriteBase /redmine
    RewriteRule ^$ index.html [QSA]
    RewriteRule ^([^.]+)$ $1.html [QSA]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ dispatch.fcgi?$1 [QSA,L]
</Location>

2008-5-16 Zealic

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.