作業中のシステムのインストール スクリプトを作成しようとしています。このスクリプトは、いくつかの既定のファイルをある場所から別の場所にコピーし、それらのためにさまざまなフォルダーを作成します。私はこれでちょっとした作業をしていますが、唯一の問題は、FTP 経由でログインすると、PHP が移動したファイルを編集または削除できないことです。
ターミナル経由でログインすると、「sudo chmod -R 777 [dir]」で問題が解決するので、問題は次のとおりです。
PHP側で何が欠けていますか?
私の許可機能は次のとおりです。
function set_permissions($file)
{
if (file_exists($file)):
chmod($file,0777);
endif;
}
アクセス許可を 777 に設定するのが 100% 理想的ではないことは理解していますが、PHP がファイルを移動した後、FTP 経由でファイルを編集できるという結果を達成しようとしているだけです。
私が十分に明確であることを願っています。これは今私を困惑させているので、どんな助けも大歓迎です:)
トム
編集: プロセス全体は次のとおりです。
mkdir($root_dir, 0777);
mkdir($images_dir, 0777);
if (!copy($orig_logo, $new_logo))
{
echo "failed to copy $orig_logo...";
}
// see function above for details on set_permissions...
$this->set_permissions($new_logo);
}
(すべてのパスも正しいです)
edit :ターミナル経由でログインする前のファイルには、次の権限があります。
-rwxrwxrwx 1 www-data www-data 2739 2009-08-26 01:45 base.css
ログインして変更した後のファイルには次のものがあります。
-rwxrwxrwx 1 www-data www-data 2739 2009-08-26 01:45 base.css
このシステムは、管理領域からファイルを編集および削除できるコンテンツ管理システムであり、奇妙なことに、これはうまく機能します。ファイルがApache以外から何らかの形でロックアウトされているように見えますが、ファイル情報はそうではないことを示唆しています。それは奇妙です...