Apache เป็นโปรแกรมที่ทำงานในพื้นหลัง Apache เริ่มต้นโดยผู้ใช้root
(เรียกอีกอย่างว่าroot-process
) สิ่งนี้จะroot-process
เปิดใช้กระบวนการลูกหลายกระบวนการที่จัดการกับคำขอของลูกค้า เพื่อเหตุผลด้านความปลอดภัยกระบวนการลูกไม่ได้ถูกเรียกใช้โดยผู้ใช้root
แต่ในฐานะผู้ใช้ที่มีสิทธิ์น้อยที่สุด โดยปกติผู้ใช้นี้เป็นชื่อหรือapache
www-data
หากต้องการทราบว่าผู้ใช้รายนี้ใช้สำหรับ apache v1:
ps -ef | grep httpd | grep -v grep
หรือสำหรับ apache v2:
ps -ef | grep apache | grep -v grep
ผลลัพธ์สำหรับ apache 2 จะเป็นดังนี้:
root 5001 1 0 07:21? 00:00:00 / usr / sbin / apache2 -k start
www-data 5021 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k start
www-data 5022 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k start
www-data 5023 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k start
ในกรณีนี้ผู้ใช้ / กลุ่มคือ www-data
ดังนั้นในการสร้างไดเรกทอรีที่เขียนได้โดยเว็บเซิร์ฟเวอร์เราจะต้องตั้งเจ้าของหรือกลุ่มของไดเรกทอรีเป็นเจ้าของหรือกลุ่มของ Apache และเปิดใช้งานสิทธิ์การเขียนสำหรับมัน โดยปกติเราตั้งค่าไดเรกทอรีให้เป็นของกลุ่ม Apache ( apache
หรือ `www-data หรือสิ่งที่ผู้ใช้ใช้เพื่อเริ่มกระบวนการลูก) และเปิดใช้งานสิทธิ์การเขียนสำหรับกลุ่ม
chgrp www-data /path/to/mydir
chmod g+w /path/to/mydir
( www-data
เป็นชื่อที่คุณพบด้วยps
คำสั่งด้านบน)
เกี่ยวกับ:
2) ฉันได้รับคำสั่งให้สร้างแอป / รันไทม์ไดเรกทอรีบนเว็บเขียนได้ เป็นเช่นเดียวกับ apache เขียนได้?
ใช่นี่คือไดเรกทอรีที่คุณต้องตั้งค่าที่สามารถเขียนได้สำหรับกลุ่ม Apache ที่คาดหวัง อาจจะเป็นที่ใดที่หนึ่ง/var/www/
หรือตั้งเป็นโฮสต์เสมือนใน/etc/apache2/sites-enabled/
และ / หรือ/etc/apache2/sites-available