尝试在服务器上调用mkdir()时出现以下错误...
警告:mkdir()[function.mkdir]: 许可被拒绝 /home/server/public_html/wp-content/themes/mytheme/catimages/cat-images.php 在第373行
功能如下。它试图在网站的“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;
}
答案 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
)
答案 1 :(得分:1)
确保父文件夹可写入Web服务器运行的进程。
编辑:哎呀,过早回复。您的主机是否为您提供了GUI文件浏览器?