Apache / php ไม่สามารถเข้าถึง cifs / samba ระยะไกลได้


2

ฉันพยายามที่จะเข้าใจว่าปัญหาของฉันอาจจะอยู่ที่นี่:

ฉันกำลังใช้เว็บแอปพลิเคชั่นที่สร้างขึ้นบน LAMP ที่ต้องการเข้าถึงการแชร์แซมบ้าที่ฉันประสบความสำเร็จในการติดตั้งโดยใช้

mount -t cifs ...

ในแอปพลิเคชันการแชร์แซมบ้าไม่สามารถเข้าถึงได้เช่นเดียวกับไดเรกทอรีอื่น ๆ อย่างไรก็ตามฉันสามารถเข้าถึงผ่านเทอร์มินัลได้ดี นี่เป็นปัญหาสิทธิ์ของ Apache หรือไม่ ถ้าเป็นเช่นนั้นฉันจะให้สิทธิ์ในการ apache จากคอมพิวเตอร์ระยะไกลได้อย่างไร

คำตอบ:


5

ดูเหมือนว่าจะมีปัญหาเรื่องสิทธิ์ใช้งาน - ไม่ว่าผู้ใช้ Apache รายใดที่กำลังทำงานอยู่อาจไม่สามารถเข้าถึงแชร์ได้

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

สมมติว่าคุณไม่ได้ใช้ suexec Apache อาจทำงานในฐานะผู้ใช้ "www-data" หาก Apache กำลังทำงานเป็นผู้ใช้รายอื่นคุณจะต้องแก้ไขคำสั่งด้านล่างเพื่อแทนที่ www-data ด้วยชื่อผู้ใช้และกลุ่มที่เหมาะสม

ตัวอย่าง:

mount -t cifs -o user=smbusername,uid=www-data,gid=www-data //server/stuff /mnt/stuff/

เมื่อเมาท์ข้อมูล www-data จะปรากฏเป็นเจ้าของจุดเชื่อมต่อและ Apache จะสามารถอ่านได้

โปรดทราบว่าสิ่งนี้จะให้สิทธิ์ใด ๆ แก่ Apache ที่คุณมอบหมายให้smbusernameบนเซิร์ฟเวอร์ samba คุณอาจต้องการเมานต์แบบอ่านอย่างเดียวโดยเพิ่ม "ro" ขึ้นอยู่กับสิ่งที่คุณต้องการ:

mount -t cifs -o user=smbusername,uid=www-data,gid=www-data,ro //server/stuff /mnt/stuff/

สิ่งนี้อาจแตกต่างกันเล็กน้อยขึ้นอยู่กับเวอร์ชันของ Apache และ samba / cifs ของคุณโปรดแจ้งให้เราทราบหากยังใช้งานไม่ได้และระบบปฏิบัติการและเวอร์ชันที่คุณใช้อยู่และฉันจะพยายามช่วย

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