Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2016, 13:15   #1
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию Не могу понять почему не работает unlink()

Сделал скрипт и туда занес удаление файла по абсолютному пути сервера

Код:
unlink("/home/admin/web/****/full_history_img_nick_test.jpg");
Запускаю скрипт с браузера, файл удаляется нормально.

Далее у меня есть програмка на delphi которая периодически запускает другой скрипт на сервере. ( скрипт от программы принимает довольно много данных так что отдельно от программы я с эмитировать его работу и посмотреть есть ли ошибки не могу) К тому же, если выложу весь скрипт, могут найтись люди , которые воспользуются багами, чтобы сломать мне работу(
В этот скрипт я занес точно такую же команду удаления файла и не удаляется файл. Скрипты находятся в одной папке, хотя это и неважно, так как путь абсолютный.
Сама работа скрипта остается правильной, вот за исключением того что файл не удаляется.

Я понимаю что не выкладываю никакого кода, но он только запутает вас.

Замучился окончательно

В чем могут быть проблемы?

Последний раз редактировалось Illusiony; 03.04.2016 в 13:35.
Illusiony вне форума Ответить с цитированием
Старый 03.04.2016, 13:41   #2
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию

Может легче соединится по FTP и удалить файл.
Самый перспективный framework Yii (c)
TranceSmile вне форума Ответить с цитированием
Старый 03.04.2016, 14:02   #3
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от TranceSmile Посмотреть сообщение
Может легче соединится по FTP и удалить файл.
Мне нужно чтобы это делал скрипт php, который вызывается программой. Это не одноразовая операция, она будет происходить довольно часто. Т.е. Этот файл будет создаваться, модифицироваться, а потом удаляться.
Illusiony вне форума Ответить с цитированием
Старый 03.04.2016, 15:18   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Нужно посмотреть логи web-сервера на предмет ошибок при попытках удаления файла.
Если файл по какой-либо причине не удаляется при вызове unlink – в логах должна быть ошибка, описывающая суть проблемы.
Возможно, проблемы с правами доступа.
Andkorol вне форума Ответить с цитированием
Старый 03.04.2016, 19:29   #5
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Нужно посмотреть логи web-сервера на предмет ошибок при попытках удаления файла.
Если файл по какой-либо причине не удаляется при вызове unlink – в логах должна быть ошибка, описывающая суть проблемы.
Возможно, проблемы с правами доступа.
А не подскажите в каких это логах искать?
Просматриваю:
syslog
system.log
dovecot.log
nginx-error.log
php-fpm.log
и другие не могу найти покачто где эти ошибки отображаются(

Нашел такой:****.ru.error.log
Там есть такое:
[Sun Apr 03 12:10:52.871989 2016] [:error] [pid 5473] [client 178.62.252.98:52606] PHP Notice: Undefined index: Npick in /home/***/delphi_next_xod_history.php on line 20
Но эта не та ошибка.
Эта связано с передаваемой переменной, а я пытаюсь удалить файл. Притом загрузить файл внести изменения и перезаписать получается, а удалить нет.
Права доступа подправил на разрешение записи до rw-rw-rw- (0666)
Пока что все без изменений.

Последний раз редактировалось Illusiony; 03.04.2016 в 19:52.
Illusiony вне форума Ответить с цитированием
Старый 03.04.2016, 20:27   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Смотреть нужно error.log, относящийся к виртуальному хосту, в котором работает скрипт.
Хотя, в случае вызова скрипта через delphi я не уверен, что это именно так – возможно, запись идет в некий общий файл ошибок
(в php.ini должен быть указан путь к этому файлу: типа «error_log = /var/log/php-scripts.log», или можно в консоли поиск выполнить: «php --info | grep error»).
Можно попробовать заюзать error_log для фиксации конкретной ошибки в указанный файл.

А какие права установлены на каталог, в котором находится сам удаляемый файл?
Цитата:
Для того, чтобы удалить из каталога какой-либо файл, имя которого известно, на этот каталог должны быть даны права на запись и на исполнение.
Цитата:
Для каталогов, флаги r w x имеют несколько отличный смысл: r - позволяет читать только имена файлов в каталоге; x - позволяет иметь доступ к самим файлам и их атрибутам (но не именам); w имеет смысл только в сочетании с x, и позволяет (в дополнение к x) манипулировать с файлами в каталоге (создавать, удалять и переименовывать). w без x - не имеет никакого эффекта.

Последний раз редактировалось Andkorol; 03.04.2016 в 20:31.
Andkorol вне форума Ответить с цитированием
Старый 03.04.2016, 22:42   #7
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

в зависимости от настроек сервера на каталог 755, или 777 (не очень правильно настроен сервер_.. для файлов 644 обычно хватает. Кроме того есть понятие - владелец фала - там еще могут быть проблемы - когда через скрипт - там одно, ели через консоль - там другое
ADSoft вне форума Ответить с цитированием
Старый 06.04.2016, 19:38   #8
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Вроде бы сейчас работает. Но честно сказать не заметил на каком этапе заработало(
Возможно владельцем файла был root а скрипт php его удаляющий( который запускается по команде с внешней delphi программы по сети) имел права admin.
Права доступа на папку я поставил 777 на сам удаляемый файл rw-r--r-- (0664)
Хотя нужно еще поэкспериментировать и понизить права на папку. При таких правах кто нибудь может поудалять мои файлы( или модифицировать)?

Всем большое спасибо.

Последний раз редактировалось Illusiony; 06.04.2016 в 20:13.
Illusiony вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу понять почему не работает мой пейджер Crabman PHP 16 06.08.2012 18:05
Не могу понять почему не работает функция SeRhy JavaScript, Ajax 0 09.02.2012 17:41
Не могу понять почему не работает микрофон Stilet Компьютерное железо 8 08.10.2010 16:54
Почему не работает...хм....понять не могу! Артур Иваныч Microsoft Office Excel 9 01.12.2009 17:58