2012-07-30 61 views
-4

我必须在apache服务器上创建一个目录,但是看起来好像不能识别coomand。这是我的代码。Apache服务器上的Php mkdir

<?php 



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

?> 

当我启动“创造”的file.php我有作为输出,但之后我使用shell进行检查,如果该目录存在,但没有目录。 任何人都可以帮助我?

+3

[启用错误报告](http://stackoverflow.com/questions/845021/how-to-get-useful-error-messages-in-php)并检查mkdir()的返回值,它是一个表示成功的布尔值。 – CodeCaster 2012-07-30 13:31:05

+0

无论错误是什么,它几乎肯定被问到http://stackoverflow.com/search?q=%5Bphp%5D+mkdir – 2012-07-30 13:39:10

回答

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() documentation告诉您更多信息。

+0

因为我认为路径不正确,但我怎么知道correc路径?我工作在不同的路径,我想创建文件夹如何设置路径? – Edivad 2012-07-30 13:41:30

+0

我编辑了答案。您只需根据要创建目录的路径设置'$ path'变量。 – fdomig 2012-07-30 13:45:50

+0

路径不好如何检查正确的路径?因为我必须在apache中创建该文件夹,但在另一个不同于目录实际工作的目录中的文件夹 – Edivad 2012-07-30 13:50:34

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; 
?> 
+0

路径不好,但我怎么检查正确路径?因为我必须在apache中创建该目录,但在我当前工作目录的另一个目录中 – Edivad 2012-07-30 13:49:25

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...'); 
} 

// ... 
?> 
0

首先确保业主的您的file.php脚本可以直接访问该文件ctory /var/www/is_writable()会告诉你。

然后:您正在使用相对路径,因此脚本尝试创建相对于其自己位置的目录。您将需要

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

B)使用相对路径,但没有本身所在的路径file.php(如:file.php是= /var/www/file.php,该使用mkdir("devData/",0777);)。

另外:它当然说“创建”,因为你打印出来不管是什么。如果你想只在没有任何错误的情况下说“已创建”,请尝试

if (mkdir("devData/",0777)) { 
    echo "created"; 
} 
else { 
    echo "something went wrong..."; 
} 
1

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

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

    } 

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