-4

我必须在 apache 服务器中创建一个目录,但它看起来好像无法识别 coomand。这是我的代码。

<?php



mkdir("var/www/devData/",0777);
print "created";

?>

当我启动file.php时,我将“创建”作为输出,但是在我使用shell检查目录是否存在但没有目录之后。任何人都可以帮助我吗?

4

5 回答 5

2
error_reporting(E_ALL);
ini_set('display_errors', 1);

// a new directory in your current working directory (cwd)
$path = dirname(__FILE__) . "/your/path";

if(!mkdir($path, 0777, true)) {
    echo "Failure";
} else {
    echo "Success";
}

我假设您没有创建该路径的权限。is_writable()您可以使用mkdir()文档告诉您更多信息来检查您是否能够写入该目录。

于 2012-07-30T13:31:24.103 回答
1

以下代码可以使用 php 函数来降低查找当前目录的复杂性。

 $thisdir = getcwd(); //current directory
    if(mkdir($thisdir ."/mydir", 0777 ))
    {
       echo "Directory has been created successfully...";
    }
    else
    {
       echo "Failed to create directory...";

    }

这东西很好用。确保您的父目录是可写的。

于 2012-07-30T13:37:45.897 回答
0

你可能没有权利这样做

 <?php
      $new_folder = "var/www/devData";
      if(!mkdir($new_folder,0777,true)) { // true = for recrusive createing
         echo "Can't creating ".$_SERVER['DOCUMENT_ROOT']."/".$new_folder;
      }
      else 
         echo "Successful creating ".$_SERVER['DOCUMENT_ROOT']."/".$new_folder;
 ?>
于 2012-07-30T13:34:22.853 回答
0

读这个

http://php.net/manual/en/function.mkdir.php

试试这个:-

<?php
// Desired folder structure
$structure = './depth1/depth2/depth3/';

// To create the nested structure, the $recursive parameter 
// to mkdir() must be specified.

if (!mkdir($structure, 0, true)) {
    die('Failed to create folders...');
}

// ...
?>
于 2012-07-30T13:34:44.187 回答
0

首先确保file.php脚本的所有者对目录具有写访问权/var/www/is_writable()会告诉你。

然后:您使用的是相对路径,因此脚本尝试创建一个相对于其自身位置的目录。你需要

a) 使用绝对路径 ( /var/www/...)

或者

b) 使用相对路径但没有路径file.php本身所在的位置(例如:file.phpis = /var/www/file.php、 use mkdir("devData/",0777);)。

另外:它当然会说“创建”,因为无论如何您都将其打印出来。如果您想让它仅在没有出现任何问题时才说“创建”,请尝试

if (mkdir("devData/",0777)) {
    echo "created";
}
else {
    echo "something went wrong...";
}
于 2012-07-30T13:36:15.820 回答