ชื่อและตำแหน่งของไฟล์กำหนดค่า Nginx (เทียบเท่ากับ htaccess) คืออะไร


30

มีบทเรียนมากมายเกี่ยวกับวิธีเขียนกฎการเขียน Nginx ใหม่เพื่อเลียนแบบไฟล์. htaccess ของ Apache แต่ฉันไม่สามารถพูดได้อย่างมั่นใจว่าฉันรู้ว่าชื่อหรือที่ตั้งของไฟล์กำหนดค่า Nginx นี้เรียกว่าอะไร ฉันกำลังมองหาไฟล์กำหนดค่า Nginx ที่อนุญาตให้คุณเขียนเส้นทางเซิร์ฟเวอร์และคำสั่ง PHP โดยเฉพาะ ฉันใช้ Ubuntu 12 linux และ Codeigniter เป็นกรอบงาน PHP ของฉัน

นี่คือสิ่งที่ฉันรู้:

  1. ไฟล์นี้: /etc/nginx/nginx.confแม้จะมีชื่อที่น่าดึงดูด แต่ก็ไม่ใช่สถานที่สำหรับคำสั่งของเซิร์ฟเวอร์
  2. ไฟล์นี้: /etc/nginx/sites-available/defaultดูเหมือนว่าสิ่งที่ฉันต้องการ (ฉันสามารถสร้างข้อผิดพลาด php เฉพาะแอปของฉัน) แต่ฉันไม่สามารถรับเส้นทางที่เฉพาะเจาะจง Codeigniter ได้ ก่อนอื่นนี่คือไฟล์ "config" / .htaccess ที่ทุกคนพูดถึงหรือไม่

ปัญหาของคุณไม่ได้เกิดจากภาษา PHP (เช่นการเขียนโปรแกรมใน PHP) แต่ก็มีการกำหนดค่า PHP บนเซิร์ฟเวอร์เฉพาะซึ่งอธิบายการลงคะแนนอย่างถูกต้องสมบูรณ์ ฉันไม่สามารถแสดงความคิดเห็นในส่วนหลังของโพสต์ของคุณเนื่องจากดูเหมือนว่าเป็นอัตนัยและเอนเอียง
nickb

1
คุณสามารถหาที่ตั้งค่า Nginx ตั้งอยู่โดยใช้ซึ่งคุณจะพบในคู่มือด้วยnginx -V ตัวเลือกที่ได้รับการบันทึกว่าเป็น "-V พิมพ์รุ่น Nginx, รุ่นคอมไพเลอร์และพารามิเตอร์สคริปต์." หากไม่ได้อยู่ในเส้นทางของคุณให้ใช้ซึ่งจะคืนค่าเส้นทางแบบเต็มไปยัง nginxman nginx-Vnginxwhich nginx$(which nginx) -V
bucabay

คำตอบ:


28

ฉันใช้ PHP กับ nginx บนเซิร์ฟเวอร์การพัฒนาของฉันด้วยการกำหนดค่าต่อไปนี้:

  1. ใน/etc/nginx/nginx.confฉันเพิ่ม: ก่อนที่สุดท้ายinclude /etc/nginx/sites-enabled/*;}

  2. เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างการกำหนดค่าไซต์ของคุณ:

    mkdir /etc/nginx/sites-available/
    mkdir /etc/nginx/sites-enabled/
    cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/<site>
    
  3. แก้ไขการกำหนดค่าไซต์การกำหนดค่าบางอย่างที่เป็นไปได้ (นี่คือสิ่งที่ฉันอ้างถึงในการตั้งค่า): http://kbeezie.com/view/nginx-configuration-examples/

  4. ลิงค์ไปยังเว็บไซต์ที่มีอยู่เพื่อเปิดใช้งาน

    ln -s /etc/nginx/sites-available/<site> /etc/nginx/sites-enabled/<site>
    
  5. โปรดทราบว่าคุณสามารถรวมไฟล์ไว้ในการกำหนดค่าได้เกือบทุกที่ซึ่งทำให้การสร้างเว็บไซต์หลาย ๆ ไซต์เป็นเรื่องง่ายเมื่อคุณต้องการรวมการกำหนดค่าที่คล้ายกันเข้าด้วยกัน

ใช่. htaccess สามารถเปรียบเทียบได้กับserver{}บล็อกใน nginx แต่จะแตกต่างกันมาก nginx มีวิธีการแยกวิเคราะห์การกำหนดค่าที่มีน้ำหนักเบากว่าและจะไม่สแกนไดเรกทอรีของไซต์เพื่อกำหนดค่าเพิ่มเติมเฉพาะสิ่งที่เห็นโดย nginx.conf


- @ Andrew ขอบคุณข้อมูลที่เป็นประโยชน์มากมาย! โดยค่าเริ่มต้น/etc/nginx/nginx.confไฟล์ของฉันมีinclude /etc/nginx/sites-enabled/*;ตอนท้ายสุดแล้ว ดูเหมือนว่าไฟล์ 2 ไฟล์นี้กำลังพูดคุยกันบนเซิร์ฟเวอร์ของฉันและตอนนี้ฉันกำลังจัดการกับปัญหาเฉพาะของ Codeigniter คุณใช้ codeigniter หรือไม่ มีบาง funkiness เส้นทางที่ฉันต้องได้รับการจัดการใน ... คือ
ทิมปีเตอร์สัน

ฉันใช้กรอบงานของตัวเองซึ่งค่อนข้างคล้ายกัน (แม้ว่าจะเป็นแบบดั้งเดิมมากกว่า) กับ CodeIgniter ในขณะนี้ฉันพยายามรับกฎ modexp ของฉัน mod_rewrite ที่แปลงเป็นโมดูล HttpRewrite ของ nginx การค้นพบครั้งสำคัญครั้งแรกของฉันคือการได้รับข้อผิดพลาด 403/404 ที่ nginx แสดงเมื่อฉันกำหนดค่าrootพารามิเตอร์ไม่ถูกต้อง รู้สึกอิสระที่จะตรวจสอบคำถามของฉันหากคุณต้องการแรงบันดาลใจใด ๆ
abestic9

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