2009-08-26 15 views
0

私が作業しているシステム用のインストールスクリプトを作成しようとしています。このスクリプトは、デフォルトのファイルをある場所から別の場所にコピーし、さまざまなフォルダを作成します。私はこのビットを扱っていますが、唯一の問題は、FTP経由でログインすると、PHPが私のために移動したファイルを編集または削除できないことです。PHPファイルのアクセス権...「書き込み」するのですか?

私は喜んで「sudo chmodコマンドの-R 777 [DIR]」私ができる端子を介してログインし、問題が消えるので、質問がある場合:

私はPHPの終わりに行方不明ですか?次のように

私の権限機能は次のとおりです。

function set_permissions($file) 
{ 
    if (file_exists($file)): 
    chmod($file,0777); 
    endif;     
} 

私はそれが777に権限を設定するのが理想的に100%ではありません理解し、私は単にFTP経由でファイルを編集することができるという結果を達成しようとしています、PHPが私のためにそれらを動かした後。

私は十分にはっきりしています。これが今私を不可解されるため任意のヘルプは大歓迎です:)

トム

編集: 全体のプロセスは次のとおりです。

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); 
} 

(すべてのパスが正しいすぎている)

: 端末からログインする前のファイルには、次のアクセス許可があります。

-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 ...しかし、ファイル情報はそうでないことを示唆しています。それは奇妙です...

答えて

1

ディレクトリのようなサウンドには、書き込み権限も必要です。

+0

申し訳ありませんが、私はファイルを移動しているディレクトリもそれらに適用されているアクセス許可を持っていることを述べておくべきです。 ファイルをディレクトリに移動する前に、次のディレクトリを使用してディレクトリを作成します。 mkdir($ default_dir、0777); これが役に立ったら... – Tisch

+0

有効なACLはありませんか? –

+0

厚くて申し訳ありませんか? ACLの? – Tisch

1

ファイルが存在するか、パスが正しいですか?

1

端末でchmod -R 777を介して問題を解決できる場合、chmodを実行する前に、PHPによって許可されたアクセス許可は何ですか?明らかに777ではありません。私の推測では、あなたのPHPコードは実際にアクセス権を変更していないと思います。

ファイルが存在しない場合、権限変更機能が黙って失敗する可能性があります。たとえば、無効なファイル名(間違ったフォルダ、間違った相対パス)を指定していますが、あなたのset_permissions()機能があなたに警告するのが怖すぎるために伝えてください。次のようにあなたはそれを書き換える必要があります。これはあなたが何が起こっているかを確認することができます

function set_permissions($file) 
{ 
    if (!file_exists($file)) 
    throw new Exception(__FUNCTION__ . "() file doesn't exist! '$file'"); 
    chmod($file,0777); 
    error_log("chmod 777 $file"); // debug 
} 

、そしてあなたは、ファイル名が正しく持っていない場合、あなたは確かにわかります。

+0

端末経由でログインする前のファイルには、次の権限があります。 -rwxrwxrwx 1 www-data www-data 2739 2009-08-26 01: 45 base.css ファイル私は、ログインして変更した後にそれがありますので、 -rwxrwxrwx 1 WWW-データWWW-データ2739 2009-08-26 1:45 base.css を受けて、私はそれを確認する必要がありPHPが正しく動作しています。また、私のシステムを使ってブラウザを使ってファイルを細かく処理すると、それがうまく削除され、自分のシステムでも編集できることに注意する価値があります。 – Tisch