Разберем процедуру обновления phplist (менеджера рассылки писем) на операционной системе Linux.
Резервируем старую версию
Загружаем и устанавливаем phplist
Загружаем
Заменяем файлы
Обновляем базу данных
Восстановление из резервной копии
Резервная копия
Это самый важный шаг при обновлении phplist. Во-первых, после удачной установки новой версии, поверх существующей, необходимо будет вернуть конфигурационный файл с настройками. Во-вторых, если что-то пойдет не так, у нас должна быть копия, чтобы вернуть старый рабочий phplist.
Создадим каталог — в него скопируем копию текущей версии phplist:
mkdir /backup
Делаем резервную копию базы данных.
mysqldump -v -uroot -p phplist | gzip > /backup/phplist.sql.gz
* система запросит пароль — вводим данные для учетной записи root mysql.
** данной командой мы создадим резервную копию базы данных phplist от пользователя root и сохраним ее в файл phplist.sql.gz каталога /backup .
Если в вашей системе база данных называется иначе, необходимо сделать резервное копирование для нее. А если имя неизвестно, то можно выполнить команду:
mysqldump -v -uroot -p —all-databases | gzip > /backup/all_databases.sql.gz
… для резервного копирования всех баз на сервере.
После копируем содержимое каталога с phplist:
cp -R /var/www/phplist /backup/
* в данном примере подразумевается, что наш портал phplist находится по пути /var/www/phplist .
Загрузка и установка новой версии
Переходим к обновлению. Процесс нужно выполнить в несколько этапов.
1. Загрузка phplist
Переходим на страницу загрузки phplist . Копируем ссылку на последнюю версию программы:
С помощью скопированной ссылки скачиваем на сервер архив:
wget -O phplist.tgz https://sourceforge.net/projects/phplist/files/phplist/3.6.6/phplist-3.6.6.tgz/download
* в данном примере вы загрузим phplist версии 3.6.6 .
2. Замена старой версии новой
Скачанный архив распакуем командой:
tar -xvzf phplist.tgz
Перейдем в распакованный каталог:
cd phplist-*
Удалим содержимое каталога старой версии:
rm -rf /var/www/phplist/* /var/www/phplist/.htaccess
* в моем случае, это /var/www/phplist , поэтому команда будет такой.
Перенесем файлы phplist в каталог, где сейчас находится старая его версия:
mv public_html/lists/* public_html/lists/.htaccess /var/www/phplist
* мы переносим все содержимое каталога public_html/lists в /var/www/phplist .
Возвращаем из резервной копии конфигурационный файл:
cp /backup/phplist/config/* /var/www/phplist/config/
Вернем загруженные файлы изображений:
cp -R /backup/phplist/images/* /var/www/phplist/images/
Задаем владельца на файлы:
chown -R nginx:nginx /var/www/phplist
3. Обновляем базу данных
Заходим на наш портал phplist под администратором — мы увидим ошибку, что база данных устарела:
Кликаем по ссылке Обновление — на следующей странице нажимаем по кнопке Обновление .
Ждем окончания процесса. Мы должны увидеть сообщение «Успешно».
Обновление завершено.
Откат
Если обновление вызвало проблемы, восстанавливаем предыдущую версию из резервной копии.
1. Восстановление базы
Подключаемся к sql-оболочке:
> mysql -uroot -p
Удаляем базу:
> DROP DATABASE phplist;
* в данном примере имя базы phplist . Если у вас другое имя, необходимо прописать соответствующее. Список баз можно посмотреть командой show databases;
Создаем по новой базу данных:
> CREATE DATABASE phplist CHARACTER SET utf8 COLLATE utf8_general_ci;
* будет создана база phplist в кодировке utf8.
Выходим из sql:
> q
Распаковываем архив с дампом базы:
gunzip /backup/phplist.sql.gz
Восстанавливаем базу:
mysql -uroot -p phplist < /backup/phplist.sql
2. Восстановление портала
Удаляем каталог с порталом:
rm -r /var/www/phplist
* предполагается, что портал находится по пути /var/www/phplist .
Копируем портал из резервной копии по старому пути:
cp -r /backup/phplist /var/www/phplist
Задаем владельца для каталога с порталом:
chown -R nginx:nginx /var/www/phplist
* в нашем примере пользователем, от которого работает веб-сервер, является nginx .