2013-07-14 29 views
5

Tôi đang cố thiết lập phpbb trên máy chủ EC2. Sau một giờ tuyệt vọng, tôi thấy rằng một dòng cụ thể trong quá trình khởi động phpbb không thành công:nginx -> php5-fpm: Lỗi trong php không được ghi (bất kỳ đâu!)

$db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, defined('PHPBB_DB_NEW_LINK') ? PHPBB_DB_NEW_LINK : false); 

Sửa lỗi, tôi cần phải định cấu hình các thuộc tính DB của mình đúng cách.

Tuy nhiên, để thấy rằng tôi phải chèn câu lệnh echo '1' theo khối trong suốt các tệp cặp đầu tiên của ứng dụng php. Trước câu lệnh echo, tôi chỉ nhận được một trang trống, với trạng thái 200, khi php bị lỗi.

Tôi đã bật cả log_errors và display_errors trong php.ini của FPM, nhưng dường như chúng không làm bất kỳ điều gì với loại lỗi cụ thể này.

Không có nhật ký nào về lỗi trong/var/log/syslog,/var/log/nginx/*, /var/log/php-fpm.log hoặc nhật ký lỗi cho trang nginx.

Vì vậy, câu hỏi của tôi: tại sao lỗi thực tế (từ sql_connect) không được ghi lại ở bất kỳ đâu? (Cách khác, nếu nó đang được đăng nhập, ở đâu?)

+0

Bạn có khởi động lại cả php-fpm và nginx sau khi chỉnh sửa cấu hình không? –

+0

@JohnWHS Vâng, tôi đã luôn khởi động lại chúng sau khi thực hiện chỉnh sửa. – user717847

+0

bạn có kiểm tra cài đặt 'error_log' trong'/etc/php5/fpm/php-fpm.conf' không? có thể được thay đổi từ đường dẫn mặc định, bạn nói nhật ký lỗi ur là 'php-fpm.log' trong khi tôi thực sự là' php5-fpm.log' –

Trả lời

5

tìm kiếm catch_workers_output trong hồ bơi của bạn và đặt nó là có, từ doc:

catch_workers_output - Redirect workers' stdout and stderr into main error log. If not set, they will be redirected to /dev/null, according to FastCGI specs. Values "yes" or "no" 

EDIT:

cũng kiểm tra xem bạn có

php_flag[display_errors] = on 

và/hoặc

php_admin_flag[log_errors] = true 
+1

Wow đó là một mặc định câm. Cảm ơn - đó chắc chắn là một phần của vấn đề (và/hoặc có thể đã vấp ngã tôi sau này). Tuy nhiên, vẫn không có niềm vui (sau khi khởi động lại). – user717847

+0

@ user717847 xem chỉnh sửa của tôi. – DRC

+0

cảm ơn, bản chỉnh sửa cũng không có sự khác biệt. Tôi không hiểu lý do tại sao chỉnh sửa là cần thiết giả sử rằng log_errors được bật trong php.ini, nhưng trong mọi trường hợp thiết lập nó không mang lại nhật ký ở bất cứ đâu. Tôi cũng nên đề cập rằng nếu tôi bật display_errors, lỗi cụ thể này sẽ không được hiển thị - tôi đoán đó là phù hợp với lỗi xảy ra trong một nhân viên cụ thể và không được định tuyến chính xác. – user717847

1

Tôi đã gặp sự cố tương tự ngày hôm nay. Những gì tôi phát hiện ra là các điều khoản cho tệp nhật ký của tôi không chính xác. Quyền sở hữu đã được gán cho thư mục gốc. Tôi đã thực hiện một số chmod 777 php5-fpm.log để xác nhận đó là vấn đề. Đăng nhập làm việc sau đó.

Tôi đã thực hiện một chown syslog:adm php5-fpm.log để đặt quyền sở hữu chính xác.