2009-01-14 28 views
6

Tôi đang phát triển một ứng dụng với mod _ perl và khởi động lại máy chủ mỗi khi tôi thay đổi mã là một sự kéo lớn. Tôi vẫn muốn sử dụng mod _ perl để phát triển vì đó là những gì tôi định sử dụng cho máy chủ trực tiếp. Tôi không thấy bất cứ điều gì trong tài liệu hướng dẫn về cách thực hiện điều này.Tôi làm cách nào để có các tệp nguồn tải lại mod_perl khi thay đổi?

Suy nghĩ?

Trả lời

9

Tôi nghĩ Apache2 :: Tải xuống sẽ phần nào đạt được những gì bạn đang tìm kiếm. Tuy nhiên, hãy nhớ xóa tất cả việc triển khai này khi bạn đã sẵn sàng để đưa ứng dụng vào sản xuất.

Monitor Tất cả Modules trong% INC

Theo dõi và tải lại tất cả các module trong% INC vào đầu xử lý yêu cầu của, chỉ cần thêm cấu hình sau vào httpd.conf của bạn:

PerlModule Apache2::Reload 
PerlInitHandler Apache2::Reload 

Khi làm việc với bộ lọc kết nối và mô-đun giao thức Apache2 :: Tải lại nên được gọi trong giai đoạn pre_connection:

PerlPreConnectionHandler Apache2::Reload 

Đăng ký Modules Mặc nhiên

Để chỉ tải lại các module đã đăng ký với Apache2 :: Nạp lại, thêm dòng sau vào httpd.conf:

PerlModule Apache2::Reload 
PerlInitHandler Apache2::Reload 
PerlSetVar ReloadAll Off 
# ReloadAll defaults to On 

Sau đó, bất kỳ mô-đun với các dòng:

use Apache2::Reload; 

Sẽ được tải lại khi chúng thay đổi.

Để biết thông tin, hãy kiểm tra this documentation page. Hi vọng điêu nay co ich.

2

tôi sử dụng giải pháp này, từ Perrin Harkins qua PerlMonks:

Set MaxRequestsPerChild tới 1, sau đó tải bất kỳ module có khả năng thay đổi ở trẻ em, không phải là cha mẹ (rõ ràng chỉ dành cho môi trường phát triển). Mỗi yêu cầu sẽ nhấn vào một máy chủ con mới, sẽ tải tất cả các mô-đun có khả năng thay đổi của bạn một lần nữa.

Từ "A better way to see module changes in a running web server"

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