Vì vậy, điều này sẽ phụ thuộc rất nhiều vào cách bạn thực hiện PHP của mình.
Có hai cách tiếp cận điển hình cho vấn đề này với Apache và mỗi cách có những cân nhắc khác nhau để khắc phục sự cố này với các quyền.
nhúng php
mô-đun trong Apache
Đây là giải pháp đơn giản nhất để Apache hoạt động với PHP. PHP chạy trong Apache và chạy với tư cách là người dùng được cấu hình Apache.
sudo apt cài đặt libapache2-mod-php
sudo a2enmod php
sudo systemctl khởi động lại apache2.service
PHP FPM
PHP FPM là tùy chọn khác - bạn sẽ cài đặt php-fpm
gói, nhưng bạn cũng sẽ cần thêm công việc với Apache để làm cho nó hoạt động.
sudo apt cài đặt libapache2-mod-fcgid php-fpm
Sau đó, bạn cần bật mô-đun FCGId trong Apache, cũng như bí danh
và proxy_fcgi
mô-đun:
hành động sudo a2enmod fcgid bí danh proxy_fcgi
Đối với Ubuntu 20.04, PHP là 7.4, vì vậy bạn sẽ cần thêm phần này vào cấu hình máy chủ của mình ở bất cứ nơi nào bạn đang sử dụng php-fpm
:
<FilesMatch \.php$>
# 2.4.10+ can proxy to unix socket
SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost"
</FilesMatch>
Điều này phải nằm trong phạm vi của bạn <VirtualHost ...>
chặn bất cứ nơi nào bạn đang sử dụng PHP.
Sau đó bạn phải điều chỉnh /etc/php/7.4/fpm/pool.d/www.conf
để làm cho nó sử dụng người dùng mà bạn dự định - hãy tìm người dùng = dữ liệu www
và điều chỉnh dòng này cho người dùng bạn muốn. Tôi sẽ nhận xét dòng này và sau đó đặt một dòng do người dùng của bạn xác định bên dưới nó, nhưng điều đó sẽ thay đổi người dùng đang sử dụng bởi php-fpm
để nó đọc/ghi với.
Một trong hai cách tiếp cận này sẽ khắc phục người dùng/nhóm PHP của bạn mà nó ghi/tạo tệp bằng - nó chỉ phụ thuộc vào cách bạn cài đặt PHP - mô-đun nhúng Apache hoặc FPM.