HƯỚNG DẪN Khắc phục lỗi php5-fpm.sock failed

Thảo luận trong 'KIẾN THỨC VPS/SERVER' bắt đầu bởi quyet1990, 30/11/16.

  1. quyet1990

    quyet1990 New Member

    Tham gia ngày:
    22/10/16
    Bài viết:
    220
    Đã được thích:
    0
    Gần đây tôi đã nâng cấp một số gói PHP trên một máy chủ đám mây VPS và kể từ đó tôi nhận thấy một số lỗi trên các trang web lưu trữ. Điều đầu tiên tôi nhận thấy là một lỗi 502 Gateway timeout. Và sau khi xem xét các bản ghi tôi thấy điều này:
    Mã:
    [crit] 2963#0: *138 connect() to unix:/tmp/php5-fpm.sock failed (13: Permission denied) while connecting to upstream
    
    Điều đầu tiên tôi đã làm để những trang web chạy càng sớm càng tốt:
    Sửa /etc/php-fpm.d/www.conf
    Mã:
     nano -w /etc/php-fpm.d/www.conf 
    Và thiết lập lắng dòng listen để xem xét như sau:
    Mã:
     listen = 127.0.0.1:9000 
    Sau đó, tôi chuyển trở lại cổng :9000 ở cấu hình PHP-FPM và chỉnh sửa ở mỗi tập tin cấu hình virtual host Nginx:
    Mã:
     fastcgi_pass  unix:/tmp/php5-fpm.sock; 
    Trở thành:
    Mã:
     fastcgi_pass 127.0.0.1:9000; 
    Khởi động lại nginx, php-fpm và trang web đã làm việc trở lại.

    Nhưng tại sao socket php-fpm thất bại?
    Vấn đề là khá đơn giản: quyền và chủ sở hữu tập tin.

    Nguyên nhân của vấn đề là gì?
    Khi tôi cập nhật gói php*, một cái gì đó thay đổi và từ đó tập tin socket php-fpm đã được tạo ra:
    Mã:
    [root@node3.server.com:~]ls -ahl /tmp/php5-fpm.sock
    srw-rw---- 1 root root 0 May  6 08:08 /tmp/php5-fpm.sock
    
    Đó là lý do Nginx đã không thể kết nối với socket php-fpm.

    Để sửa chữa php5-fpm.sock không lỗi hãy làm theo các hướng dẫn sau:
    1) Hãy chắc chắn tập các tin virtual host nginx (conf) được sử dụng fastcgi_pass unix: /tmp/php5-fpm.sock; trong cấu hình php-fpm.

    2) Chỉnh sửa tập tin nginx.conf và chắc chắn phải giống như dưới đây:
    Mã:
     user  nginx; 
    3) Sửa tập tin /etc/php-fpm.d/www.conf và thiết lập các biến này như bạn thấy dưới đây:
    Mã:
    listen = /tmp/php5-fpm.sock
    listen.owner = nginx
    listen.group = nginx
    
    4) Reload lại nginx và php-fpm
    Mã:
    service nginx reload
    service php-fpm reload
    
    Tất cả điều trên được thực hiện, các trang web của bạn bây giờ không phải đối mặt với vấn đề 502 permission/owner vì các socket có cùng một nhóm:
    Mã:
    [root@node3.server.com:~]ls -ahl /tmp/php5-fpm.sock
    srw-rw---- 1 nginx nginx 0 May  6 08:08 /tmp/php5-fpm.sock
    
     

Chia sẻ trang này

Đang tải...