2012-03-30 26 views
7

Tôi vừa cài đặt fcgiwrap và spawn-fcgi để có thể sử dụng tập lệnh perl trong nginx. Tôi thêm một cái gì đó như thế này trong trang web cấu hình của tôi:Làm thế nào để có được lỗi tập lệnh perl trong nhật ký lỗi nginx (Nginx với FCGIwrap)

location ~ \.pl$ { 
    gzip off; 
    fastcgi_pass unix:/var/run/fcgiwrap.socket; 
    include fastcgi_params; 
    fastcgi_index index.pl; 
} 

Nó hoạt động nhưng trình duyệt hiển thị thông báo sau nếu có một lỗi trong mã perl:

An error occurred while reading CGI reply (no response received) 

Và tôi không thể tìm thấy lỗi perl trong nhật ký nginx. "perl -c" trên dòng lệnh giúp nếu có lỗi biên dịch perl nhưng nó không giúp tôi giải quyết các lỗi thời gian chạy.

Làm cách nào tôi có thể yêu cầu perl hoặc fcgiwrap lưu lỗi trong nhật ký lỗi nginx hoặc một số tệp nhật ký khác?

Trả lời

1

Có một số công cụ đẹp để ghi lại các lỗi thời gian chạy của ứng dụng web Perl và hiển thị chúng cho bạn. Các công cụ gỡ lỗi này có thể bị vô hiệu hóa trong sản xuất thông qua các phương tiện khác nhau. Về cơ bản, họ "đánh" phần lớn mã, cho phép họ xử lý hầu hết các lỗi. Một số ví dụ:

0

Có thể do nginx của bạn không có quyền truy cập tệp "CGI.pm".

Nhìn này:

[[email protected] www]# sudo -u nginx ./foo.cgi 
Can't locate CGI.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./foo.cgi line 2. 
BEGIN failed--compilation aborted at ./foo.cgi line 2. 

[[email protected] www]# ./foo.cgi 
Status: -charset 
Set-Cookie: utf-8 
Date: Fri, 29 Sep 2017 02:49:38 GMT 
Content-Type: text/html; charset=ISO-8859-1 

本文最后更新时间:20170929 10:35:29 
[[email protected] www]# 
Các vấn đề liên quan