unlink не может удалить файл

Я разочарован удалением файла в ubuntu, используя PHP unlink ().

Я создал очень простую симуляцию, как показано ниже:

  1. создайте папку с именем «files» ниже / var / www с разрешением 766.
  2. загрузите файл, скажем, «image.png» в этой папке и установите разрешение на 666
  3. создать файл php с именем delete.php, установить разрешение на 644 и загрузить в каталог / var / www
  4. Вызовите файл в браузере (я использую localhost)

«Image.png» по-прежнему существует в каталоге «файлы»

Вот сценарий php для файла delete.php:

$filename = 'image.png'; $file = $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'files' . DIRECTORY_SEPARATOR . $filename; unlink($file); 

Я также попробовал следующий скрипт:

 $filename = 'image.png'; $dir = $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'files'; chdir($dir); unlink($filename); 

Но все равно не удается удалить файл.

Папка / владелец каталога может отличаться от пользователя, используемого для запуска php.

Вы должны создать папку с назначенным пользователем php. Если вы не можете этого сделать, попросите своего интернет-провайдера сделать это. Вот как я решил подобную проблему.

Один пользователь не может удалять файлы другого пользователя в системе unix. Если вы установите его на 777, вы можете удалить его …

Unlink выдает предупреждение об ошибке. Проверьте, видимо ли E_WARNING для вас, чтобы узнать, что происходит.

Обычно это сводится к правам пользователей. Имейте в виду, если ваш сценарий выполняется браузером, обычно пользователь с именем wwwrun или wwwdata (или что-то подобное) выполняет его на вашем сервере.

Проверьте, есть ли у этого пользователя разрешения для удаления, а затем повторите попытку.