Основная папка
Разархивируйте mfc_portal.zip
на жесткий диск в папку, созданную при установке HTTP сервера. В данном руководстве подразумевается, что это будет сделано в папку mfc_portal
.
Или скачатей файл с последним обновлением http://azovkomeks.ru/update/mfc_portal/update.zip и используйте его вместо дистрибутива.
Для работы портала необходимо установить права не выше 744, т.к. при обновлении будут заменяться файлы на стороне сервера
Настройка подключения к БД
Для работы портала необходимо настроить несколько конфигурационных файлов:
/config/db.php
- файл для настройки подключения к персональной базе портала
/config/dbMfc.php
- файл для настройки подключения к основной базе МФЦ
/config/dbReplMfc.php
- файл для настройки подключения к резервной базе для формирования отчетности
/config/dbJoomla.php
- файл настройки подключения к Joomla для сбора новостей по МСП
/config/mail.php
- файл для настройки отправления электронной почты с внешнего портала
/config/config.php
- файл для настройки дополнительных параметров внешнего портала
Формат файла для подключения к БД
return [
'class' => 'yii\db\Connection',
'dsn' => 'pgsql:host=192.168.10.10;dbname=database',
'username' => 'postgres',
'password' => '****',
'charset' => 'utf8',
'enableSchemaCache' => true,
];
Для отправки писем с портала необходимо настроить SMTP соединение в файле /config/mail.php
return [
'class' => 'yii\swiftmailer\Mailer',
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.yandex.ru',
'username' => 'test@azovkomeks.ru',
'password' => '****',
'port' => '465',
'encryption' => 'ssl',
],
];
Для настройки единой авторизации с порталом mfc61.ru необходимо создать файл с ключем /config/jwt.key
и сохранить в него открытый ключ для авторизации.
Для подключения к Joomla необходимо указать настройки подключения и указать ID категории в которой находятся новости МСП, таблицу *_content, где * - префикс таблиц. url - адрес сайта Joomla для корректного отображения картинок из новостей.
return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=192.168.1.5;dbname=joomla',
'username' => 'root',
'password' => '****',
'charset' => 'utf8',
'attributes' => [
'cat_id' => 19,
'table' => '****_content',
'url' => 'http://mfc/site/'
]
];
Файл /config/config.php
позволяет настроить дополнительные параметры внешнего портала
<?php
return [
'onlyApi' => false,/*Установите в True если необходимо заблокировать внешний портал и оставить только доступ для администратора, API и отчетов*/
'baseUrl' => 'http://mfc', // Адрес портала Yii2 в интернете
'fileStorage' => [
'link' => 'http://storage' //http к файловому хранилищу
]
];
Настройка хоста
откройте файл httpd-vhosts.conf
для windows
или /etc/apache2/sites-available/000-default.conf
для linux
и настройте хост для АИС МФЦ
<VirtualHost *:80>
DocumentRoot /var/www/mfc_portal/web
ServerName mfc-portal
Options +Indexes +FollowSymLinks
<Directory "/var/www/mfc_portal/web">
AllowOverride All
php_admin_value mbstring.func_overload 0
php_admin_value mbstring.internal_encoding UTF-8
</Directory>
</VirtualHost>
прописав Ваши пути и имя хоста.
Необходимо проверить включен ли модуль Apache mod_rewrite. Он необходим для правильной работы файла .htaccess
после перезапустите apache.
linux:
sudo service apache2 restart
или windows:
httpd.exe -k restart
Для организации базовой защиты от уязвимостей необходимо в виртуалхост, в DocumentRoot дописать набор директив
Header always append X-Frame-Options SAMEORIGIN (Для Nginx add_header X-Frame-Options SAMEORIGIN;)
Header set X-XSS-Protection "1; mode=block"
Header always set Strict-Transport-Security "max-age=31536000; inc
<IfModule mod_headers.c>
<Directory />
Header always set Expect-CT "enforce, max-age=300"
</Directory>
</IfModule>
Header set X-Content-Type-Options nosniff
Header edit Set-Cookie ^(.*)$ $1;Secure
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* - [F]
Header always append X-Frame-Options SAMEORIGIN
Атака типа clickjacking (англ. «захват клика») позволяет вредоносной странице кликнуть по сайту-жертве от имени посетителя.
Заголовок X-Frame-Options со стороны сервера может разрешать или запрещать отображение страницы внутри фрейма.
Заголовок может иметь 3 значения:
DENY
Никогда не показывать страницу внутри фрейма.
SAMEORIGIN
Разрешить открытие страницы внутри фрейма только в том случае, если родительский документ имеет тот же источник.
ALLOW-FROM domain
Разрешить открытие страницы внутри фрейма только в том случае, если родительский документ находится на указанном в заголовке домене.
Header set X-XSS-Protection "1; mode=block"
Включает фильтрацию XSS. Вместо того, чтобы очищать содержимое страницы, браузер предотвратит отображение страницы, если заметит атаку.
Header always set Strict-Transport-Security "max-age=31536000; inc
задействовав strict-transport-security , вы заставляете все современные браузеры «общаться» с сайтом исключительно по HTTPS.
<IfModule mod_headers.c>
<Directory />
Header always set Expect-CT "enforce, max-age=300"
</Directory>
</IfModule>
Expect-CT Заголовок позволяет сайтам отказаться от отчетности и/или соблюдения требований прозрачности сертификатов,
чтобы использование неправильно выпущенных сертификатов для этого сайта не осталось незамеченным.
Header set X-Content-Type-Options nosniff
Можно предотвратить атаки с использованием подмены MIME типов, добавив этот заголовок ответа HTTP. Заголовок содержит инструкции по определению типа файла и не допускает сниффинг контента. При конфигурации потребуется добавить только один параметр: “nosniff”.
Для проверки с локального сервера исправьте /etc/hosts
(linux) или C:\Windows\System32\drivers\etc\hosts
(windows), добавив строку
127.0.0.1 mfc-portal
После этого в ИИС можно зайти, прописав в адресной строке браузера
http://mfc-portal/
Для первоначальной установки необходимо создать базу данных и поднять на ней миграции. Для этого зайдите в консоли в папку с проектом
cd /var/www/mfc_portal
./yii migrate (linux)
yii.bat migrate (windows)
Программа автоматически создаст структуру БД которая прописана в конфиге /config/db.php
После этого в браузере отобразится работающий портал.
Настройка обработки очередей и задач
Для отправления сообщений с портала МФЦ о новостях МСП необходимо запустить работу очереди. Для этого необходимо настроить автозапуск команды yii queue/run
в директории с проектом. Данная команда будет запускать обработку очереди и после проработки всех задач завершать выполнение скрипта.