Điểm:0

Nhận 503 với apache proxy_fcgi_module [GIẢI QUYẾT]

lá cờ sa

Tôi đang sử dụng CentOS 9 Stream trên máy ảo, đang cố gắng thiết lập máy chủ apache của mình để có thể hiển thị nội dung php trên web. Máy chủ hoạt động tốt khi chỉ là html, nhưng tôi gặp các lỗi này (503 trong trình duyệt) khi thử với php. httpd.conf của tôi về cơ bản là mức tối thiểu để chạy một máy chủ với các máy chủ ảo và thứ duy nhất tôi đã thêm là SetHandler cho các tệp php. Tôi không rành lắm về php, nhưng theo hiểu biết của tôi thì nó làm gì khi máy chủ nhận được yêu cầu đối với tệp php, nó sẽ gọi dịch vụ php-fpm để xử lý nó.

Cả hai dịch vụ httpd và php-fpm đều đang chạy và tôi đặt SELinux bool httpd_can_network_connect thành 1 khi tôi đọc điều này có thể dẫn đến lỗi 503.

/var/log/httpd/error.log nói:

[proxy:error] [pid 4807:tid 4812] (111)Kết nối bị từ chối: AH00957: FCGI: cố gắng kết nối với [::]:8000 (*) không thành công
[proxy_fcgi:error] [pid 4807:tid 4812] [client 192.168.122.1:60494] AH01079: không thể kết nối với phụ trợ: (null)

httpd.conf của tôi:

nghe 80
Nghe 8080
người dùng apache
Nhóm apache
ServerRoot /etc/httpd
ErrorLog /var/log/httpd/error.log


LoadModule mpm_event_module modules/mod_mpm_event.so
LoadModule systemd_module modules/mod_systemd.so
LoadModule mô-đun unixd_module/mod_unixd.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule mô-đun dir_module/mod_dir.so

LoadModule proxy_module mô-đun/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so


<Thư mục />
        Yêu cầu tất cả bị từ chối
</Thư mục>

<Thư mục /var/www/html>
        Yêu cầu tất cả cấp
</Thư mục>

<Thư mục /srv/www>
        Yêu cầu tất cả cấp
</Thư mục>


<Máy chủ ảo 192.168.122.60:80>
        DocumentRoot "/var/www/html"
        Directory Index index.html
</Máy chủ ảo>

<Máy chủ ảo 192.168.122.60:8080>
        Tài liệuRoot "/srv/www"
        Directory Index index.php

        <FilesMatch \.php$>
            SetHandler "proxy:fcgi:/run/php-fpm/www.sock"
        </FilesMatch>
</Máy chủ ảo>

và www.conf của tôi:

nghe = /run/php-fpm/www.sock
lắng nghe.chủ sở hữu = apache
nghe.group = apache
lắng nghe.allowed_clients = 127.0.0.1

GIẢI PHÁP: Như AlexD đã chỉ ra vấn đề là apache đang cố kết nối qua localhost thay vì socket. Tôi có thể làm cho nó hoạt động bằng cách thay đổi tệp cấu hình của mình để nghe trên 127.0.0.1:9000 Nếu tôi muốn sử dụng ổ cắm unix, tôi phải thay đổi httpd.conf như thế này:

<Proxy "unix:/run/php-fpm/www.sock|fcgi://php-fpm">
   ProxySet disablereuse=off
</Proxy>

<FilesMatch \.php$>
   SetHandler proxy:fcgi://php-fpm
</FilesMatch>

Tìm thấy cấu hình này ở đây: https://tecadmin.net/install-Apache-php-fpm-centos-8/

Điểm:0
lá cờ jp

Thông báo lỗi (111)Kết nối bị từ chối: AH00957: FCGI: nỗ lực kết nối với [::]:8000 (*) không thành công chỉ ra rằng Apache của bạn đang cố kết nối với phần phụ trợ trên cổng TCP 8000 trong khi PHP-FPM đang nghe trên một ổ cắm unix /run/php-fpm/www.sock. Có thể bạn đã quên khởi động lại Apache.

bejgli avatar
lá cờ sa
Tôi đã khởi động lại httpd sau mỗi lần thay đổi cấu hình. Làm thế nào khác tôi có thể khắc phục điều này nếu đây là vấn đề? Ít nhất tôi hiểu vấn đề tốt hơn một chút, cảm ơn!
lá cờ jp
Nếu bạn đã khởi động lại Apache thì cấu hình bạn đã đăng không khớp với cấu hình đang chạy vì một số lý do.
bejgli avatar
lá cờ sa
Tôi đã thay đổi các tệp cấu hình để nghe trên 127.0.0.7:9000 và tôi đã có thể truy cập trang web của mình. Với cổng 8000, dịch vụ php-fpm sẽ không bắt đầu.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.