还是不好使,不过那函数是好使的,已经成功的修改了权限为777,
可是……Warning: mkdir() failed (File exists) in /var/www/html/admin/postnew.php on line 35
../testabc/imagesWarning: SAFE MODE Restriction in effect. The script whose uid is 505 is not allowed to access ../testabc owned by uid 48 虽然修改了权限,我还是不能在那里建立目录。:(

解决方案 »

  1.   

    <?
    mkdir("gcs", 0777);
    chdir("gcs");
    mkdir("gcs925", 0777);
    ?>我刚刚试过这段代码,好用!
      

  2.   

    function mkdirs($path)
    {
    $path = "../" . $path;
    if(!@dir($path)){
    mkdir($path,0777);
    }
    chmod($path,0777);
    chdir("$path");
    mkdir("images",0777);
    }
    按照楼上朋友说的刚改的,还是不行。:(
      

  3.   

    function mkdirs($path)
    {
    $path = "../" . $path;
    if(!@dir($path)){
    mkdir($path,0777);
    }
    chmod($path,0777);
    chdir("$path");
    mkdir("images",0777);
    }
    按照楼上朋友说的刚改的,还是不行。:(
      

  4.   

    mkdir
    建立目录。语法: int mkdir(string pathname, int mode);返回值: 整数函数种类: 文件存取
     
     
    内容说明 
    本函数建立参数 pathname 目录,参数 mode 以八进位的方式指定 (在参数前加 0) 比较不会出错。返回 true 表示成功,失败则返回 false。
     
     
    使用范例 
    下例就是用八进位的例子,建立 /path/to/my/dir 目录,该目录只有拥有者及 root 等级可读写执行,其它人无法使用。 <?php
    mkdir("/path/to/my/dir", 0700);
    ?> 
      

  5.   

    以上PHP中文手册里的说明。我又重新试了一下昨天我程序,用程序建立的目录的owner是51,而我用ftp建立的目录的owner是172,所以,对于用程序建立的目录,我不是owner,没有权限对目录进行操作。
    我不能操作gcs925这个目录,包括不能对其进行改名、删除、向目录里copy文件建立目录等。
    但是,可是对gcs进行操作,可是,不能删除。因为目录不为空。于是,我又用另一个程序,将我建立好的目录删除了,因为执行程序的owner是相同的,所以,可以用程序对其进行操作。
      

  6.   

    我想,唯一的办法就是:更改目录的owner,我查找了PHP中文手册,里面有对文件进行owner操作的,我没有找到更改目录owner的。各位高手有什么其它的办法?
      

  7.   

    还有啊,在linux下,目录和文件没多大区别的。楼上朋友你试试看……呵呵
      

  8.   

    mkdir.php代码:
    <?
    mkdir("gcs", 0777);
    chmod("gcs", 0777);
    if (chown("gcs", 172)) {
    echo "good";
    }
    else {
    echo "bad";
    } copy ("/usr/home/u561m1/htdocs/mengtai/photo/photo2.jpg", "/usr/home/u561m1/htdocs/gcs/photo2.jpg");
    /*
    chdir("gcs");
    mkdir("gcs925", 0777);
    */
    ?>rmdir.php代码
    <?
    chdir("gcs");
    // rmdir("gcs925");
    unlink("/usr/home/u561m1/htdocs/gcs/photo2.jpg");
    chdir("..");
    rmdir("gcs");
    ?>
      

  9.   

    经过测试:
    程序建立的目录的属性还是755,没有改变。
    而且,改变owner的功能也不好用。
    用程序是可以向程序建立的目录下copy文件的,而且,也可以通过web方式访问。我还是觉得是owner的问题。
    也许是服务器的配置不同吧!
      

  10.   

    看来必须把PHP的safe mode关闭掉了。
    详见:http://www.php.net/manual/en/features.safe-mode.php
      

  11.   

    别想办法了,PHP中函数肯定不可能去更改“非用户目录”下的其它目录的权限。原因如此:
    PHP在Linux上用户是按Apache(之类的服务器)上User参数指定的用户进行工作的,也就是User有什么权限,PHP就能在服务器上做什么事。一般说来,不可能把User权限设置为root权限吧?如果如此的话,就算是你能更改/home/www目录的权限,又如何能更改得了/home目录的权限。
    只要有一个上面层次目录的权限不够,你就无法将文件或目录写入到这个目录下。所以就不要打PHP去更改目录权限的主意了。如果有人真的能够更改的话,那PHP要修正这个BUG,否则,那台服务器的系统管理员就有得事做了。如果要将文件写到某一目录下话,还是先用root用户在根目录下建立一子目录,并将其属主chown到Apache指定的User.Group,再将其权限chmod到755状态,然后在Apache中用Alias子句将该目录映射到网站的根目录下。
    在写文件时一定要注意copy($filename,$target)中的$target一定是写服务器的绝对路径,而不网站的绝对路径!
      

  12.   

    testa如果是用php建的,就没有问题吧?
      

  13.   

    未解决,没法解决……结帐ing~