Nginx 和 PHP:没有写权限

我对在 Ngnix 上运行的 PHP 应用程序(Baikal)有疑问。该应用程序对其配置文件之一没有(不再)写入权限。升级 PHP 后可能会出现此问题。

以下是有关我的设置的一些信息:

  • 操作系统:Arch Linux

  • Nginx 版本:1.16.1

  • Nginx 用户: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_writable。它返回false该文件。fopen表示文件系统是只读的(不是)。


我已经阅读了很多关于 SELinux 防止写入操作的内容,但正如我所说,我使用的是 Arch Linux,它不是 SELinux。

我认为这与不允许 PHP 在 Nginx 中设置的根目录之外写入的事实有关,但我无法修复它。


有人可以帮忙吗?


HUWWW
浏览 253回答 1
1回答

侃侃无极

好的,搞定了。座位。自 PHP 7.4 起,PHP-FPM 通过以只读方式挂载 、 和 目录/usr来/boot保护系统。/etc这篇文章和这个问题让我找到了将应用程序文件夹移到/usr.
打开App,查看更多内容
随时随地看视频慕课网APP