我在服务器中遇到mkdir权限被拒绝错误的问题。 所以我没有使用mkdir,而是改变了我的代码并使用了CFileHelper :: createDirectory。
CFileHelper::createDirectory('pathOfDirectory'.'/'.777,true)
它确实在我的本地使用1.1.16 ..但是当我把它推到服务器时。功能未定义。我不知道这个功能在Yii 1.1.14中是否真的不存在。因为我们的实时服务器使用此版本。对此有何解决方案?鉴于这种情况我不允许chmod或在服务器中创建一个目录,只让应用程序以编程方式自己创建目录
答案 0 :(得分:0)
我发现您输入错误的问题。请尝试以下方法:
CFileHelper::createDirectory('pathOfDirectory'.'/', 777, true);
无论如何,如果你看一下createDirectory()
函数的实现,你会发现,这只不过是mkdir
和chmod
:
public static function createDirectory($dst,$mode=null,$recursive=false)
{
if($mode===null)
$mode=0777;
$prevDir=dirname($dst);
if($recursive && !is_dir($dst) && !is_dir($prevDir))
self::createDirectory(dirname($dst),$mode,true);
$res=mkdir($dst, $mode);
@chmod($dst,$mode);
return $res;
}
因此,除了您的网络用户和您的ssh用户可能不同之外,实际上没有区别。
答案 1 :(得分:0)
我做的解决方法,我创建了一个PHP类,将它放在组件目录中并扩展了CFileHelper.php ...然后从那里,我添加了Yii 1.1.14中不存在的createDirectory()函数。 ..解决了问题:D