Установка Textpattern на CentOS 8

Textpattern — лёгкая и настраиваемая CMS на PHP. В этом пошаговом руководстве показано, как установить Textpattern на чистую CentOS 8: обновление системы, установка Apache/PHP/MariaDB, настройка SELinux, получение SSL через certbot и финальная веб-конфигурация CMS. Включены рекомендации по безопасности, отладке и контрольные списки ролей.
Оглавление
- Требования
- Шаг 1: Установка необходимого ПО
- Шаг 2: Установка Textpattern
- Шаг 3: Настройка базы данных
- Шаг 4: Конфигурация Apache и SSL
- Шаг 5: Веб‑настройка Textpattern
- Рекомендации по безопасности и SELinux
- Отладка и частые ошибки
- Контрольные списки по ролям
- Когда этот подход не подходит
- Краткое резюме
Требования
- Чистая система CentOS 8 с доступом к root или пользователю с sudo.
- Зарегистрированное доменное имя, указывающее на сервер.
Если вы вошли как sudo‑пользователь, переключитесь на root для удобства:
sudo su -Установите переменную окружения $VISUAL для удобного редактирования файлов (пример — nano):
echo "export VISUAL=nano" >> ~/.bash_profile
. ~/.bash_profileПримечание: переменная $VISUAL используется в шагах, где мы открываем системные конфигурационные файлы.
Шаг 1: Установка необходимого ПО
- Обновите систему:
dnf update -y- Установите пакеты: wget, tar, Apache, MariaDB, PHP и нужные расширения, а также утилиты для управления SELinux:
dnf install -y wget tar httpd mariadb-server php php-xml php-mysqli php-json php-mbstring php-zip php-zlib policycoreutils-python-utils- Включите и запустите службы Apache и MariaDB:
systemctl enable --now httpd.service mariadb.service- certbot не входит в стандартные репозитории CentOS 8, поэтому используем certbot-auto:
wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-autoУстановите certbot (появится приглашение установить зависимости через dnf; введите “y”):
certbot-auto --install-onlyПерезапустите Apache:
systemctl restart httpd.serviceВажно: certbot-auto иногда устаревает — если команда не работает, используйте официальный репозиторий EPEL или snapd (альтернативный подход описан в разделе «Альтернативы»).
Шаг 2: Установка Textpattern
- Скопируйте ссылку на последний релиз (.tar.gz) с Releases на GitHub и загрузите её на сервер, например:
wget https://github.com/textpattern/textpattern/releases/download/4.7.3/textpattern-4.7.3.tar.gz- Распакуйте архив и переместите содержимое в корневую директорию веб‑сервера:
tar -xzf textpattern*.tar.gz
rm -f textpattern*.tar.gz
mv textpattern* /var/www/html/textpattern- Дайте права владельца Apache для корректной работы (запись в некоторые директории):
chown -R apache:apache /var/www/html/textpattern- Настройте контексты SELinux для директорий, в которых нужна запись:
semanage fcontext -a -t httpd_sys_content_t "/var/www/html/textpattern(/.*)?"
semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/textpattern/themes(/.*)?"
semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/textpattern/images(/.*)?"
semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/textpattern/files(/.*)?"
restorecon -Rv /var/www/htmlСовет: если semanage отсутствует, установите пакет policycoreutils-python-utils (мы делали это ранее).
Шаг 3: Настройка базы данных
- Запустите скрипт простого усиления безопасности MariaDB:
mysql_secure_installationСледуйте приглашениям. Для root задайте сложный пароль и примените рекомендуемые настройки (удаление анонимных пользователей, запрет удалённого входа root, удаление тестовой базы и перезагрузка привилегий).
- Войдите в консоль MariaDB и создайте базу данных и пользователя для Textpattern. Замените textpattern_user_password на надёжный пароль:
mysql -u root -p
MariaDB [(none)]> CREATE DATABASE textpattern_db;
MariaDB [(none)]> CREATE USER textpattern_user IDENTIFIED BY 'textpattern_user_password';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON textpattern_db.* TO textpattern_user;
MariaDB [(none)]> \qКраткое определение: привилегии GRANT дают пользователю права на работу с базой (создание/чтение/запись таблиц), необходимых для CMS.
Шаг 4: Конфигурация Apache и SSL
- Откройте брандмауэр для HTTP/HTTPS трафика:
firewall-cmd --add-service http --add-service https --permanent
firewall-cmd --reload- Создайте виртуальный хост для сайта. Откройте файл конфигурации:
$VISUAL /etc/httpd/conf.d/textpattern.confВставьте (замените your_domain на ваш домен):
DocumentRoot "/var/www/html/textpattern"
ServerName your_domain
AllowOverride All
- Перезагрузите Apache, чтобы применить конфигурацию:
systemctl reload httpd.service- Получите SSL‑сертификат и настройте перенаправление HTTPS командой certbot (замените your_domain и email):
certbot-auto --apache -d "your_domain" -m "[email protected]" --redirectЭта команда:
- Получит сертификат LetsEncrypt для вашего домена.
- Создаст конфигурацию Apache с SSL (файл textpattern-le-ssl.conf).
- Обновит конфигурацию, чтобы перенаправлять HTTP на HTTPS.
Важно: проверяйте, что DNS для your_domain уже указывает на IP сервера перед запуском certbot.
Шаг 5: Веб‑настройка Textpattern
- Откройте в браузере https://your_domain/textpattern/setup/ и выберите язык.
- Введите данные базы данных (MySQL user name, password, server — обычно localhost, database, table prefix — можно оставить пустым).
- Инсталлятор проверит данные и предложит сгенерированный конфигурационный фрагмент. Создайте файл конфигурации и вставьте данные:
$VISUAL /var/www/html/textpattern/textpattern/config.phpВставьте сгенерированный код, сохраните файл и вернитесь в инсталлятор.
- На следующем шаге задайте учётную запись администратора и основные настройки сайта.
- После успешной настройки удалите каталог setup:
rm -rf /var/www/html/textpattern/textpattern/setupСайт готов к использованию.
Рекомендации по безопасности
- Используйте сильные пароли для пользовательских и административных учётных записей.
- Регулярно обновляйте систему и пакеты (dnf update).
- Делайте резервные копии /var/www/html/textpattern и дампы базы данных (mysqldump).
- Ограничьте доступ к SSH (ключи вместо пароля, изменение порта, fail2ban).
- Проверяйте права на файлы: минимальные права для веб‑контента и только там, где нужна запись.
- Настройте автоматическое продление сертификатов LetsEncrypt (certbot-auto обычно добавляет крон‑задачу; проверьте: systemctl list-timers или crontab).
Краткая подсказка по резервному копированию:
- Файлы: rsync или tar на удалённый бэкап.
- База: mysqldump textpattern_db > backup.sql
Отладка и частые ошибки
- Ошибка 500 после установки:
- Проверьте логи Apache: /var/log/httpd/error_log
- Проверьте права и контексты SELinux: restorecon -Rv /var/www/html
- Проблемы с подключением к базе:
- Убедитесь, что пользователь и пароль верны и привилегии назначены.
- В случае локальной установки используйте host = localhost.
- certbot не может проверить домен:
- Проверьте DNS (A/AAAA записи).
- Убедитесь, что порт 80 открыт и не блокируется прокси.
- SELinux блокирует запись:
- Для диагностики включите audit2why и audit2allow или временно переключите SELinux в permissive для теста: setenforce 0 (не рекомендуется в проде).
Контрольные списки по ролям
Системный администратор:
- Установить системные обновления.
- Настроить брандмауэр и SSH.
- Создать резервные копии и скрипты их тестирования.
DevOps/Разработчик:
- Настроить CI/CD для деплоя тем и плагинов.
- Проверить права доступа и автоматическое обновление сертификатов.
- Настроить мониторинг доступности веб‑сайта и метрики логов.
Контент‑менеджер:
- Настроить учётную запись администратора в CMS.
- Проверить работу тем и загрузку изображений.
- Ознакомиться с политикой резервного копирования и процедурой восстановления.
Когда этот подход не подходит
- Если нужна многосерверная архитектура с балансировкой нагрузки — этот инструкция предназначена для одиночного сервера.
- Для высоконагруженных сайтов стоит рассмотреть выделение отдельной базы данных, CDN и кеширование (Varnish, Redis).
- На системах с ограниченными репозиториями certbot-auto может отсутствовать — лучше использовать snapd или официальные пакеты.
Альтернативные варианты
- SSL через snapd: установить certbot через snap (если certbot-auto устарел).
- Использовать nginx вместо Apache — в этом случае конфигурация виртуального хоста и SELinux меток будет отличаться.
- Docker-контейнеры: размещение Textpattern в контейнерах для упрощения миграций и масштабирования.
Краткое резюме
Установка Textpattern на CentOS 8 включает обновление системы, установку Apache/PHP/MariaDB, настройку SELinux, получение SSL через certbot и завершение конфигурации через веб‑инсталлятор. Следуйте контрольным спискам по ролям, делайте регулярные бэкапы и проверяйте логи при возникновении ошибок.
Важно
- Всегда храните пароли вне публичных репозиториев и используйте безопасные хранилища секретов.
Полезные ссылки
- Документация certbot и управление сертификатами.
Конец руководства.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента