Установка системы e-mail рассылки phpList

PHPList — система управления email рассылками с открытым исходным кодом написанная на языке PHP, что очевидно из названия

Разработчики рекомендуют отключить SELinux

# vim /etc/sysconfig/selinux

И меняем значение на disabled

SELINUX=enforced -> SELINUX=disabled

Устанавливаем необходимый компонент. Подразумевается, что базовая настройка WEB-сервера уже выполнена

# yum install unzip

Скачиваем сам phplist и распаковываем

# wget http://prdownloads.sourceforge.net/phplist/phplist-3.2.4.zip
--2016-05-14 04:00:00--  http://prdownloads.sourceforge.net/phplist/phplist-3.2.4.zip
Resolving prdownloads.sourceforge.net (prdownloads.sourceforge.net)... 216.34.181.59
Connecting to prdownloads.sourceforge.net (prdownloads.sourceforge.net)|216.34.181.59|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://downloads.sourceforge.net/project/phplist/phplist/3.2.4/phplist-3.2.4.zip [following]
--2016-05-14 04:00:00--  http://downloads.sourceforge.net/project/phplist/phplist/3.2.4/phplist-3.2.4.zip
Resolving downloads.sourceforge.net (downloads.sourceforge.net)... 216.34.181.59
Connecting to downloads.sourceforge.net (downloads.sourceforge.net)|216.34.181.59|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://kent.dl.sourceforge.net/project/phplist/phplist/3.2.4/phplist-3.2.4.zip [following]
--2016-05-14 04:00:00--  http://kent.dl.sourceforge.net/project/phplist/phplist/3.2.4/phplist-3.2.4.zip
Resolving kent.dl.sourceforge.net (kent.dl.sourceforge.net)... 212.219.56.185
Connecting to kent.dl.sourceforge.net (kent.dl.sourceforge.net)|212.219.56.185|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11830526 (11M) [application/octet-stream]
Saving to: 'phplist-3.2.4.zip'

100%[====================================================>] 11,830,526  34.1MB/s   in 0.3s

2016-05-14 04:00:01 (34.1 MB/s) - 'phplist-3.2.4.zip' saved [11830526/11830526]

# unzip phplist-3.2.4.zip
# mkdir /usr/share/phplist
# mv phplist-3.2.4/public_html/lists/ /usr/share/phplist/
# ls /usr/share/phplist/
lists

Всё ок
Создаём базу данных

# mysql -uroot -p
MariaDB [(none)]> CREATE DATABASE phplist CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on phplist.* to phplist@localhost identified by 'phplistpassw0rd';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> \q
Bye

Немного правим конфиг

# vim /usr/share/phplist/lists/config/config.php

1) Настройка параметров соединения с БД;
2) По умолчанию phplist работает в тестовом режиме, переводим в «боевой». Разница только в том, что в тестовом режиме письма реально не отправляются;
3) Устанавливаем русскай язык по умолчанию;
4) Этот параметр важен, если вы как и я устанавливаете веб интерфейс на поддомен;

/* 1 */
$database_host = "localhost";
$database_name = "phplist";
$database_user = "phplist";
$database_password = 'phplistpassw0rd';

/* 2 */
# if test is true (not 0) it will not actually send ANY messages, but display what it would have sent
# this is here, to make sure you edited the config file and mails are not sent "accidentally"
# on unmanaged systems

define ("TEST",0);

/* 3 */
$default_system_language = "ru";

/* 4 */
$pageroot = '/';

Далее добавляем конфигурацию в nginx

# vim /etc/nginx/conf.d/phplist.conf

server {
    listen       80;
    server_name  www.phplist.tradenark.com.ua phplist.tradenark.com.ua;
    root /usr/share/phplist/lists;
    client_max_body_size 32m;

    location / {
        root   /usr/share/phplist/lists;
        index  index.php index.html;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        #root html;
        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;
    }
}

Проверяем и применяем

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
# nginx -s reload

Установка
Открываем в браузере URL указанный в NGinx и добавляем /admin/
У меня ссылка имеет вид http://phplist.tradenark.com.ua/admin/
Система сообщает, что база данных не инициализирована и предлагает сделать это
1
Соглашаемся и жмакаем на ссылку. На следующем шаге нам предлагают ввести основную информацию: пользователь, компания, e-mail и пароль. Обратите внимание, что этот пароль будет использоваться в дальнейшем для автризации, но логин будет admin
2
После успешного наполнения БД продолжаем усановку
3
Следующим шагом будет проверка установок. Она включает в себя несколько шагов. Так как инизиализацию БД мы проделали, то переходим к настройкам самой системы
4
После этого попадаем в окно авторизации. Напомню, что пароль тот, который мы установили на шаге инициализации базы данных
5
Ну и попадаем в интерфейс управления, в котором очень много настроек. Даже если ничего не трогать, то рассылка всё равно будет работать. Лично я первым делом перевёл все уведомления и шаблоны на русский язык
6

Настроек очень много. Конфигурируется сама система, подписи, персональные URL для отписки/личного кабинета, кампании, списки рассылок и многое другое. Так как это продукт для рассылки электронной почты, то рекомендуется настроить SPF и DKIM записи для увеличения вероятности миновать СПАМ

Установка системы e-mail рассылки phpList: 2 комментария

  1. Gadget

    Душа продолжения просит, Глеб.

    Спасибо за статью. Не подскажете, у меня отчего-то символы бьются некоторые при отправке:

    «дминистра� �ия оставляет за собой прав� � и»

    Есть мысли, с чем это может быть связано?

    1. Воронов Глеб Автор записи

      Все эти данные хранятся в MySQL. Вы создавали базу по инструкции через

      CREATE DATABASE phplist CHARACTER SET utf8 COLLATE utf8_general_ci;

      ?
      Так же необходимо проверить кодировку самой таблицы. Сейчас не скажу в какой именно хранятся эти шаблоны

Добавить комментарий