ฉันกำลังพยายามตั้งค่าการอนุญาตบน IIS 7.5 ที่ทำงานใน Win7 คำแนะนำที่ฉันพบคือ:

  1. ตรวจสอบให้แน่ใจว่าไซต์ทั้งหมดของคุณมี Application Pool ที่กำหนดเฉพาะของตนเอง
  2. ในการตั้งค่าขั้นสูงภายใต้รูปแบบการประมวลผลสำหรับกลุ่มแอปพลิเคชัน ให้ตั้งค่าบัญชีในตัวเป็น ApplicationPoolIdentity
  3. เปิดใช้งานการเลียนแบบใน php.ini ด้วย fastcgi.impersonate = 1
  4. IIS > Authentication > Anonymous Authentication > Application Pool Identity (ไม่ใช่ IUSR)
  5. ตั้งค่าสิทธิ์ในการอ่าน/เขียนในโฟลเดอร์ของคุณโดยใช้บัญชีผู้ใช้กลุ่มแอปพลิเคชันที่สร้างขึ้นโดยอัตโนมัติ (เช่น "IIS AppPool\MyAppPoolName")

เมื่อฉันป้อน MyAppPoolName ฉันไม่แน่ใจว่าจะใช้ชื่อใด:

ฉันมีสองเว็บไซต์ที่ทำงานบนเซิร์ฟเวอร์เดียวกันนี้ ใน IIS Manager Application Pools ฉันมี:

WebSite1 v4.0 (Integrated)
WebSite1 v4.0 (Classic)
WebSite1 v2.0 (Integrated)
WebSite1 v2.0 (Classic)
WebSite2 v4.0 (Integrated)
WebSite2 v4.0 (Classic)
WebSite2 v2.0 (Integrated)
WebSite2 v2.0 (Classic)

ฉันควรใช้อะไรสำหรับ MyAppPoolName "IIS AppPool\MyAppPoolName"

ขอขอบคุณ,

Docfxit

answer

ฉันไม่คิดว่าคุณจะเลือก App Pool ใด หากคุณโฮสต์แอปพลิเคชัน PHP และไม่มีการใช้ .NET

v2.0 และ v4.0 บอกให้ IIS ใช้ .NET 2.0 หรือ .NET 4.0 สำหรับแอปพลิเคชัน ซึ่งไม่สำคัญเท่ากับที่คุณใช้ PHP

เพียงให้แน่ใจว่าพวกเขาถูกแยกออกจากกัน

สำหรับโหมดไปป์ไลน์แบบคลาสสิกและแบบรวม ไม่สำคัญเช่นกัน:

การอ่านแบบคลาสสิกและแบบรวมบางส่วน: https://stackoverflow.com/questions/759304/what-is-the-difference-between-defaultapppool-and-classic-net-apppool-in-iis7

และนี่คือการอ่านเฉพาะสำหรับ PHP: http://technet.microsoft.com/en-us/magazine/2008.07.iis7.aspx#id0110047

Keep in mind that integrated mode and classic mode only affect how IIS 7.0 integrates ASP.NET into the request pipeline. These pipeline modes do not affect PHP applications directly. The FastCgiModule and all other native modules load without pipeline-mode preconditions in both integrated mode and classic mode.

หากคุณมีสองไซต์ คุณควรมีกลุ่มแอปพลิเคชันเพียงสองแห่งเท่านั้น ฉันจะเปลี่ยนชื่อ AppPools ที่โฮสต์เว็บไซต์ของคุณและลบเว็บไซต์อื่น ดังนั้นคุณควรลงเอยด้วยบางสิ่งเช่น

Site1AppPool
Site2AppPool

จากนั้นสำหรับการตั้งค่าการอนุญาต NTFS ให้ใช้:

IIS AppPool\Site1AppPool
IIS AppPool\Site2AppPool

คุณไม่สามารถเรียกดูชื่อเหล่านี้ในกล่องโต้ตอบการอนุญาต คุณต้องพิมพ์ชื่อเหล่านี้

คุณแท็กสิ่งนี้ด้วยbatch-fileดังนั้นคุณอาจต้องการเขียนสคริปต์นี้ คุณสามารถเขียนสคริปต์ห้าขั้นตอนพร้อมการตั้งค่าการอนุญาต NTFS ด้วย PowerShell