8

サーバーで mkdir() を呼び出そうとすると、次のエラーが発生します...

警告: mkdir() [function.mkdir]: /home/server/public_html/wp-content/themes/mytheme/catimages/cat-images.php 行 373 で許可が拒否されました

機能は以下。サイトの「wp-content/uploads フォルダー」の下にフォルダーを作成しようとしています。PHP のバージョンが 5.2.15 で、テーマ フォルダー内のファイルが書き込み可能であることを確認しましたが、必ずしもアップロード フォルダーが書き込み可能であるとは限りません。

アップロード フォルダが書き込み可能かどうかを調べるにはどうすればよいですか?

protected function category_images_base_dir()
{
    // Where should the dir be? Get the base WP uploads dir
    $wp_upload_dir = wp_upload_dir();
    $base_dir = $wp_upload_dir[ 'basedir' ];
    // Append our subdir
    $dir = $base_dir . '/cat-images';
    // Does the dir exist? (If not, then make it)
    if ( ! file_exists( $dir ) ) {
        mkdir( $dir ); //THIS IS LINE 373
    }
    // Now return it
    return $dir;
}
4

2 に答える 2

7

is_writable()おそらくあなたが探している機能です。

http://cz.php.net/manual/en/function.is-writable.phpによると:

ファイル名が存在し、書き込み可能である場合はTRUEを返します。filename引数は、ディレクトリが書き込み可能かどうかを確認できるディレクトリ名にすることができます。

また、すぐ次の行はここに関連しています:

PHPは、Webサーバーが実行されているユーザーIDとしてファイルにアクセスしている可能性があることに注意してください(多くの場合、「nobody」)。

つまり、ディレクトリがWebサーバーのユーザーIDで書き込み可能かどうかを確認してください。これは、ユーザーIDとは異なる可能性があります。適切な権限を設定します。たとえば、フォルダのユーザーグループをサーバーのユーザーのユーザーグループに設定し、グループに読み取り、書き込み、実行を許可します。(chgrp somegroup uploads; chmod g+r uploads; chmod g+w uploads; chmod g+x uploads

于 2011-02-10T20:07:57.073 に答える
1

親フォルダーが、Webサーバーを実行するプロセスに対して書き込み可能であることを確認してください。

編集:おっと、時期尚早の返信。あなたのホストはあなたにGUIファイルブラウザを提供しますか?

于 2011-02-10T20:06:42.133 に答える