Thực sự khá đơn giản để chạy cả hai. Tôi làm tất cả thời gian (ROR để chạy Redmine, và PHP cho phần còn lại).
Bạn có 2 tùy chọn thực sự cho ROR. Hoặc là phục vụ nó từ FastCGI (những gì tôi làm), hoặc chạy nó với một máy chủ độc lập (như Mongrel, vv) và proxy cho nó. Cả hai đều có lợi thế. FastCGI có lợi thế là nó độc lập (không có máy chủ phụ để chạy). Các độc lập có lợi thế là nó dễ dàng hơn để cấu hình.
Nếu bạn có câu hỏi cụ thể, tôi có thể hướng dẫn, nhưng có hướng dẫn trên internet về cách thực hiện việc này.
lighttpd.conf của tôi:
$HTTP["host"] =~ "my.ror.site" {
server.error-handler-404="/dispatch.fcgi"
fastcgi.server = (".fcgi" => ("ror_1" => (
"min-procs"=>8,
"max-procs" => 8,
"socket" => "/tmp/myrorlock.fastcgi",
"bin-path"=> "/path/to/ror/site/public/dispatch.fcgi",
"kill-signal" => 9,
"bin-environment" => ("RAILS_ENV" => "production")
)))
}
fastcgi.server = (".php" =>
(
(
"socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/bin/php-cgi -c /etc/php.ini",
"min-procs" => 1,
"disable-time" => 1,
"max-procs" => 1,
"idle-timeout" => 20,
"broken-scriptfilename" => "enable",
"bin-copy-environment"=> (
"PATH", "SHELL", "USER"
),
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "40",
"PHP_FCGI_MAX_REQUEST" => "50000"
)
)
)
)
Và đó là nó. Lưu ý tùy chọn kill-signal
. Điều đó quan trọng, nếu không bạn sẽ kết thúc với các quy trình zombie ở mọi nơi mỗi khi bạn khởi động lại máy chủ ...
đang cố gắng thực hiện ngay bây giờ, có vẻ như nó sẽ giải quyết được vấn đề của tôi: D – Zen
'$ HTTP [" host "] = ~" my.ror.site "' - The '= ~' có nghĩa là nó đang so sánh cụm từ thông dụng, điều này có thể không cần thiết. Sử dụng '==' khi bạn muốn so sánh chuỗi bình thường. [Thông tin thêm] (http://redmine.lighttpd.net/wiki/lighttpd/Docs:Configuration#Conditional-Configuration). Khác hơn thế, cảm ơn cho mẫu! –
@Garret: Điểm tốt. Tôi thực sự sử dụng regex trong tôi (vì có nhiều hơn một tên miền trỏ đến nó, vì một vài lý do). Tôi chỉ lột nó ra (được khử trùng) để đăng ở đây. Nhưng đó là điều đáng nói đến ... – ircmaxell