Автоматическое обновление
24.07.2011Голосование
| Тип | Ошибка |
| Состояние | Исправлено |
| Приоритет | Высокий |
| Версия | 4.70 |
| Система | * |
| Воспроизводимость | Нет |
| Автор | Victor |
| Исполнитель | Блоголётчик |
Здравствуйте!
В админке в безопасности:
Доступ к файловой системе: file
Когда нажимаю кнопку авто.обн. выдается ошибка:
Warning: file_put_contents(lib/index.htm) [function.file-put-contents]: failed to open stream: Permission denied in lib/remote.local.filer.class.php on line 25
Доступ к файловой системе: ftp
На странице обслуживание выдается запрос на
"Для обновления вам нужно ввести данные вашего ftp аккаунта. Логин и пароль не запоминаются"
Задаю имя сервера: ftp://имя.ru/
Когда нажимаю кнопку авто.обн. выдается сообщение:
"Не удалось залогинится на сервер. Пожалуйста, проверьте правильность введенных данных."
Какие мои действия, что неверно делаю или может что-то можно настроить.
Спасибо.
Комментарии (51) на запись “Автоматическое обновление”
Оставить комментарий
Появится обновление попробую.
Еще проблемка, при загрузке катринок и меню файлов ошибка:
Warning: rename(/.../.../.../.../...ru/files/tmp.4f408c2a316644c2418fdc60ab72aa3b.yaxt.jpg,/.../.../.../.../....ru/files/image/yaxt.jpg) [function.rename]: Permission denied in /.../.../.../.../....ru/lib/mediaparser.class.php on line 118
Warning: fopen(/.../.../.../.../....ru/storage/data/logs/exceptions.log) [function.fopen]: failed to open stream: Permission denied in /.../.../.../.../....ru/lib/filer.class.php on line 109
Caught exception:
Error rename file tmp.4f408c2a316644c2418fdc60ab72aa3b.yaxt.jpg to /.../.../.../.../....ru/files/image/yaxt.jpg
0 lib/mediaparser.class.php(118): tdata->error('Error rename fi...')
1 lib/mediaparser.class.php(131): tmediaparser->movetofolder('yaxt.jpg', 'tmp.4f408c2a316...', 'image', true)
2 lib/mediaparser.class.php(49): tmediaparser->addfile('yaxt.jpg', 'tmp.4f408c2a316...', '??????.jpg', '??????.jpg', '', true)
3 lib/admin.files.class.php(113): tmediaparser->uploadfile('??????.jpg', '/var/tmp/phpHzi...', '', '', '', true)
4 lib/menu.class.php(392): tadminfiles->processform()
5 lib/menu.admin.class.php(160): tmenu->doprocessform()
6 lib/kernel.php(1764): tadminmenu->request('13')
7 lib/kernel.php(1733): turlmap->GenerateHTML(Array)
8 lib/kernel.php(1648): turlmap->printcontent(Array)
9 lib/kernel.php(1637): turlmap->dorequest('/admin/files/im...')
10 index.php(91): turlmap->request('...ru', '/admin/files/im...')
11 {main}
Warning: file_put_contents(lib/index.htm) [function.file-put-contents]: failed to open stream: Permission denied in lib/remote.local.filer.class.php on line 25
может на файл lib/index.htm установить права 0666?
И как это исправить?
Блоголётчик пишет:
Указал домен правильно, не получается обновиться.
Выдает сообщение: Не удалось залогинится на сервер. Пожалуйста, проверьте правильность введенных данных.
Установлена Версия: 4.71 устанавливаю Версия: 4.73
Tак надо заполнять или нет? "Логин и пароль не запоминаются"?
Порт по умолчанию.
Надо подождать когда пройдет обновление или что?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=utf-8" http-equiv=Content-Type></HEAD>
<BODY></BODY></HTML>
Блоголётчик пишет:
Да, приношу свои извинения это я не верно прочитал.
Браузер сразу после нажатия отрабатывает и стоит в простое, нет ожидания загрузки страницы. Что-то не так.
При первом залогинивании скрипт пытается найти абслютный путь файловой системы с путями по ftp и для этого иногда приходится шерстить весь сервер, в простом случае, когда немного папок на сервере, это не занимает много времени. Проверить найден ли такой путь можно на странице обслуживание/запуск скриптом:
$backuper = tbackuper::instance();
echo $backuper->ftproot;
если пустая строка, то можно отредактировать это значение скриптом:
$backuper = tbackuper::instance();
$backuper->ftproot ='/home/login';
$backuper->save();
здесь в примере корневая папка ftp устанавливается как /home/login - она должна соответствовать абсолютному пути файловой системы после ftp залогинивания. По умолчанию скрипт сам пытается найти это соответствие.
В логах на сервере нет записи о попытках подключения по ftp.
Да еще, загрузка плагинов, аналогичная проблема.
Если в админке в безопасности: Доступ к файловой системе: file, то бэкап делается и скачиватся на комп.
Могу еще посоветовать в файлах
lib/remote.ftp.class.php
lib/remote.ftpsocket.class.php
удалить все символы @ - есть шанс, что где то вылезит ошибка
Ошибок, кроме предупреждений о заголовках нет. В чем может быть дело?
если делать бэкап то появляются ошибки:
Strict Standards: Redefining already defined constructor for class ftp_base in /.....ru/lib/include/class-ftp.php on line 125
Strict Standards: Redefining already defined constructor for class ftp in /.....ru/lib/include/class-ftp-sockets.php on line 29
Fatal error: Call to undefined method tftpsocketfiler::perm2mode() in /.....ru/lib/remote.ftpsocket.class.php on line 161
Примерно понятно - использовался модуль для работы с ftp через сокеты, а не стандартной ббиблиотекой php. Рекомендую, если есть возможность, установить для php расширение ftp - хотя в документации по php пишут, что это расширение доступно по уомлчанию.
Движок если не находит ббиблиотеки ftp подключает дополнительную библиотеку для ftp ччерез сокеты, ну а эта библиотека по всей видимости содержит ошибки или что то такое
Еще один вопрос, хотя он и не в тему, а надо прикручивать антиспам (робот человек) в разделе контакты к форме contactform и если надо, то как это сделать?
У меня возникла идея, надо проверить, выполни, пожалуйста, следующий скрипт в обслуживание/запуск:
var_dump(function_exists('ftp_connect'));
Убрал из файла символы @, при выполнении обновления получил ошибку
Fatal error: Call to undefined function ftp_connect() in /..../lib/remote.ftp.class.php on line 38
<br />
<b>Warning</b>: Missing argument 2 for tadminservice::sendfile(), called in /.../lib/admin.service.class.php on line 224 and defined in <b>/.../lib/admin.service.class.php</b> on line <b>286</b><br />
<br />
<b>Notice</b>: Undefined variable: filename in <b>/.../lib/admin.service.class.php</b> on line <b>288</b><br />
И еще вопрос: разрешена ли на хостинге функция exec? (предположу, что нет, так отсутствует даже ftp), проверить
var_dump(function_exists('exec'));
выполнить скрипт в обслуживание/запуск. Если да, то можно использовать функции шела для обновлений и бекапа
Что и как можно делать?
Спасибо.