mkdir()拒绝权限

Sco*_*t B 8 php error-handling mkdir

尝试在服务器上调用mkdir()时出现以下错误...

警告:mkdir()[function.mkdir]:第373行/home/server/public_html/wp-content/themes/mytheme/catimages/cat-images.php中的权限被拒绝

功能如下.它试图在网站的"wp-content/uploads文件夹"下创建一个文件夹.我已经验证PHP版本是5.2.15并且主题文件夹中的文件是可写的,但这并不一定意味着我认为uploads文件夹是可写的.

如何确定uploads文件夹是否可写?

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;
}
Run Code Online (Sandbox Code Playgroud)

Pis*_*3.0 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)