Score:0

รับ 503 ด้วย apache proxy_fcgi_module [แก้ไขแล้ว]

ธง sa

ฉันใช้ CentOS 9 Stream บน VM พยายามตั้งค่าเซิร์ฟเวอร์ apache เพื่อให้สามารถแสดงเนื้อหา php บนเว็บได้ เซิร์ฟเวอร์ทำงานได้ดีเมื่อเป็นแค่ html แต่ฉันได้รับข้อผิดพลาดเหล่านี้ (503 ในเบราว์เซอร์) เมื่อลองใช้กับ php httpd.conf ของฉันเป็นค่าต่ำสุดในการรันเซิร์ฟเวอร์ที่มีโฮสต์เสมือน และสิ่งเดียวที่ฉันเพิ่มคือ SetHandler สำหรับไฟล์ php ฉันไม่คุ้นเคยกับ php มากนัก แต่จากความเข้าใจของฉันสิ่งที่ทำคือเมื่อเซิร์ฟเวอร์ได้รับการร้องขอสำหรับไฟล์ php มันจะเรียกบริการ php-fpm เพื่อจัดการ

ทั้งบริการ httpd และ php-fpm กำลังทำงานอยู่ และฉันตั้งค่า SELinux bool httpd_can_network_connect เป็น 1 เนื่องจากฉันอ่านสิ่งนี้อาจส่งผลให้เป็น 503

/var/log/httpd/error.log พูดว่า:

[proxy:error] [pid 4807:tid 4812] (111)การเชื่อมต่อถูกปฏิเสธ: AH00957: FCGI: พยายามเชื่อมต่อกับ [::]:8000 (*) ล้มเหลว
[proxy_fcgi:error] [pid 4807:tid 4812] [client 192.168.122.1:60494] AH01079: ล้มเหลวในการเชื่อมต่อกับแบ็กเอนด์: (null)

httpd.conf ของฉัน:

ฟัง 80
ฟัง 8080
ผู้ใช้อาปาเช่
อาปาเช่กลุ่ม
รูทเซิร์ฟเวอร์ /etc/httpd
บันทึกข้อผิดพลาด /var/log/httpd/error.log


LoadModule mpm_event_module โมดูล/mod_mpm_event.so
LoadModule systemd_module โมดูล/mod_systemd.so
LoadModule unixd_module โมดูล/mod_unixd.so
LoadModule authz_core_module โมดูล/mod_authz_core.so
LoadModule dir_module โมดูล/mod_dir.so

LoadModule proxy_module โมดูล/mod_proxy.so
LoadModule proxy_fcgi_module โมดูล/mod_proxy_fcgi.so


<ไดเร็กทอรี />
        ต้องการปฏิเสธทั้งหมด
</ไดเรกทอรี>

<ไดเร็กทอรี /var/www/html>
        ต้องได้รับอนุญาตทั้งหมด
</ไดเรกทอรี>

<ไดเรกทอรี /srv/www>
        ต้องได้รับอนุญาตทั้งหมด
</ไดเรกทอรี>


<โฮสต์เสมือน 192.168.122.60:80>
        รูทเอกสาร "/var/www/html"
        DirectoryIndex index.html
</เวอร์ชวลโฮสต์>

<โฮสต์เสมือน 192.168.122.60:8080>
        รากเอกสาร "/srv/www"
        DirectoryIndex index.php

        <FilesMatch \.php$>
            SetHandler "พร็อกซี: fcgi:/run/php-fpm/www.sock"
        </FilesMatch>
</เวอร์ชวลโฮสต์>

และ www.conf ของฉัน:

ฟัง = /run/php-fpm/www.sock
Listen.owner = อาปาเช่
Listen.group = อาปาเช่
Listen.allowed_clients = 127.0.0.1

สารละลาย: เนื่องจาก AlexD ชี้ให้เห็นว่าปัญหาคือ apache พยายามเชื่อมต่อผ่าน localhost แทนซ็อกเก็ต ฉันทำให้มันใช้งานได้โดยเปลี่ยนไฟล์ปรับแต่งของฉันเพื่อฟัง 127.0.0.1:9000 ถ้าฉันต้องการใช้ซ็อกเก็ตยูนิกซ์ฉันต้องเปลี่ยน httpd.conf ดังนี้:

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

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

พบการกำหนดค่านี้ที่นี่: https://tecadmin.net/install-apache-php-fpm-centos-8/

Score:0
ธง jp

ข้อความแสดงข้อผิดพลาด (111) การเชื่อมต่อถูกปฏิเสธ: AH00957: FCGI: พยายามเชื่อมต่อกับ [::]:8000 (*) ล้มเหลว แสดงว่า Apache ของคุณพยายามเชื่อมต่อกับแบ็กเอนด์บนพอร์ต TCP 8000 ขณะที่คุณ PHP-FPM กำลังฟังบนซ็อกเก็ตยูนิกซ์ /run/php-fpm/www.sock. คุณอาจลืมรีสตาร์ท Apache

bejgli avatar
sa flag
ฉันรีสตาร์ท httpd หลังจากการเปลี่ยนแปลงการกำหนดค่าทุกครั้ง ฉันจะแก้ไขปัญหานี้ได้อย่างไรหากเป็นปัญหา อย่างน้อยฉันก็เข้าใจปัญหาดีขึ้นเล็กน้อย ขอบคุณ!
jp flag
หากคุณรีสตาร์ท Apache การกำหนดค่าที่คุณโพสต์ไม่ตรงกับการกำหนดค่าที่กำลังทำงานอยู่ด้วยเหตุผลบางประการ
bejgli avatar
sa flag
ฉันเปลี่ยนเป็นไฟล์ปรับแต่งเพื่อฟัง 127.0.0.7:9000 และฉันสามารถไปที่ไซต์ของฉันได้ ด้วยพอร์ต 8000 บริการ php-fpm จะไม่เริ่มทำงาน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา