Deci, acest lucru va depinde în mare măsură de modul în care vă faceți PHP.
Există două abordări tipice cu Apache și fiecare are considerații diferite pentru a remedia această problemă cu permisiunile.
Încorporat php
modul în Apache
Aceasta este cea mai simplă soluție pentru a face Apache să lucreze cu PHP. PHP rulează în Apache și rulează ca utilizator configurat Apache.
sudo apt install libapache2-mod-php
sudo a2enmod php
sudo systemctl reporniți apache2.service
PHP FPM
PHP FPM este cealaltă opțiune - veți instala php-fpm
pachet, dar veți avea nevoie și de muncă suplimentară cu Apache pentru ca acesta să funcționeze.
sudo apt install libapache2-mod-fcgid php-fpm
Apoi trebuie să activați modulul FCGId în Apache, precum și alias
și proxy_fcgi
module:
acțiuni sudo a2enmod fcgid alias proxy_fcgi
Pentru Ubuntu 20.04, PHP este 7.4, așa că va trebui să adăugați acest lucru la configurația serverului dvs. oriunde îl utilizați 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>
Acest lucru trebuie să fie în interiorul tău <VirtualHost ...>
blocuri oriunde utilizați PHP.
Atunci trebuie să vă adaptați /etc/php/7.4/fpm/pool.d/www.conf
pentru a-l face să folosească utilizatorul pe care intenționați să îl căutați - căutați utilizator = www-data
linie și ajustați-o la utilizatorul dorit. Aș comenta acest rând și apoi aș pune unul definit de utilizator dedesubt, dar asta va schimba utilizatorul utilizat de către php-fpm
pentru a citi/scrie cu.
Oricare dintre aceste abordări vă va repara utilizatorul/grupul PHP cu care scrie/creează fișiere - depinde doar de modul în care instalați PHP - Apache embedded module sau FPM.