我有一个带有LEMP(linux,nginx,mariadb,php)堆栈的流浪盒用于开发webapp,我目前在配置nginx和php-fpm时遇到了一些问题。我正在使用puppet和puPHPet来配置VM。
似乎combo php-fpm和nginx无法写入文件(即生成的日志文件,框架发布的资产(yii2)等)。
这个项目使用apache而不是nginx工作得很好,所以我会抛弃一个编程问题而且我一直遵循nginx安装的指导原则并且仍然收到诸如“这个目录不能被Web进程写入的消息” “或”权限被拒绝“就像错误一样。
根据建议,我设置/etc/php5/fpm/php.ini
选项cgi.fix_pathinfo = 0
。
的nginx /位点可用/ site.conf
server {
listen *:80;
server_name site.dev;
client_max_body_size 128M;
root /var/www/frontend/web;
index index.php;
access_log /var/log/nginx/test.access.log;
error_log /var/log/nginx/test.error.log;
location / {
root /var/www/frontend/web;
try_files $uri $uri/ index.php /index.php$is_args$args;
}
location ~ \.php$ {
root /var/www/frontend/web;
index index.html index.htm index.php;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param APP_ENV dev;
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
}
sendfile off;
}
PHP-FPM / www.conf
user = www-data
group = www-data
listen-owner = www-data
listen-group = www-data
listen-mode = 0660
我见过其他帖子,其中listen-mode被注释掉,我尝试了两种方法并将模式设置为0666
,但仍然没有运气。
我还尝试将流氓的内部和内部的权限设置为0777
的文件夹,我知道框架用来写数据但仍然没有运气。
我有一个非常相似的工作项目配置与它的工作方式相同但是这个没有,我找不到差别(实际上我从这个项目中获取配置文件以设置新的首次尝试失败)。
ps aux | grep php
root php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
www-data php-fpm: pool www
www-data php-fpm: pool www
不同项目中的目录似乎具有相同的权限编号,而另一个则没有。
我完全无能为力!想法非常受欢迎!