ฉันใช้เซิร์ฟเวอร์ Apache 2.4.48 ด้วย mod_cgid
และ mod_fcgid
. ฉันมีสคริปต์ CGI จำนวนหนึ่งภายใต้ /cgi-bin/
และได้ปรับโครงสร้างใหม่บางส่วนเพื่อใช้ FastCGIในระหว่างการปรับโครงสร้างใหม่นี้ ฉันต้องหาวิธีสนับสนุนการเรียกใช้สคริปต์ทั้งสองประเภทจากไดเร็กทอรีเดียวกันโดยที่ยังคงชื่อที่มีอยู่ ดังนั้นวิธีการปกติในการสร้างพาธใหม่ (เช่น /fcgi-บิน/
) หรือเปลี่ยนชื่อ (เช่น .fcgi
) ไม่เหมาะกับความต้องการของฉัน
การกำหนดค่าปัจจุบันของฉันสำหรับ CGI แบบเก่าเป็นดังนี้:
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<ไดเรกทอรี /var/www/cgi-bin>
AllowOverride ทั้งหมด
ตัวเลือกไม่มี
ต้องได้รับอนุญาตทั้งหมด
</ไดเรกทอรี>
และฉันได้ตั้งค่าตัวจัดการ FastCGI ด้วยตนเองสำหรับสคริปต์ที่อัปเดตในไฟล์ .htaccess
ไฟล์ที่มีคำสั่งดังนี้:
<Files "updated_fcgi_script.pl">
SetHandler fcgid-script
</Files>
แต่สิ่งนี้ค่อนข้างซ้ำซากและยุ่งยาก ฉันหวังว่าจะทำให้ตัวเองง่ายขึ้นด้วยการสร้างเส้นทางใหม่บนระบบไฟล์ที่สคริปต์ FastCGI ที่อัปเดตสามารถใช้งานได้ (เช่น /var/www/fcgi-bin/
) ใช้นามแฝงว่า /cgi-bin/
แล้วตั้งค่าตัวจัดการใน <Directory>
คำสั่งโดย Apache ให้บริการสคริปต์จากไดเร็กทอรีใดก็ตามที่พบสคริปต์ น่าเสียดายที่สิ่งนี้ไม่ได้ผล Apache ยอมรับการกำหนดค่าว่าถูกต้อง แต่ส่งคืน "การเข้าถึงถูกปฏิเสธ" สำหรับการร้องขอ ทั้งสอง สคริปต์ CGI เก่าและใหม่โดยไม่มีข้อมูลที่เป็นประโยชน์ในบันทึก
มีวิธีบรรลุสิ่งที่ต้องการหรือไม่รองรับ? ฉันไม่ใช่พ่อมด Apache ดังนั้นฉันจึงอาจใช้กูเกิลในสิ่งผิดๆ ขอบคุณ!