2009-03-20 20 views
5

Chúng tôi có một ứng dụng Perl hiện có hỗ trợ mod_perl. Tuy nhiên, máy chủ mới của chúng tôi (Dreamhost) không hỗ trợ mod_perl, chỉ FastCGI; do đó cần phải có cảng.Làm thế nào tôi có thể chuyển mã Perl từ mod_perl sang FastCGI?

Mã hiện tại không sử dụng bất kỳ nội dung cụ thể nào của Apache và chỉ là mã Perl bình thường được viết theo cách được chấp nhận là mod_perl.

Đọc tài liệu và hướng dẫn trực tuyến, có vẻ như việc thêm hỗ trợ FastCGI liên quan đến việc gói mã hiện có bên trong một loại vòng lặp cụ thể. Dưới đây là mã bộ xương phổ biến nhất là đưa ra:

A. Sử dụng FCGI

use FCGI; 
while (FCGI::accept >= 0) 
{ 
    #Run existing code. 
} 

B. Sử dụng CGI :: nhanh

use CGI::Fast 
while (my $cgi = CGI::Fast->new()) 
{ 
    #Run existing code. 
} 

Sub-Câu hỏi:

  1. Phương pháp là AB cách tương đương để thêm hỗ trợ FastCGI?
  2. Nếu AB khác nhau, thì ưu và khuyết điểm của việc sử dụng cái này với cái kia là gì?
  3. Có bất kỳ phương pháp hay hay nhất nào mà bạn nên biết khi chuyển từ mod_perl sang FastCGI?

Cảm ơn.

Trả lời

3

Nói một cách điển hình, ứng dụng FastCGI rất giống với CGI. Sự khác biệt chính là bạn có thể tận dụng lợi thế của thực tế là quá trình của bạn có thể được liên tục. Bạn có thể tận dụng điều đó để đạt được các lợi thế về tốc độ trong ứng dụng của mình — ví dụ, bạn có thể lưu trữ dữ liệu cơ sở dữ liệu trong tiến trình đang chạy của bạn. Về cơ bản, bạn đang thay đổi ứng dụng của mình thành máy chủ ứng dụng riêng của mình, chạy phía sau cổng FastCGI được cung cấp bởi máy chủ Web.

Ý tưởng là tìm ra cách làm cho phương tiện xử lý ứng dụng của bạn có thể áp dụng cho cổng FastCGI. Bạn có sử dụng bất kỳ chức năng cụ thể mod-perl nào không? Nếu vậy, hãy tránh xa điều đó. Nếu không, hãy bắt đầu nói chuyện qua FastCGI. Bạn đã có một lợi thế trong đó có các giao diện FastCGI có sẵn cho Perl. Tôi cho rằng bạn đang sử dụng một loại hệ thống điều khiển phiên bản nào đó, vì vậy chỉ cần tạo một nhánh để chuyển sang FastCGI. Sau đó, chỉ cần bắt đầu suy nghĩ về POST và PUT khi đọc từ đầu vào tiêu chuẩn và phản hồi của ứng dụng của bạn dưới dạng văn bản cho đầu ra tiêu chuẩn.

Bạn cũng có thể muốn đọc qua thư viện triển khai giao diện FastCGI cho ứng dụng. Bạn có thể tìm thấy một số trong số đó tại fastcgi.com. Điều đó có thể giúp bạn hiểu ứng dụng của bạn sẽ làm gì khác biệt liên quan đến những gì nó đang làm hiện tại.

Chúc may mắn!

2

Từ xem nhanh tài liệu CPAN, có vẻ như CGI :: Fast là trình bao bọc xung quanh FCGI; từ CGI :: nhanh page:

Để sử dụng CGI :: nhanh bạn sẽ cần các module FCGI

mất của tôi là nó về cơ bản cho phép bạn sử dụng các chức năng tiêu chuẩn của CGI .pm với các lợi ích tốc độ của FastCGI (tạo tiêu đề và truy cập tham số là các khía cạnh chính của CGI.pm bạn có thể đã sử dụng).

Tôi chưa từng sử dụng một trong số này, đây chỉ là những gì nó trông giống với tôi từ tài liệu, vì vậy tôi cũng có thể sai.

Các vấn đề liên quan