2016-08-21 10 views
1

私はPHPでchmod関数を使って一時的に777に権限を変更し、ファイルをアップロードしてから755に戻そうとしました。しかし、私はPHPを介してchmod関数を使用することはできません。フォルダのアクセス権を変更せずにWebサーバーにアクセス権を与える

if(chmod($path, 0777)) { 
    if(!move_uploaded_file($oldfile, $newfileloc)) { 
     return false; 
    } 
    chmod($path, 0755); 
    return true; 
} 
else 
    return false; 

フォルダに付与された755の権限で以前のサーバーで作業していました。

権限の仕組みがわからないので、助けてください、ありがとう!

EDIT:の/ var/WWWフォルダになるように、ウェブサーバがファイルを書き込むことができますどのような権限を持っている必要がありますか?

編集2: これはわかりました。私は、Webサーバに必要なすべての権限があることを確認するために、www-data:www-dataに権限を与えなければなりません。 しかし、私が得ている問題は、私が/ var/wwwを持っているときにチャットがあったということです。www-データ:www-データ、PHP関数はうまくいきますが、FileZillaを使うときにエラーが拒否されました。だから今私はroot:www-dataにアクセス許可を変更しなければならないたびにFileZilla経由で何かを転送してからwww-data:に戻って私のWebサーバが正常に動作していることを確認してください。誰でもこれを修正しましたか?

答えて

1

あなたは755の許可を与えることができます。しかし、あなたは/ var/www/folderの所有者とグループを変更する必要があります。それはwww - データの所有権とグループ所有権を持っている必要があります。まず、このフォルダの所有権とグループ所有権を持つユーザを確認します。以下のコマンドを実行します。

LLの/ var/www /の

それがルートアクセス権を持っている場合、それは次のようになります。

drwxr-xr-x。 2 root root 23 Mar 21 17:33 html

以下のコマンドを使用して、所有者とグループの所有者をwww-data userに変更します。

のchown -R WWW-データ:あなたは755 -Rオプションは、その子フォルダとファイルに再帰的に許可を与えるために使用されたフォルダのアクセス権を維持することができます

www.dataの/ var/WWW 。

+0

あなたの答えをありがとうが、私はこれを理解しました。私が得ている問題は、私が/ var/wwwにchown ** www-data:www-data **があると、php関数は正常に動作していますが、FileZillaを使用しているときにエラーが拒否されました。だから私はFileZilla経由で何かを転送する必要があるたびに** root:www-data **へのアクセス権を変更しなければなりません。その後、** web-server:www-data **に戻って、これに対する解決策はありますか? –

+0

acl許可を与えてください。 setfacl -m u:www-data:rwx/var/www。また、実際の所有権を維持してください:www-data。 –

関連する問題