Cách cấu hình php8.x-fpm và sửa lỗi permission
trên Ubuntu hoặc Linux Debian, giúp bạn thiết lập đúng cách và không bị các lỗi không mong muốn về permission denied.
Cách cấu hình php8-fpm và sửa lỗi permission trên Ubuntu Linux
Nếu bạn developer
, chắc hẳn bạn sẽ gặp phải nhiều lỗi cấp phép liên quan đến quyền sở hữu (Owner) và quyền của USER trong các project. Vậy làm thế nào để cấu hình và thiết lập các phiên bản php-fpm đúng cách? Hãy cùng ItsmeIT thảo luận trong bài viết này.
1. Nguyên nhân phổ biến lỗi file Owner permission
- Khi bạn upload file lên hosting/server
- Khi bạn thay đổi nội dung của một file mà bạn không có quyền ghi, thực thi.
- Khi render, public, deploy source code mà USER không phải là chủ sở hữu FILE.
- Khi thay đổi quyền sở hữu (Owner) không đúng cách…
Với một số ví dụ các lỗi liên quan đến permission ở trên, nếu bạn mới làm quen với linux, có lẽ bạn sẽ sử dụng lệnh chmod 777 hoặc 755 để đặt quyền cho nó. Không!, đừng bao giờ đặt quyền 777 cho file và thư mục. Nó sẽ có tác động lớn đến bảo mật của trang web hoặc ứng dụng của bạn.
Và lý do đó chỉ là tạm thời, giải quyết vấn đề chắc chắn không đúng. Vì vậy, hãy định cấu hình các quyền đọc, ghi, thực thi và quyền sở hữu (Owner) một cách chính xác. Hãy cùng itsmeit tiếp tục tìm hiểu và thảo luận về cách cấu hình php 8 fpm và sửa lỗi permission trên Ubuntu Linux.
2. Đặt chủ sở hữu tệp (Owner) cho USER trên Ubuntu & Linux
Sau khi đã cài đặt thành công các phiên bản php trên hệ thống, bạn có thể tham khảo bài viết cách cài đặt php 8 trên ubuntu. Bây giờ, hãy truy cập file /etc/php/8.0/fpm/pool.d/www.conf và chỉnh sửa nó. (thay thế phiên bản “8.0” bằng phiên bản php hiện tại của bạn.).
Trước khi thực hiện việc này, bạn có thể sao lưu dự phòng trong trường hợp muốn quay lại mặc định.
sudo cp -R /etc/php/8.0/fpm/pool.d/www.conf /etc/php/8.0/fpm/pool.d/www.conf.bak sudo nano /etc/php/8.0/fpm/pool.d/www.conf

Như ảnh bên trên bạn sẽ nhìn thấy dòng có giá trị [www], khi bạn sử dụng máy chủ nginx hoặc apache các dự án web/app sẽ được đặt trong thư mục /var/www/… Có nghĩa là tất cả các thư mục đằng sau /var/www/ sẽ chịu ảnh hưởng bởi user và group có quyền như các giá trị dưới đây.
user = www-data
group = www-data
listen.owner = www-data
listen.group = www-data
user = itsmeit
group = www-data
listen.owner = itsmeit
listen.group = www-data
User/group = www-data: Đây là cấu hình mặc định, khi bạn render hoặc upload file, project lên server nó sẽ render với quyền là www-data:www-data. Điều này sẽ gây ra lỗi permission denied vì chỉ có www-data mới có quyền ghi và thực thi (thêm sửa xóa). Nếu bạn dùng user root nó cũng vẫn sẽ hoạt động những nó chắc chắn sẽ vẫn gặp các lỗi về permission tương tự.

Vì vậy, cách xử lý là bạn sẽ cần cấu hình php 8 fpm trên Ubuntu 22.04 | 20.04 & Linux cho USER các quyền đọc, ghi và thực thi. Ở đây người dùng mà tôi đã chỉ định là itsmeit. Bạn cũng có thể chỉ định quyền cho các nhóm, tương tự như USER, đối với tôi, mặc định group là www-data và quyền đọc, ghi, thực thi là itsmeit.

Tha đổi cấu hình xong bạn cần phải chạy lệnh reset lại php để cấu hình có hiệu lực. Nhớ thay thế phiên bản php của bạn trong câu lệnh.
sudo service php8.0-fpm restart
Sau khi thiết lập như vậy, bạn sẽ sử dụng USER mà bạn chỉ định để quản lý các dự án web/ứng dụng. Bạn cũng có thể tạo ssh keys
để đăng nhập khi làm việc trên VPS.

Với phần thảo luận trong bài viết cách cấu hình php 8 fpm trên Ubuntu 22.04, 20.04 hoặc Linux, chắc chắn bạn sẽ có cái nhìn khác về quyền đọc, ghi và thực thi của USER. Với cách thiết lập quyền trên, bạn sẽ hạn chế được những lỗi không mong muốn khi sử dụng php8.x-fpm.
– Advertising –