我在Ngnix上运行的PHP应用程序(贝加尔湖)有问题。应用程序对其某个配置文件没有(不再)写入权限。升级 PHP 后,可能会出现此问题。
以下是有关我的设置的一些信息:
操作系统: Arch Linux
Nginx 版本: 1.16.1
Nginx user: http
PHP 版本: 7.4.1
应用: 贝加尔湖 0.4.6
Nginx 配置:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name –––––––––;
root /usr/share/webapps/baikal/html;
index index.php;
include include/ssl.conf;
include include/letsencrypt.conf;
rewrite ^/.well-known/caldav /dav.php redirect;
rewrite ^/.well-known/carddav /dav.php redirect;
charset utf-8;
location ~ /(\.ht|Core|Specific) {
deny all;
return 404;
}
location ~ ^(.+\.php)(.*)$ {
try_files $fastcgi_script_name =404;
include /etc/nginx/fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
应用程序报告文件 Specific/config.php 不可写。完整路径为 /usr/share/webapps/baikal/Specific/config.php。
出于测试目的,我已将文件的权限设置为777;没有成功。我测试了PHP函数。它将返回该文件。 表示文件系统是只读的(它不是)。is_writablefalsefopen
我读过很多关于 SELinux 防止写入操作的文章,但正如我所说,我使用的是 Arch Linux,它不是 SELinux。
我认为这与PHP不允许在Nginx中的根目录集之外写入的事实有关,但我无法修复它。
任何人都可以帮忙吗?
至尊宝的传说