2016-03-22 9 views
0

私は基本的にアップロード機能を持つコードを書くためにphpでローカルnginxサーバを走らせています。私は画像をフォルダtmpにアップロードしてから作業する必要があります。しかし、私はフォルダのアクセス許可cozのいくつかの問題があると推測するPHPは、エラーUPLOAD_ERR_CANT_WRITEを送り返しています。ディレクトリ内Nginx、PHPでのファイルアップロードのパーミッションエラー

ls -l

drwxr-xr-x 2 root root  4096 Mar 22 19:20 assets 
-rw-r--r-- 1 root root  1564 Mar 22 19:20 cropper.php 
drwxr-xr-x 5 root root  4096 Mar 22 19:20 files 
drwxr-xr-x 2 root root  4096 Mar 22 19:20 images 
-rw-r--r-- 1 root root  10018 Mar 22 19:20 index.htm 
-rw-r--r-- 1 root root  7972 Mar 22 19:20 second-page.php 
drwxrwxr-x 2 arjun www-data 4096 Mar 22 19:20 tmp 

私は周りの権限を変更しようとしたが、彼らは失敗し続けます。では、どうやってこの混乱から抜け出すことができますか?

答えて

1

phpがwww-dataグループとして動作していることを確認してください。それはしないでください。 configで "Group"を探します。そのユーザーにはgrep phpの

ルックPHPのデーモンのユーザーとのchown tmpフォルダ|

簡単な方法は、

PSの補助です。

nginxのと同じユーザによって実行されない通常のPHPを覚えて、彼らは異なるプロセスです

0

グループ許可はwww-dataに設定されていますが、ユーザーは引き続き自分自身に割り当てられます。 ディレクトリにcdを実行してchown -Rf www-data:www-dataを実行すると、tmpディレクトリの所有者がWebサーバーに設定され、phpがそのフォルダに書き込むことが許可されます。

0

=> PHP-FPMニーズがアクセスではなく、nginxのを書きます。あなたが理想的に、あなたが同様に制限し、ディレクトリWWW-データとPHP-FPMがへの書き込みアクセスを持っているものに制限する-R 1000年tmpの

をchgrpし可能性はuid 1000と、ないWWW-データとして

を実行しているPHP-FPMプロセス例えばWordPressのアップロードディレクトリにアップロードします。

関連する問題