เราจะหยุดใช้ php-fpm บน Apache ได้อย่างไร ฉันพยายามค้นหาปัญหาเกี่ยวกับการทำงานของเซิร์ฟเวอร์คือเซิร์ฟเวอร์ทำงานบน CENTOS 6 และหุ่นเชิดทำงานบน CENTOS 6 เท่านั้น ฉันพยายามหาสาเหตุที่เซิร์ฟเวอร์ไม่ทำงานหลังจากที่ฉันคัดลอกการตั้งค่า จากนั้นฉันก็ทำ:
sudo netstat -plnt
ซึ่งแสดงให้ฉันเห็นว่าฉันใช้ php-fpm และบนเซิร์ฟเวอร์ที่ใช้งานอยู่ ฉันไม่ได้ใช้งาน ฉันรู้สึกงุนงงเพราะการกำหนดค่า httpd เหมือนกับครั้งล่าสุดที่ฉันตรวจสอบ ดังนั้นฉันจึงสงสัยว่าจะเปลี่ยนจาก php-fpm เป็น php ได้อย่างไรเพื่อดูว่าฉันจะทำให้ Apache ทำงานบนเซิร์ฟเวอร์ใหม่ได้หรือไม่ ฉันปิด:
บริการ sudo php-fpm หยุด
แต่ฉันยังคงได้รับ 500 จากการเคลือบเงา ฉันไม่แน่ใจว่าฉันอาจพลาดบางสิ่งใน httpd config หรือไม่ แต่เซิร์ฟเวอร์ใหม่และเก่ามีการกำหนดค่าที่เหมือนกันมาก
ฉันมี php.conf:
#
# PHP เป็นภาษาสคริปต์ที่ฝัง HTML ซึ่งพยายามสร้าง
# ง่ายสำหรับนักพัฒนาในการเขียนหน้าเว็บที่สร้างแบบไดนามิก
#
<ifModule prefork.c>
LoadModule php7_module modules/libphp7.so
</หากโมดูล>
<IfModule !prefork.c>
LoadModule php7_module modules/libphp7-zts.so
</หากโมดูล>
#
# ทำให้ล่าม PHP จัดการไฟล์ที่มีนามสกุล .php
#
AddHandler php7-script .php
เพิ่มประเภทข้อความ/html .php
#
# เพิ่ม index.php ในรายการไฟล์ที่จะทำหน้าที่เป็นไดเร็กทอรี
# ดัชนี
#
DirectoryIndex index.php
#
# ยกเลิกการแสดงความคิดเห็นในบรรทัดต่อไปนี้เพื่ออนุญาตให้ PHP พิมพ์ .phps ได้อย่างสวยงาม
# ไฟล์เป็นซอร์สโค้ด PHP:
#
แอปพลิเคชัน #AddType/x-httpd-php-source .phps
#
# ตัวเลือกการกำหนดค่า PHP เฉพาะของ Apache
# สิ่งเหล่านี้สามารถแทนที่ได้ในแต่ละ vhost ที่กำหนดค่าไว้
#
php_value session.save_handler "ไฟล์"
php_value session.save_path "/var/lib/php/session"
php_value soap.wsdl_cache_dir "/var/lib/php/wsdlcache"
และ fast_cgi conf:
# คำเตือน: นี่คือกากตะกอน:
## ต้องตั้งค่า User/Group สำหรับ httpd ก่อนจึงจะสามารถโหลด mod_fastcgi ได้
## แต่ /etc/httpd/conf.d/fastcgi.conf บน RHEL จะโหลดมาก่อน
## /etc/httpd/conf/httpd.conf ดังนั้นเราต้องตั้งค่าที่นี่ :(
## mod_fcgid ไม่มีข้อผิดพลาดนี้
## แต่มันไม่ได้จัดการกระบวนการ PHP ลูกอย่างเหมาะสมต่อ
## http://serverfault.com/questions/303535/a-single-php-fastcgi-process-blocks-all-other-php-requests/305093#305093
ผู้ใช้อาปาเช่
อาปาเช่กลุ่ม
LoadModule fastcgi_module โมดูล/mod_fastcgi.so
# dir สำหรับไฟล์ซ็อกเก็ต IPC
FastCgiIpcDir /var/run/mod_fastcgi
# ตัดการเรียกสคริปต์ fastcgi ทั้งหมดใน Suexec
ปิด FastCgiWrapper
# Global FastCgiConfig สามารถแทนที่ได้ด้วยตัวเลือก FastCgiServer ในการกำหนดค่า vhost
FastCgiConfig -idle-timeout 120 -maxClassProcesses 1
# ตัวอย่างการกำหนดค่า PHP
# ดู /usr/share/doc/mod_fastcgi-2.4.6 สำหรับสคริปต์ php-wrapper
# อย่าลืมปิด mod_php ใน /etc/httpd/conf.d/php.conf!
#
# เพื่อเปิดใช้งานการแยกสิทธิ์ เพิ่มคำสั่ง "SuexecUserGroup"
# และ chown สคริปต์ php-wrapper และไดเร็กทอรีหลักตามลำดับ
# ดูเพิ่มเติมที่ http://www.brandonturner.net/blog/2009/07/fastcgi_with_php_opcode_cache/
#
#FastCgiServer /var/www/cgi-bin/php-wrapper
#AddHandler php-fastcgi .php
#การดำเนินการ php-fastcgi /cgi-bin/php-wrapper
แอปพลิเคชัน #AddType/x-httpd-php .php
#DirectoryIndex index.php
#
#<ตำแหน่ง /cgi-bin/php-wrapper>
# คำสั่งปฏิเสธอนุญาต
#ปฏิเสธจากทั้งหมด
# อนุญาตจาก env=REDIRECT_STATUS
# ตัวเลือก ExecCGI
# SetHandler fastcgi-สคริปต์
#</Location>
และ fcgi conf:
<IfModule mod_fastcgi.c>
Alias /php5-fcgi-staging03 /usr/lib/cgi-bin/php5-fcgi-staging03
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi-staging03 -socket /var/run/php-fpm/php5-fcgi-staging03.sock -pass-header Authorization -idle-timeout 300
</IfModule>
การแสดงความคิดเห็น php5-fcgi-staging03 ทำให้ฉัน:
ไม่พบ
ไม่พบ URL /php5-fcgi-staging03/index.php ที่ร้องขอบนเซิร์ฟเวอร์นี้