Asked May 10th, 2018 4:34 AM 1591 0 2
  • 1591 0 2
0

Lỗi 502 bad gateway khi cài PHP7.0-FPM cho máy chủ Nginx-1.13.12

Share
  • 1591 0 2

E cài php-fpm trên nginx lastest version nhưng lại bị lỗi 502 .Các bác cho e hỏi cấu hình php-fpm với nginx bản ** 1.13.12 ** như thế nào với ạ 😄 Bản nginx cũ 1.10.3 e config vẫn ok còn bản mới e chả biết config ntn -_- trên Ubuntu 16.04 /etc/nginx/conf.d/default.conf

location ~ \.php$ {
   #    root           html;
   #    fastcgi_pass   127.0.0.1:9000;
   #    fastcgi_index  index.php;
   #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
   #    include        fastcgi_params;
   #}

2 ANSWERS


Answered May 10th, 2018 6:11 AM
Accepted
0

Lỗi 502 thì có thể là do process php-fpm của bạn không chạy, hay do nginx không thể connect đến php-fpm.

Bạn thử làm một vài cách sau xem sao:

  • Check xem php-fpm có chạy không bằng lệnh ps aux | grep php-fpm
  • Check xem php-fpm có đúng là đang chạy ở port 9000 không, hay là đang chạy bằng unix socket. Bạn có thể dùng netstat để check: netstat -tapen | grep 9000. Nếu không thấy kết quả, thì có thể php-fpm đang lắng nghe bằng unix socket. Bạn check thư mục /var/run/ hoặc /var/run/php/ xem có file php7.0-fpm.sock không. Nếu có thì bạn cần sửa config fastcgi_pass từ 127.0.0.1:9000, sang địa chỉ file socket, ví dụ như /var/run/php/php7.0-fpm.sock
  • Nếu vẫn không được, thì bạn có thể vào thư mục /var/log/nginx/, check nội dung file error.log rồi share lên đây được không. Nó sẽ giúp mọi người thấy rõ hơn về vấn đề mà nginx đang gặp phải 😃
Share
Dương Vũ @dezeross
May 10th, 2018 7:44 AM

Error.log : 2018/05/10 00:36:08 [crit] 15921#15921: *1 connect() to unix:/var/run/php/php7.0-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET /info.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.0-fpm.sock:", host: "localhost

0
| Reply
Share
Tran Duc Thang @thangtd90
May 10th, 2018 8:20 AM

@dezeross Vậy là php-fpm của bạn chạy bằng unix socket à 😃

Nếu hiện giờ nó đang gặp lỗi Permission denied thì có thể là do process nginxphp-fpm đang chạy dưới 2 user khác nhau :-s Bạn thử check xem sao

# ps aux | grep php-fpm
# ps aux | grep nginx

bạn vào trong config của php-fpm tại file www.conf (trong trường hợp của bạn thì có thể nó nằm trong /etc/php/7.0/fpm/pool.d/), sửa lại phần listen.owner với listen.group sao cho giống với của nginx là được 😃

Chẳng hạn

listen.owner = www-data
listen.group = www-data
0
| Reply
Share
Dương Vũ @dezeross
May 10th, 2018 8:36 AM

e sửa r mà n lại File not found // error.log: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream,

0
| Reply
Share
Tran Duc Thang @thangtd90
May 10th, 2018 8:53 AM

@dezeross Có thể config nginx của bạn bị lỗi rồi, bạn thử config mà bạn @huukimit gửi ở phần trả lời phía trên xem sao, nhất là ở đoạn fastcgi_param

0
| Reply
Share
Dương Vũ @dezeross
May 10th, 2018 9:53 AM

N chạy rồi em cảm a ✌️

+1
| Reply
Share
Answered May 10th, 2018 5:59 AM
+1

Bạn có thể check config syntax trước:

nginx -c /etc/nginx/nginx.conf -t

Rồi tham khảo config này xem sao:

    server {
        server_name localhost;
        listen 80;

        root /var/www/html;
        index index.php index.html index.htm;

        charset utf-8;
        access_log /var/log/nginx/access.log;

        location / {
            try_files $uri /index.php$is_args$args;
            index index.php index.html index.htm;
        }

        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
        }
    }
Share
Dương Vũ @dezeross
May 10th, 2018 9:53 AM

e cảm ơn ạ :v

0
| Reply
Share