Как обновить phplist
Разберем процедуру обновления 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.