Apache, là một chương trình đang chạy trong nền. Apache ban đầu được bắt đầu bởi người dùng root
(còn được gọi là root-process
). Điều này root-process
khởi chạy một số quy trình con xử lý các yêu cầu của máy khách. Vì lý do bảo mật, các tiến trình con không phải do người dùng điều hành root
mà là người dùng với các đặc quyền tối thiểu. Thông thường người dùng này được đặt tên apache
hoặc www-data
.
Để tìm hiểu xem người dùng này dùng gì cho apache v1:
ps -ef | grep httpd | grep -v grep
hoặc cho apache v2:
ps -ef | grep apache | grep -v grep
Kết quả cho apache 2 sẽ giống như thế này:
root 5001 1 0 07:21? 00:00:00 / usr / sbin / apache2 -k bắt đầu
dữ liệu www 5021 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k bắt đầu
dữ liệu www 5022 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k bắt đầu
dữ liệu www 5023 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k bắt đầu
Trong trường hợp này, người dùng / nhóm là www-data
Vì vậy, để làm cho một thư mục có thể ghi được bởi máy chủ web, chúng ta phải đặt chủ sở hữu hoặc nhóm của thư mục thành chủ sở hữu hoặc nhóm của Apache và cho phép ghi cho nó. Thông thường, chúng tôi đặt thư mục thuộc về nhóm Apache ( apache
hoặc `dữ liệu www hoặc bất kỳ người dùng nào được sử dụng để khởi chạy các tiến trình con) và cho phép quyền ghi cho nhóm.
chgrp www-data /path/to/mydir
chmod g+w /path/to/mydir
( www-data
là tên bạn tìm thấy với ps
lệnh trên).
Về:
2) Tôi cũng được yêu cầu làm cho thư mục ứng dụng / thời gian chạy có thể ghi thành web. Đây có phải là giống như apache ghi?
Đúng, đây là một thư mục bạn cần để ghi vào nhóm mà Apache mong đợi. Có lẽ đây sẽ là một nơi nào đó trong /var/www/
hoặc nó được đặt làm máy chủ ảo trong /etc/apache2/sites-enabled/
và / hoặc/etc/apache2/sites-available