Установка и настройка phplist на CentOS

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

PHPlist — это веб-приложение, разработанное на PHP для управления почтовыми рассылками. Оно устанавливается на веб-сервер (как правило, NGINX или Apache). В данной статье рассмотрим пример развертывания phplist на nginx под управлением операционной системы Linux CentOS 7.

Подготовка сервера

1. Отключаем Selinux

Для этого вводим две команды:

setenforce 0

sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config

* первая команда отключает систему безопасности разово для текущей загрузки, вторая — навсегда. Подробнее про отключение Selinux или его правильную настройку.

2. Настраиваем время

Задаем временную зону:

\cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

* в данном примере московское время.

Устанавливаем утилиту для синхронизации времени:

yum install ntpdate

Настраиваем cron для автоматического обновления времени:

crontab -e

0 0 * * * /sbin/ntpdate ru.pool.ntp.org

Разово обновляем время:

ntpdate ru.pool.ntp.org

Установка и настройка веб-сервера

NGINX

Если в системе не установлен NGINX, выполняем команду:

yum install epel-release

yum install nginx

Открываем порт в брандмауэре:

firewall-cmd --permanent --add-port=80/tcp

firewall-cmd --reload

Разрешаем автостарт NGINX и запускаем его:

systemctl enable nginx

systemctl start nginx

Открываем браузер на любом компьютере в сети и вводим http://<IP-адрес сервера>. Мы должны увидеть, примерно, следующее:

Проверка работы NGINX — стартовая страница

PHP и PHP-FPM

Устанавливаем необходимые компоненты:

yum install php php-fpm php-mysql php-mysqli

Разрешаем автозапуск php-fpm и запускаем его:

systemctl enable php-fpm

systemctl start php-fpm

Установка сервера баз данных

Устанавливаем СУБД MariaDB:

yum install mariadb mariadb-server

Разрешаем автозапуск и стартуем службу:

systemctl enable mariadb

systemctl start mariadb

Задаем пароль для root-пользователя базы данных:

mysqladmin -u root password

Установка phplist

1. Скачиваем и распаковываем портал

Переходим на страницу sourceforge.net — скачиваем последнюю версию phplist или копируем ссылку для скачивания и вводим команду в CentOS:

wget https://downloads.sourceforge.net/project/phplist/phplist/3.3.3/phplist-3.3.3.zip

* где https://downloads.sourceforge.net/project/phplist/phplist/3.3.3/phplist-3.3.3.zip — скопированная ссылка на phplist версии 3.3.3.
* если мы скачали архив на компьютере с Windows, перенести его на Linux можно с помощью программы WinSCP.

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

unzip phplist-*

* если система выдаст ошибку, устанавливаем unzip — yum install unzip.

Переходим в распакованный каталог:

cd phplist-*

Создаем каталог для портала:

mkdir /var/www/phplist

и переносим в него файлы phplist:

mv public_html/lists/* public_html/lists/.htaccess /var/www/phplist

Меняем владельца для папки:

chown -R nginx:nginx /var/www/phplist

2. Создаем базу данных

Подключаемся к СУБД:

mysql -uroot -p

* нужно будет ввести пароль, который мы устанавливали на этапе установки MariaDB.

Создаем базу:

> CREATE DATABASE phplistdb CHARACTER SET utf8 COLLATE utf8_general_ci;

* где phplistdb — имя базы.

Добавляем пользователя:

> GRANT ALL PRIVILEGES on phplistdb.* to 'phplist'@'localhost' IDENTIFIED BY 'phplist123';

* где phplist — имя пользователя; phplist123 — пароль.

Выходим: 

> \q

3. Настраиваем phplist

Открываем конфигурационный файл phplist и редактируем следующее:

vi /var/www/phplist/config/config.php

$database_host = "localhost";
$database_name = "phplistdb";
$database_user = "phplist";
$database_password = 'phplist123';

define ("TEST",0);

* где опции database_host — имя сервера баз данных; database_name — имя базы данных; database_user — пользователь для подключения к базе данных; database_password — пароль для подключения к базе; define ("TEST",0) — отключение тестового режима (на первое время, можно оставить без изменения).

Добавляем следующие строки:

$language_module = "russian.inc";
$default_system_language = "ru";
$pageroot = '/';

4. Настраиваем NGINX

Создаем новый виртуальный домен:

vi /etc/nginx/conf.d/phplist.conf

server {
    listen       80;
    server_name  phplist.dmosk.local;
    root /var/www/phplist;
    client_max_body_size 32m;

    location / {
        root   /var/www/phplist;
        index  index.php;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

phplist.dmosk.local — виртуальный домен нашего портала управления рассылками; /var/www/phplist — путь расположения файлов портала на сервере; /var/run/php-fpm/php-fpm.sock — путь до нашего сокетного файла php-fpm;

Перезапускаем nginx:

systemctl restart network

5. Завершение установки phplist

Открываем в браузере страницу: http://IP-сервера/admin/

На открывшейся странице кликаем по Initialise Database:

Инициализируем базу данных в phplist

Заполняем форму:

Заполняем первичные данные для окончания установки phplist

Дожидаемся окончания установки.

Снова переходим по адресу http://IP-сервера/admin/ и приступаем к работе с рассылками.

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

Да            Нет