在 Ubuntu 上解决 PHP-FPM 权限问题通常涉及以下几个方面:
PHP-FPM 默认以 www-data
用户身份运行。你需要确保你的 web 服务器(如 Nginx 或 Apache)也以相同的用户身份运行。
编辑 Nginx 配置文件(通常位于 /etc/nginx/sites-available/your-site
),确保 fastcgi_pass
指向正确的 PHP-FPM 套接字或端口,并且 fastcgi_param SCRIPT_FILENAME
设置正确。
server {
listen 80;
server_name your-domain.com;
root /var/www/your-site;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 或者使用端口 fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
确保 mod_proxy_fcgi
和 mod_fastcgi
模块已启用,并在虚拟主机配置中正确设置。
<VirtualHost *:80>
ServerName your-domain.com
DocumentRoot /var/www/your-site
<Directory /var/www/your-site>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
确保你的 web 根目录及其内容对 www-data
用户可读写。
sudo chown -R www-data:www-data /var/www/your-site
sudo find /var/www/your-site -type d -exec chmod 755 {} \;
sudo find /var/www/your-site -type f -exec chmod 644 {} \;
确保 PHP-FPM 配置文件(通常位于 /etc/php/7.4/fpm/pool.d/www.conf
)中的用户和组设置正确。
[user] = www-data
[group] = www-data
在修改配置文件后,重启相关服务以应用更改。
sudo systemctl restart nginx
sudo systemctl restart apache2
sudo systemctl restart php7.4-fpm
如果问题仍然存在,检查相关服务的日志文件以获取更多信息。
/var/log/nginx/error.log
/var/log/apache2/error.log
/var/log/php7.4-fpm.log
通过这些步骤,你应该能够解决大多数 Ubuntu 上的 PHP-FPM 权限问题。如果问题仍然存在,请提供具体的错误信息以便进一步诊断。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>