Để website hoạt động được tốt chúng ta cần đảm bảo hai yếu tố
- Website wordpress phải thuộc quyền sở hữu của webserver mà cụ thể là user:group apache2:apache2, nginx:nginx, www-data, nobody:nobody với những hệ điều hành khác nhau chạy Webserver LAMP hay LEMP chúng ta sẽ có những tài khoản khác nhau, thông thường là 4 tài khoản được liệt kê bên trên.
- Và source wordpress phải được gán quyền 755 cho folder và 644 cho file.
1. Xác định tài khoản quản trị Webserver
Trước tiên chúng ta cần phải biết được Webserver đang được quản trị bởi user, group nào, chạy lệnh:
ps aux | grep nginx
2. Thay chủ sở hữu
Khi đã xác định được tài khoản nginx đang dùng để vận hành webserver bạn chỉ cần sử dụng lệnh chown cho file/folder để đổi quyền sở hữu như sau.
chown -R nginx:nginx /home/domain/public_html/
Trong đó /home/domain/public_html là folder chứa source của website.
3. Phân quyền cho Foder
Do source code của website có đến cả chục nghìn folder chúng ta không thể ngồi list đường dẫn riêng để phân quyền cho từng cái được. Trong hướng dẫn này mình sẽ kết hợp việc lọc các folder và chmod trong một lệnh duy nhất cho ngắn gọn.
Xem lệnh bên dưới:
find /home/domain/public_html -type d -print0 | xargs -0 chmod 755
- find: lệnh thực hiện tìm kiếm trong thư mục /home/domain/public_html
- type d: chỉ tìm thư mục và hiển thị đường dẫn tuyệt đối của thư mục, mỗi đường dẫn sẽ nằm trên một dòng.
- print0 : loại bỏ ký tự xuống dòng, toàn bộ dường dẫn của thư mục sẽ được xếp thành 1 chuỗi dài nằm gọn trên 1 dòng duy nhất.
- |lấy kết quả của lệnh bên trái làm đầu vào cho lệnh bên phải.
- xargs -0: thực hiện chèn khoảng trắng vào giữa các đường dẫn.
- chmod 755: cuối cùng là thực hiện phân quyền 755 cho chuỗi đường dẫn thư mục nhận được.
- Để hiểu rõ hơn cú pháp bạn thử chạy từng đoạn lệnh trên SSH cho mình, ví dụ chạy lệnh find /home/domain/public_html trước tiếp theo thêm tùy chọn -type d, cứ thế bạn theo dõi kết quả xuất ra màn hình, nó cũng dễ hiểu thôi.
4. Phân quyền cho File
Cũng tương tự như với folder muốn chmod cho file chỉ cần thay -type d bằng -type f thôi, bạn chạy lệnh sau cho mình.
find /home/domain/public_html -type f -print0 | xargs -0 chmod 644
OK việc phân quyền bạn vào lại wordpress thử upload file xem sao.
Leave a Reply