Dav*_*vid 52 permissions nginx
我有一个 PHP 脚本,它创建一个目录并将图像输出到该目录。这在 Apache 下运行得很好,但我们最近决定切换到 NGINX 以更多地利用我们有限的 RAM。我正在使用 PHP mkdir() 命令来创建目录:
mkdir(dirname($path['image']['server']), 0755, true);
Run Code Online (Sandbox Code Playgroud)
切换到 NGINX 后,我收到以下警告:
Warning: mkdir(): Permission denied in ...
Run Code Online (Sandbox Code Playgroud)
我已经检查了父目录的所有权限,所以我确定我可能需要更改 NGINX 或 PHP-FPM 'user' 但我不知道该怎么做(我从来没有指定用户APACHE 的权限)。我似乎找不到这方面的太多信息。任何帮助都会很棒!
(注意:除了这个小问题,切换到 NGINX 的过程非常顺畅;我是第一次使用它,实际上只用了 10 分钟就可以启动并运行 NGINX。现在我只是在熨烫解决问题。)
gla*_*vić 74
以 www:www 运行 nginx 和 php-fpm
编辑 nginx.conf 并将用户设置为www www;
如果主进程以 root 身份运行,那么 nginx 会将 setuid()/setgid() 设置为 USER/GROUP。如果未指定 GROUP,则 nginx 使用与 USER 相同的名称。默认情况下,它是nobody user 和nobody 或nogroup 组,或者./configure 脚本中的--user=USER 和--group=GROUP。
编辑php-fpm.conf并将用户和组设置为www.
user - 进程的 Unix 用户。默认“www-data”
group - Unix 进程组。默认“www-data”
小智 34
在Ubuntu 14.04 中,用于在PHP-FPM 中更改用户和组的文件是:. 在此文件中更改这些参数:/etc/php5/fpm/pool.d/www.conf
user = www
group = www
listen.owner = www
listen.group = www
Run Code Online (Sandbox Code Playgroud)
要回答您的实际问题,只需像这样更改user行nginx.conf:
user [username];
Run Code Online (Sandbox Code Playgroud)
例子:
user www-data;
Run Code Online (Sandbox Code Playgroud)
Nginx 运行的首选用户实际上因操作系统而异。有时 Nginx 应该作为www-data. 其他时候它实际上应该作为nobody.
在某些操作系统(如 Windows)上,这甚至无关紧要,可以将userin 行nginx.conf注释掉或完全排除。
| 归档时间: |
|
| 查看次数: |
256787 次 |
| 最近记录: |