[Hỏi] Cấu hình FastCGI

Discussion in 'Hỏi Đáp Kỹ Thuật' started by money, Oct 7, 2020.

  1. money

    money Hương Chủ

    Mình thường tự install server không dùng các script có sẵn. Bình thường thì vẫn cấu hình FastCGI trên port 9000. Hôm nay xem 1 số file config mẫu thì thấy họ cấu hình trên php socket, thử làm theo mà php không chạy.

    Bạn nào rành cấu hình giải thích giúp mình với.

    Cấu hình của mình đó giờ:

    - nginx default.conf:

    Code:
    location ~ \.php$ {
            root           /folder_name;
            #fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; --> nếu dùng cấu hình này là không chạy
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    - php-fpm www.conf:

    Code:
    ;   '/path/to/unix/socket' - to listen on a unix socket.
    ; Note: This value is mandatory.
    listen = 127.0.0.1:9000
    ;listen = /var/run/php-fpm/php-fpm.sock --> nếu dùng cấu hình này là không chạy
    
    - server block của web:


    Code:
    location ~ \.php$ {
                    try_files $uri =404;
                    fastcgi_split_path_info ^(.+\.php)(/.+)$;
                    #fastcgi_pass unix:/var/run/php5-fpm.sock;
                    #fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; --> nếu dùng cấu hình này là không chạy
                    fastcgi_pass   127.0.0.1:9000;
                    fastcgi_index index.php;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    include fastcgi_params;
            }
     
  2. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    Cấu hình theo php socket thì có hiệu quả gì vượt trội ko anh?
     
  3. money

    money Hương Chủ

    Họ nói là nhanh hơn em ạ. Nhưng bù lại cấu hình TCP port 9000 lại có thể call đến 1 host khác (nhưng anh ko hiểu lắm và ko rõ cách cấu hình để call đến 1 host khác là như thế nào. Không lẽ mấy site bự nó chơi luôn 1 server cho xử lý PHP riêng ???)
     
  4. money

    money Hương Chủ

    À hiểu rồi nhé các người anh em. Do bên php-fpm chưa cấu hình cho nginx listen php socket.

    Sửa lại file www .conf như sau là được:

    Code:
    listen.owner = nginx
    listen.group = nginx
    listen.mode = 0660
     
  5. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Haha, e định comment mà a tìm được rồi. Đỉnh cao quá a à. :D
     
  6. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Unix socket là một điểm giao tiếp để trao đổi dữ liệu giữa các ứng dụng trên cùng một máy tính. Khác với giao thức TCP/IP thực hiện ở giao thức mạng, Unix socket thực hiện ở nhân hệ điều hành, nhờ vậy có thể tránh được cách bước như kiểm tra hoặc routing, đem lại tốc độ kết nối nhanh hơn và nhẹ hơn so với TCP/IP.
    Khả năng tăng tốc hơn 50% so với TCP/IP.
     
  7. money

    money Hương Chủ

    Em đúng là dạng rộng chứ ko phải dạng vừa rồi :D Kiến thức hệ thống của em tốt quá. Anh mấy cái này thì chịu, chỉ có mò mò + test đúng sai nên nhiều khi suy luận mãi mới ra.
     
  8. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Dạ, e chỉ hay đọc tài liệu thôi anh ạ.
    Code thì nhiều lúc còn kém. Hay hỏi anh em. @Tony Vu , trước kia e hay hỏi bạn này.
    Mà giờ cu cậu ít online quá. @Tony Vu hiện hình đi e ơi. :D
     
    money likes this.
  9. thitgaluoc

    thitgaluoc Hương Chủ

    ủa sao bác k chmod + chown cái file socket đó luôn? chown nó sang cho user www-data chạy là ok mà
     
  10. money

    money Hương Chủ

    Dù chạy theo kiểu config nào thì anh ko cũng ko thấy cái file /var/run/php-fpm/php-fpm.sock ở đâu cả - kể cả trong folder /var/run/php-fpm/
    Mà www-data là của Ubuntu đúng ko nhỉ? Anh xài CentOS với nginx.
     
  11. console

    console Bang Chúng

    Restart lai service php-fpm di anh. Roi go: file/var/run/php-fpm/php-fpm.sock. Neu output co thi file dc tao roi anh
     
  12. money

    money Hương Chủ

    @thitgaluoc
    Anh hiểu lí do tại sao anh ko thấy file /var/run/php-fpm/php-fpm.sock rồi.
    Do lần đầu anh chuyển sang listen on socket thành công --> nó tạo ra file rồi nhưng anh không để ý.
    Sau đó anh chuyển lại chạy trên fastcgi_pass 127.0.0.1:9000; --> restart php-fpm là nó tự động xóa file /var/run/php-fpm/php-fpm.sock đi.
     
    thitgaluoc and console like this.
  13. console

    console Bang Chúng

    Em thấy hỏi FastCGI tưởng bạn nào hỏi thấy a hỏi hơi bị ngạc nhiên vì h a mới xài unix socket :D
     
  14. money

    money Hương Chủ

    Híc anh có biết gì mấy cái này đâu. Đó giờ anh toàn xài Windows. Mấy lệnh chạy trên Linux anh toàn phải copy paste sang rồi run :D Túm lại là gà lắm. Mọi cấu hình anh học toàn là mò mẫm rồi thử thấy chạy được là OK chứ nhiều khi không hiểu nó là gì.
     
    Last edited: Oct 7, 2020
    console likes this.
  15. Tony Vu

    Tony Vu Bang Chúng

    Em đây đại ca. Buổi trưa định chạy nốt cuốc grab rồi về code web nhưng gặp chị khách cứ kêu mệt nhờ cạo gió giùm. Tội nghiệp chị trúng gió nặng quá giờ này em mới xong {tire}
     
    Hoa Mãn Lâu and xmenvn2510 like this.
  16. Mr Ghost

    Mr Ghost Sơ Nhập Giang Hồ

    Có kèo thơm vậy lần sau post lên forum cho anh em giúp dùm
     
    Tony Vu likes this.
  17. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Dạo này chém gió thành thần. Kinh thật. {confident}
     
    Tony Vu likes this.
  18. thitgaluoc

    thitgaluoc Hương Chủ

    à đúng :D www-data là của ubuntu/debian, centos em chưa xài bao giờ :D
     
  19. thitgaluoc

    thitgaluoc Hương Chủ

    muốn xem user của nginx thì mình cat /etc/nginx/nginx.conf là ra thôi à :D
     
    money likes this.
  20. console

    console Bang Chúng

    Cần chi biết nhiều anh @money Focus on one thing untill successfull!