Plesk + NFS แล้วให้ PHP กับ Apache Full Access เครื่อง Storage ครับ

ผมลอง Mount ให้ Folder server_fs เชื่อมต่อไปที่เครื่องเก็บไฟล์แล้ว

เวลารันไฟล์ upload_file.php หรือ view.php เพื่อดึงไฟล์รูปมันไม่แสดงผลครับ

ลองปิด iptables ทั้งสองเครื่องดูแล้ว ก็ไม่ได้ครับ คิดว่าน่าจะเป็นที่ User/Group

-rw-r–r-- 1 iamclaz psacln 6357 Oct 27 09:58 index.php

drwxrwxrwx 10 root root 4096 Oct 28 11:39 server_fs

-rw-r–r-- 1 iamclaz psacln 803 Oct 28 11:37 upload_file.php

-rw-r–r-- 1 iamclaz psacln 2268 Oct 28 11:36 view.php

ถ้เาปิดจาก www.iamclaz.net/server_fs มันจะขึ้น

Forbidden

You do not have permission to access this document.

แต่ถ้าผ่าน ip xxxx.x.xx.xxx/server_fs ก็ขึ้นได้

แต่ผมอยากให้ PHP ของเครื่อง Web สามารถอัพโหลดไฟล์ / แก้ไข ได้ด้วย

ขอผู้รู้ช่วยแนะนำหน่อยครับ TT

เข้าทาง ip ได้ เข้าทาง domain ไม่ได้

น่าจะเป็นปัญหาเรื่องการ config virtual host ของ apache ครับ

ลองดูใน error log ของ apache ดูว่ามันไปอ่านไฟล์จาก path ใหน

ที่ขึ้น forbidden เพราะมันไปอ่านไฟล์ผิดที่ มันเลยไม่เจอไฟล์

คือ index.php กับ view.php รันขึ้นครับ

แต่ไฟล์รูปที่วางใน /www/vhosts/iamclaz.net/httpdocs/server_fs ( foler ที่ mount ไปเครื่อง storage ) ไม่ขึ้น

แต่ถ้า /www/vhosts/iamclaz.net/httpdocs/upload อันนี้ขึ้นเพราะเป็น Folder ในเครื่อง web เอง

คือผมเข้าใจว่า folder : server_fs ที่ mount มาให้เครื่อง web แล้ว

น่าจะมองเหมือน folder ทั่วไปที่สร้างจากเครื่อง web เอง แต่ทีนี้มันกลับ rw ไมได้ TT

ลองปรับ User:Group ของไฟล์ php ที่ใช้เรียกหา folder ที่ mount ให้เป็น root root ก็ไม่ได้ครับ

ปกติเขียนแต่โปรแกรม ไม่ค่อยได้จับงานด้าน Server เลยไม่มีความชำนาญครับ TT

user:group ของไฟล์ php ไม่เกี่ยวครับ เพราะมันจะทำงานด้วยสิทธิ์ของ apache(user apache)

แนะนำให้ตรวจสอบ pernission ด้านในครับ

กรณี 403 เกิดได้จากการไม่มีไฟล? index ใน folder นั้นก็เปนได้

แล้วก็สำหรับ nfs ลองดูเงื่อนไขการ export ด้วยครับว่า block อะไรไว้รึเปล่า

แล้วก็ ขอผลลัพท์ของคำสั่ง getenforce ด้วยครับ

NFS มันจะมีเรื่องสิทธิ์ในการเชื่อมต่อด้วยนะครับ คนลพเครื่องก็จะเป็นคนละ user นอกจากว่าจะใช้ผ่าน DC

ตอบคุณ Icez ครับ

Error 403 ข้างในมีไฟล์ index.html ครับอาจจะติดที่อื่น

แล้วก็ nfs ใส่คำสั่งไป /var/www/html/nekopost_fs xxx.x.xx.xxx(rw,sync,no_root_squash)

***แทน ip ของ web server ด้วย xxx

ส่วนคำสั่ง getenforce ได้ผลลัพท์คือ Enforcing ครับ

ถามคุณ Sheroku

ผมเข้าใจว่าที่เครื่อง FS ที่ระบุว่า ip อะไรได้รับ path ไหนในการ share ให้กับ Web Server

น่าจะทุก User ในเครื่อง Web Server ที่ได้รับสิทธิ์รึเปล่าครับ

ขอบคุณครับ เริ่มใจชื้นมาหน่อยแล้ว

สั่ง setenforce 0 ครับ จบ ใช้ได้ชัวร์

แล้วไปแก้ไฟล์ /etc/selinux/config จาก SELINUX=enforcing เป็น disabled ด้วยครับ

ส่วนเรื่องสิทธิ์การเชื่อมต่อของ nfs เหมือนจะเข้าใจอะไรผิด … มันอ้างอิง uid ตามเครื่องปลายทางนะครับ เครื่องต้นทาง lock สิทธิ์แค่ ip

ขอบคุณครับคุณ Icez ตอนนี้สามารถใช้ Resouece ผ่านเครื่อง FS ได้แล้ว

ลองค้นอีกนิดหน่อยเลยรู้ว่า SELinux จะดูแลความปลอดภัยระหว่าง Application กับ Resource

เิดิมในเครื่องมีแต่ Web App อย่างเดียวไม่มีโปรแกรมอื่น ๆ รันด้วย

ผมคิดว่า Disabled SELinux แล้วปลอดภัย

ขอบคุณสำหรับมิตรภาพครับ

ถ้าเป็นไปได้ เปิด selinux ไว้จะปลอดภัยกว่าเยอะครับ

และเท่าที่รู้มา plesk เป็น cp ตัวเดียวที่ทำงานทั้งๆ ที่เปืด selinux ไว้ได้

แต่ secure มากก็ขัดใจ 5555

เดี๋ยวจะลองปรับ Config ของ SElinux จาก Google ดูครับ

http://prefetch.net/blog/index.php/2010/11/02/configuring-a-linux-nfs-server-in-a-selinux-managed-environment/

สำหรับ NFS ที่ระบุให้ ip web server แล้ว ผมนึกออกแล้วเกิดปัญหา unsecure ผมเดาว่าประมาณว่าหลอก ip แล้วดึง resource ออกไปใช้มั้งครับ

ทั้ง rw เลย สงสัยต้องรีบไปศึกษาเพิ่มเติมก่อนใช้งานจริง ^^"