-4

Apacheサーバーにディレクトリを作成する必要がありますが、コマンドが認識されないようです。これは私のコードです。

<?php



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

?>

file.php を起動すると、出力として「作成」されますが、ディレクトリが存在するかどうかを確認するためにシェルを使用した後、ディレクトリはありません。誰でも私を助けることができますか?

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 に答える