ฉันกำลังพยายามทำให้สคริปต์ perl ทำงานบน Oracle Linux 8.5
เซิร์ฟเวอร์ Apache และโฮสต์เสมือนของฉันทำงานกับ html แบบคงที่
โฮสต์เสมือนทดสอบของฉัน fnu มีสคริปต์ perl พื้นฐานชื่อ hw.pl ใน /var/www/fnu:
#!/usr/bin/perl
พิมพ์ "ประเภทเนื้อหา: ข้อความ/html\n\n";
พิมพ์ "สวัสดีชาวโลก นี่คือ fnu";
ฉันมีลิงค์จาก index.html ไปยัง hw.pl สิทธิ์เปิดและเจ้าของตั้งค่าเป็น apache:
-rwxrwxrwx. 1 apache apache 89 4 มิ.ย. 20:59 hw.pl
lrwxrwxrwx. 1 apache apache 5 4 มิ.ย. 20:59 น. index.html -> hw.pl
นี่คือการกำหนดค่าไซต์ใน /etc/httpd/conf.d:
<VirtualHost *:80>
DocumentRoot "/var/www/fnu/"
ชื่อเซิร์ฟเวอร์ fnu.[ถูกบดบัง].net
ServerAlias fnu
ErrorLog /var/log/fnu/error.log
รวม CustomLog /var/log/fnu/request.log
</VirtualHost>
<Directory "/var/www/fnu">
ตัวเลือก +ExecCGI +SymLinksIfOwnerMatch
AddHandler cgi-script .cgi .pl
</Directory>
ถ้าฉันชี้เบราว์เซอร์ไปที่ fnu/hw.pl ฉันจะได้รับผลลัพธ์ตามที่คาดไว้ นั่นคือผลลัพธ์ของสคริปต์ ถ้าฉันชี้เบราว์เซอร์ไปที่ fnu/ ฉันจะได้รับเนื้อหาของไฟล์ ดังนั้นมันจึงไปตามลิงค์ แต่มันไม่ได้รันเป็นสคริปต์ perl เมื่อไปถึงที่นั่น ไม่มีประโยชน์ใน /var/log/fnu/error.log
SELinux ถูกตั้งค่าเป็น Permissive
ฉันขอขอบคุณความช่วยเหลือใด ๆ
เอาต์พุตสคริปต์ตามที่คาดไว้
เนื้อหาไฟล์สคริปต์