Как обновить phplist

Обновлено Обновлено: Опубликовано Опубликовано:

Разберем процедуру обновления phplist (менеджера рассылки писем) на операционной системе Linux.

Резервная копия

Это самый важный шаг при обновлении 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. Копируем ссылку на последнюю версию программы:

Копируем ссылку на последнюю версию 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.

# Linux # Почта
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет