Apache เริ่มการทำงานล้มเหลวเนื่องจากไม่พบไฟล์ที่มีอยู่


0

ฉันได้กำหนดค่าหนึ่งในไฟล์กำหนดค่าเว็บอินสแตนซ์ที่มีตัวอย่างด้านล่างเพื่ออนุญาตให้การเปลี่ยนเส้นทางทำงานผ่านไฟล์อื่นโดยไม่จำเป็นต้องรีสตาร์ทเซิร์ฟเวอร์

RewriteMap redirects txt:/mnt/var/www/html/abc/content/abc/na/ac/config_en_us/redirects/redirects.txt
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond ${redirects:%1} >""
RewriteRule ^(.*)$ ${redirects:%1} [R=301,NC,L]

เมื่อพยายามเริ่ม httpd ใหม่หลังจากวางข้อมูลโค้ดฉันไม่สามารถเริ่ม apache ได้ รหัสเดียวกันทำงานบนเซิร์ฟเวอร์อื่น ๆ ไฟล์ถูกสร้างขึ้นและฉันได้ตรวจสอบสิทธิ์

ด้านล่างนี้เป็นข้อความแสดงข้อผิดพลาด

ข้อผิดพลาดทางไวยากรณ์ในบรรทัดที่ 69 ของ /etc/httpd/conf.d/abc.conf: RewriteMap: ไฟล์สำหรับการเปลี่ยนเส้นทางแผนที่ไม่พบ: / mnt / var / www / html / abc / เนื้อหา / abc / na / ac / config_en_us / การเปลี่ยนเส้นทาง /redirects.txt

ในที่สุดฉันก็สามารถนำเซิร์ฟเวอร์ขึ้นมาได้ แต่การแก้ไขไม่ถูกต้อง นี่คือสิ่งที่ฉันทำ

ฉันสร้างไฟล์เดียวกันโดยใช้ชื่อเดียวกันในพา ธ /etc/httpd/conf.d จากนั้นย้ายไปยังพา ธ ที่ต้องการหลังจากที่ apache สามารถค้นหาไฟล์และสร้างไฟล์ขึ้นมา ใครช่วยฉันเข้าใจสิ่งที่เกิดขึ้นได้ไหม


เปลี่ยนเป็นผู้ใช้ Apache กำลังใช้งานและลองทำls -lบนเส้นทางที่กำหนดเพื่อดูว่าคุณได้รับข้อผิดพลาดใด คุณต้องตรวจสอบการอนุญาตของแต่ละองค์ประกอบในเส้นทางไม่ใช่แค่ชื่อไฟล์
Patrick Mevzek

1
การขยายตัวในสิ่งที่ @PatrickMevzek พูดว่า: ไฟล์นั้นต้องได้รับการอนุญาตสำหรับผู้ใช้ Apache และทุก ๆ ไดเรกทอรีบนพา ธ ไปยังไฟล์นั้นต้องการทั้งสิทธิ์ในการอ่านและการใช้งาน
Fox

ฉันลองทั้งคำแนะนำข้างต้นแล้วและมันไม่ทำงาน infact ฉันเปลี่ยนสิทธิ์เป็น 77 และมันก็ยังไม่ทำงาน
user1643087

คำตอบ:


1

เพื่อให้ชัดเจนคำตอบนี้ตามความเห็นของ Fox:

"ไฟล์นั้นต้องการสิทธิ์อ่านสำหรับผู้ใช้ Apache ที่ทำงานเป็นและทุกไดเรกทอรีบนเส้นทางไปยังไฟล์นั้นต้องการทั้งสิทธิ์ในการอ่านและดำเนินการ"


ตัวอย่าง. บน CentOS ฉันมีไฟล์อยู่/etc/http/conf/และพา ธ ไม่ได้ตั้งค่าดังกล่าวข้างต้น ฉันย้ายไปที่/var/www/(ซึ่งก่อนหน้านี้ได้รับการกำหนดค่าอย่างเหมาะสม) จากนั้นก็ใช้งานได้

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