ฉันจะทำให้ apache รัน cgi แทนการแสดงข้อความได้อย่างไร


12

ฉันพยายามติดตั้ง bugzilla 4 บน Ubuntu 11.04

ฉันได้เพิ่มสิ่งต่อไปนี้ใน httpd.conf ของฉันแล้ว

<Directory “/var/www/dev.spincentre/bugzilla”>
   AddHandler cgi-script .cgi
   Options +Indexes +ExecCGI
   DirectoryIndex index.cgi
   AllowOverride Limit
</Directory>

แต่เมื่อฉันไปที่ URL apache จะแสดงข้อความของ index.cgi แทนที่จะเรียกใช้สคริปต์ ความคิดใด ๆ วิธีการแก้ไขหรือไม่

คำตอบ:


18

คุณโหลดโมดูล mod_cgi หรือไม่ คุณสามารถดูว่าไดเร็กทอรี / etc / apache2 / mods-enabled / มี symlink cgi.loadหรือไม่ หากไม่มี symlink คุณสามารถสร้างมันขึ้นมาได้ด้วยการรัน

sudo a2enmod cgi

จากนั้นรีสตาร์ท Apache:

sudo service apache2 restart

คุณสามารถเรียกใช้man a2enmodเพื่อดูสิ่งที่a2enmodทำ


ฉันมีปัญหาที่คล้ายกันบน Ubuntu 14.04 ในกระบวนการโยกย้ายจากเซิร์ฟเวอร์เก่า ฉันไม่เคยคิดว่า cgi จะถูกปิดใช้งานโดยค่าเริ่มต้นซึ่งไม่ใช่เซิร์ฟเวอร์เก่า สิ่งนี้แก้ไขได้! Plz แนะนำให้พวกเขาเช่นเดียวกันที่stackoverflow.com/questions/15199198/... ขอขอบคุณ!
user3215

ฉันมี symlink แต่ cgi ยังคงไม่ทำงาน
Whitecat

1

เมื่อติดตั้ง apache 2.4 ฉันมีปัญหาหลายอย่างที่ต้องแก้ไขและมีปัญหาเดียวกันกับข้อความที่แสดงแทนที่จะเรียกใช้ cgi การแก้ปัญหาไม่เหมือนข้างต้นซึ่งเป็นทางออกสำหรับ apache 2.2

ก่อนอื่นคุณจะต้องดาวน์โหลดไฟล์ 2.4 gz และแกะออก หากคุณพยายามที่จะรวบรวมมันจะบ่น APR ไม่พบเพราะมันจะไม่รวม คุณต้องดาวน์โหลดไฟล์ apr และ apr-util จาก apache และคลายไฟล์ลงในไดเร็กทอรีที่คุณกำลังรวบรวม apache ในไดเร็กทอรีย่อยชื่อ srclib ดังนั้นพา ธ ของคุณจะเป็น. /httpd/srclib/apr และ ./httpd/srclib/apr -util คุณต้องลบหมายเลขรุ่นใด ๆ ออกจากชื่อไดเรกทอรี

cd ไปยังไดเร็กทอรี / path / httpd ของคุณและคอมไพล์ด้วย

$ ./configure - พร้อมกับรวม apr

คุณจะกำหนดค่าเริ่มต้นเป็น PREFIX = / usr / local / apache2

สร้างรายได้

$ ทำการติดตั้ง

$ vi PREFIX / conf / httpd.conf

คุณจะต้องแก้ไขไฟล์ httpd.conf ของคุณเพื่อให้ cgi ของคุณทำงานได้

ในกรณีของฉันฉันทำต่อไปนี้:

เปลี่ยนฟัง 80 เป็น 127.0.0.1:80

เปิดใช้งานบรรทัด: LoadModule cgid_module modules / mod_cgid.so

เปลี่ยน SeverName เป็น: ServerName 127.0.0.1:80

เปลี่ยนเส้นทางใน DocumentRoot และ Directory เพื่อให้เหมาะกับระบบของฉัน

เปลี่ยนเส้นทางใน ScriptAlias

เปิดใช้งานบรรทัด Scriptsock cgisock

เปลี่ยนเส้นทางใน Directory หลังจาก ScriptAlias ​​เพื่อให้เหมาะกับระบบของฉัน

เปิดใช้งานบรรทัด AddHandler cgi-script .cgi

บันทึกการเปลี่ยนแปลงและเริ่ม apache ด้วย:

เริ่มต้น $ / usr / local / apache2 / bin / apachectl -k

หวังว่านี่จะช่วยให้ทุกคนดิ้นรนกับเรื่องนี้;)


ขอบคุณสำหรับการแบ่งปันฉันมีปัญหาในการติดตามคุณจะช่วยจัดการเรื่องนี้ให้ดีขึ้นได้ไหม
user230910
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.