我有一个 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。现在我只是在熨烫解决问题。)
我刚刚启动了一个新的 Rackspace 云服务器并运行了以下命令:
apt-get install php5 nginx php-fpm
Run Code Online (Sandbox Code Playgroud)
当我导航到 IP 地址时,我会看到默认的 Nginx 消息。然后我/etc/nginx/sites-available/default
从另一个工作设置复制了我的文件:
server {
listen 80;
server_name localhost;
root /srv/www;
index index.php;
location / {
try_files $uri $uri/ /controllers$uri.php;
location ~ \.php$ {
try_files $uri /index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我创建index.php
的/srv/www
,并开始nginx
和php-fpm
:
/etc/init.d/nginx start
/etc/init.d/php5-fpm start
Run Code Online (Sandbox Code Playgroud)
我收到 502 Bad Gateway 错误。难道我做错了什么?