Как обновить phpMyFAQ на Linux

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

В двух словах, phpMyFAQ — портал для хранения базы знаний. Он запускается как веб-приложение на веб-сервере. Его может понадобиться обновить из соображений безопасности или ради новых функций.

Данная инструкция написана на базе официальной документации к phpMyFAQ. Примеры приводятся для операционной системы на ядре Linux.

Создание резервной копии

На случай неудачи, необходимо перестраховаться, создав копии файлов портала и базы данных.

Для копирования файлов вводим следующие команды:

mkdir -p /backup/phpmyfaq

cp -vR /var/www/phpmyfaq/* /backup/phpmyfaq/ 

* в данном примере мы сначала создаем каталог /backup/phpmyfaq — в него поместим файлы резервных копий; затем мы копируем содержимое каталога /var/www/phpmyfaq в созданную нами папку. Необходимо поменять /var/www/phpmyfaq на каталог, в котором размещен портал.

После делаем дамп базы. Для MariaDB/MySQL команда будет, примерно, следующая:

mysqldump -v -uroot -p phpmyfaq | gzip > /backup/phpmyfaq/phpmyfaq.sql.gz

* где uroot — подключение к СУБД от учетной записи root; phpmyfaq — имя базы данных.

Читайте также: Как сделать дамп базы MySQLРезервное копирование PostgreSQLРезервное копирование MS SQL Server (на случай использования базы данных на Windows).

Загрузка phpMyFAQ

Переходим на страницу загрузки официального сайта. Скачиваем последнюю стабильную версию (Free stable version) или копируем ссылку на архив (.tar.gz) и загружаем его на сервер Linux командой wget, например:

wget https://download.phpmyfaq.de/phpMyFAQ-2.9.13.tar.gz

* в данном примере используется ссылка на версию 2.9.13.

Распаковываем скачанный архив:

tar -zxvf phpMyFAQ-*.tar.gz

Обновление phpMyFAQ

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

mv /var/www/phpmyfaq /var/www/old.phpmyfaq

* где /var/www/phpmyfaq — путь к месту хранения файлов портала.

Затем перемещаем распакованный ранее каталог на место хранения портала:

mv phpmyfaq /var/www/phpmyfaq

* где phpmyfaq — распакованный каталог скачанного архива; /var/www/phpmyfaq — наш путь хранения портала.

Задаем владельца, от которого работает веб-сервер.

а) если используем CentOS / Red Hat / Fedora:

chown -R apache:apache /var/www/phpmyfaq

а) если используем Ubuntu / Debian:

chown -R www-data:www-data /var/www/phpmyfaq

Дальнейшие действия зависят от версии программы, которую мы хотим обновить. Разработчик не рекомендует обновлять phpMyFAQ с устаревших версий — в таком случае, лучше не обновлять, а производить установку с нуля.

Если обновляем с phpMyFAQ 2.6.x или 2.7.x

Возвращаем обратно в каталог портала следующие файлы и папки:

cp /var/www/old.phpmyfaq/config/database.php /var/www/phpmyfaq/config/

cp /var/www/old.phpmyfaq/config/ldap.php /var/www/phpmyfaq/config/

\cp -R /var/www/old.phpmyfaq/template/* /var/www/phpmyfaq/assets/template/

cp -R /var/www/old.phpmyfaq/attachments /var/www/phpmyfaq/

cp -R /var/www/old.phpmyfaq/data /var/www/phpmyfaq/

cp -R /var/www/old.phpmyfaq/images /var/www/phpmyfaq/

Если обновляем с phpMyFAQ 2.8.x

Возвращаем обратно в каталог портала следующие файлы и папки:

cp /var/www/old.phpmyfaq/config/database.php /var/www/phpmyfaq/config/

cp /var/www/old.phpmyfaq/config/ldap.php /var/www/phpmyfaq/config/

\cp -R /var/www/old.phpmyfaq/assets/template/* /var/www/phpmyfaq/assets/template/

cp -R /var/www/old.phpmyfaq/attachments /var/www/phpmyfaq/

cp -R /var/www/old.phpmyfaq/data /var/www/phpmyfaq/

cp -R /var/www/old.phpmyfaq/images /var/www/phpmyfaq/

Если обновляем с phpMyFAQ 2.9.x

Возвращаем обратно в каталог портала следующие файлы и папки:

\cp /var/www/old.phpmyfaq/config/* /var/www/phpmyfaq/config/

\cp -R /var/www/old.phpmyfaq/assets/template/* /var/www/phpmyfaq/assets/template/

cp -R /var/www/old.phpmyfaq/attachments /var/www/phpmyfaq/

cp -R /var/www/old.phpmyfaq/data /var/www/phpmyfaq/

cp -R /var/www/old.phpmyfaq/images /var/www/phpmyfaq/

Установка обновления

В браузере переходим на наш портал с добавлением к адресу /setup/update.php — http://<Путь до портала>/setup/update.php.

На первом шаге система проверит нашу текущую версию. Если с данной версии допускается обновление, можно будет продолжить (кнопка Go to step 2 of 3):

Кнопка перехода ко второму шагу обновления phpMyFAQ

Система создаст резервные копии конфигурационных файлов и можно переходить к шагу 3:

На втором этапе установки создаются копии конфигов - после можно перейти к третьему этапу

На последнем этапе обновиться база. Сервер обновлен.

Возможные ошибки

1. The connection to the database server could not be established

Данная ошибка появляется на этапе обновления портала в браузере.

Причина: в новых версиях PHP-приложений больше не используется тип mysql.

Решение: используем mysqli. Для этого открываем конфигурационный файл database.php:

vi /var/www/phpmyfaq/config/database.php

* где /var/www/phpmyfaq — путь хранения файлов портала.

Находим строку:

$DB['type'] = 'mysql';

... и меняем ее на:

$DB['type'] = 'mysqli';

2. Error: The backup file ../config/database.bak.php could not be written. Please correct this!

Появляется на втором этапе установки обновления.

Причина: неверные права на каталог /config — у пользователя, под которым работает веб-сервер, нет прав на запись.

Решение: задать правильные права или владельца для каталога, в котором хранится портал:

chown -R apache:apache /var/www/phpmyfaq

... или:

chown -R www-data:www-data /var/www/phpmyfaq

* зависит от дистрибутива Linux (deb или RPM).

Также можно просто задать максимальные права на каталог /config (не безопасно):

chmod -R 777 /var/www/phpmyfaq/config

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

Да            Нет