カスタマー サービスが FTP 経由でファイルをアップロードすると、デフォルトですべてのファイルに ROOT ユーザー権限が与えられるため、PHP ファイルの読み取り、書き込み、作成ができなくなります。
各ファイルは chown www:www によってのみ設定できます。
PHP経由で操作する方法はありますか?
カスタマー サービスが FTP 経由でファイルをアップロードすると、デフォルトですべてのファイルに ROOT ユーザー権限が与えられるため、PHP ファイルの読み取り、書き込み、作成ができなくなります。
各ファイルは chown www:www によってのみ設定できます。
PHP経由で操作する方法はありますか?
あなたはこう言いました: 彼らのサーバーでは SFTP を使用してファイルを直接転送することを好みます。そのため、プログラムはディレクトリの作成やファイルの書き換えなどができなくなります。これは避けられません。usermod -aG www [username] を使用して、sftp にログインしているユーザーを www グループに追加します。これにより、www とファイルを転送するユーザー これはグループであるため、ファイルには 664 権限を与える必要があります。 (これは私が使用した方法です。私は syncthing と atom エディター (users グループに属する) をローカルで使用して、ファイルを Web サーバー (nginx グループ) と同期します。ただし、Web サーバーをユーザーに公開します)
はい、bool chown (string $filename,mixed $user) は変更できます。 PHP には chmod があるようですが、サーバー上で変更することをお勧めします。
通常、フォルダーのアクセス許可は 755、ファイルのアクセス許可は 644 です。これを行うには、次のコマンドを使用します (特定のフォルダーは自分で変更できます): chown -R nginx.nginx /usr/share/nginx/html/ && find /usr/share/nginx/html/ -type d -exec chmod 755 { } ; && find /usr/share/nginx/html/ -type f -exec chmod 644 {} ;
リーリー
chown -R nginx.nginx /usr/share/nginx/html/ && find /usr/share/nginx/html/ -type d -exec chmod 755 {} ; && find /usr/share/nginx/html/ -type f -exec chmod 644 {} ;
我是把它写入bashrc,总不能下次要用又敲一次吧:alias webroot='chown -R nginx.nginx /usr/share/nginx/html/ && find /usr/share/nginx/html/ -type d -exec chmod 755 {} ; && find /usr/share/nginx/html/ -type f -exec chmod 644 {} ;'
別のサーバーはsftpを使用してファイルを転送します。ファイルを転送する前に、sshを開いて、ユーザーに属するすべてのファイルの権限をbashrcに書きます。終わったら元に戻してください。結局のところ、stfp を使用する必要があり、root をそのまま使用するのは安全ではありません)。
ご都合がよければ、フォルダー -R 777 を選択してください
FTP ユーザーは権限を設定できないのですか?
root でログインせず、Win からダウンロードしてください。通常、xftp などの FTP ツールを使用して、渡されたフォルダーとファイルのアクセス許可を変更し、後続の受信ファイルに対して同じアクセス許可を維持できます。
この関数 boolchown() を使用することもできますが、あまり安全ではありません。これを実行するには root 権限も必要です。ftp アカウントがユーザーと一致していることが最善です。 PHPプロセス
シェルで chown コマンドを使用して、ランプを設定するときに以前にこの問題に遭遇しました。