2015-11-09 3 views
0

im используя этот код php для создания резервной копии всех моих баз данных MYSQL. но он посылает эту ошибку: не может создать каталогmy php code can not create directory in host

<?php 
.. 
.. 
.. 
.. 

     if (mysql_select_db($db)) print "Selected [$db]\n"; 
     else die("Failed to select db [$db]"); 
     foreach (array("schema","data") as $pass){ 
      $sql = mysql_query("show tables"); 
      $day = date("l"); 
      if ($pass=="schema") $dir = "/$backup_dir/$db/schema"; 
      else $dir = "/$backup_dir/$db/$day"; 
      if (!file_exists($dir)) system("mkdir -p $dir"); 
      if (!file_exists($dir)) die("Couldn't Create $dir"); 
      if ($pass=="data"){ 
       $latest = (/$backup_dir/$db/latest";) 
       unlink($latest); 
       system("/bin/ln -s \"$dir\" \"$latest\""); 
      }    
      cleanup($dir); 
      if ($sql) while ($s = mysql_fetch_assoc($sql)) { 
       if (!isset($s["Tables_in_{$db}"])) { 
        print "no result"; 
        print_r($sql); 
        die(); 
       } 

.. 
.. 
.. 

?> 

с ниже кодом, я мог бы создать каталог в моем хозяине:

<?php 
$structure = './depth1/depth2/depth3/'; 
if (!mkdir($structure, 0777, true)) { 
    die('Failed to create folders...'); 
} 
?> 

есть какой-либо способ объединить эти коды или любые другие предложения для решения Эта проблема?

привет :)

+1

'система ("MkDir -p $ реж 777")' –

+0

вы работаете с ОС Linux? – LOKESH

+0

благодарит за ваши комментарии. мой os - это Windows 2012 r2 (если это помогает) –

ответ

0

Я понимаю вашу проблему так, что вы просто не могу создать папку на вашем веб-сервере? Поэтому у вас в основном нет прав на эту папку или лучше сказано. Пользователь webserver не имеет.

Если вы используете веб-сервер типа apache2 в Linux, вы должны предоставить права пользователя www-data в родительской папке вашей резервной копии.

Линукс Команда: chown -R www-data:www-data <your Folder>

+0

Уважаемый lino, спасибо за ваш ответ. но проблема заключается не в разрешениях на запись. папка имеет полное разрешение (чтение/запись). как я упомянул второй код, создайте этот путь без проблем./Кстати, используя сервер windows 2012 –

+0

@SaeedMohammadi OH ok, вы пробовали создать только файл? или, может быть, это неправильный путь, потому что с того места, где вы открываете файл, может быть, что пути больше не работают правильно :) – Lino

+0

Уважаемый lino, спасибо за ваш комментарий./да, я сделал. я создаю этот путь сам, но он не помог .../ –