- Получение прав root и создание локальной базы данных пакетов
- Установка Git и Apache2, настройка файрвола
- Установка базы данных MongoDB
- Установка PHP 7
- Установка PHP Mongo драйвера
- Установка Phalcon PHP фреймворка
- Загрузка и установка Passwork
- Инсталляция
- Создание SSL сертификата
- Настройка продукта для корректной работы в Chrome с SSL
- Настройка Apache для использования SSL-соединения
- Руководство пользователя Пассворк
Получение прав root и создание локальной базы данных пакетов
su
cd ~
yum makecache
Измените имя сервера на «passwork».
hostnamectl set-hostname passwork
systemctl restart NetworkManager.service
Установка Git и Apache2, настройка файрвола
yum -y install git httpd avahi
systemctl start httpd
systemctl enable httpd
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-port=5353/udp
firewall-cmd --reload
systemctl restart avahi-daemon
Установка базы данных MongoDB
Настройка системы управления пакетами (yum).
Создайте файл /etc/yum.repos.d/mongodb-org-3.6.repo для того, чтобы установить MongoDB с использованием менеджера пакетов yum.
yum -y install nano
nano /etc/yum.repos.d/mongodb-org-4.2.repo
Приведите файл к следующему виду:
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
Для установки последней стабильной версии MongoDB выполните следующую команду:
yum -y install mongodb-org
Измените режим работы SELinux на disabled. Откройте файл /etc/selinux/config и измените значение параметра SELINUX на disabled.
nano /etc/selinux/config
Приведите файл к следующему виду:
SELINUX=disabled
Для того чтобы внесенные изменения вступили в силу, необходимо перезагрузить систему.
Запустите службу MongoDB.
su
cd ~
systemctl start mongod.service
Включите автозапуск службы mongod при загрузке системы.
systemctl enable mongod.service
Установка PHP 7
Установка пакета конфигурации Remi репозитория
yum -y install epel-release yum-utils
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf module install -y php:remi-7.3
Установка PHP и дополнительных расширений
dnf install -y php php-json php-ldap php-xml php-bcmath php-mbstring
Установка PHP Mongo драйвера
dnf config-manager --set-enabled powertools
yum -y install gcc php-pear curl-devel openssl-devel pcre-devel php-devel
pear channel-update
pecl install mongodb
echo "extension=mongodb.so" | tee /etc/php.d/20-mongodb.ini
systemctl restart httpd
Установка Phalcon PHP фреймворка
yum -y install php-mysql libtool pcre-devel
git clone --branch 3.4.x --depth=1 "https://github.com/phalcon/cphalcon.git"
cd cphalcon/build
./install
echo "extension=phalcon.so" | tee /etc/php.d/50-phalcon.ini
systemctl restart httpd
Загрузка и установка Passwork
Клонируйте репозиторий используя ваш логин и пароль.
cd /var/www
git init
git remote add origin https://passwork.download/passwork/passwork.git
git fetch
git checkout v4
Система запросит логин и пароль к репозиторию, которые вы можете найти в вашем клиентом портале Пассворка. Если у вас нет доступа к клиентскому порталу — свяжитесь с нами.
Установите права доступа на папки и файлы.
find /var/www/ -type d -exec chmod 755 {} \;
find /var/www/ -type f -exec chmod 644 {} \;
chown -R apache:apache /var/www/
Конфигурация Apache2
Создайте конфигурационный файл для non-ssl соединения.
nano /etc/httpd/conf.d/non-ssl.conf
Приведите содержимое файла к следующему виду:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/public
<Directory /var/www/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
ErrorLog logs/error_log
TransferLog logs/access_log
LogLevel warn
</VirtualHost>
Перезапустите Apache.
systemctl restart httpd
Откройте http://passwork.local или http:// для доступа к вебсайту.
Инсталляция
При первом открытии Пассворк вы увидите диалог инсталляции, который проверит корректность настройки сервера и позволит ввести базовые параметры.
Оставьте все поля в значениях по умолчанию, если вы устанавливаете новую копию Пассворк.
Зарегистрируйте администратора Пассворк
Введите логин и пароль для первого пользователя. Пользователь автоматически станет администратором и владельцем организации.
Создание SSL сертификата
Установите SSL модуль для Apache.
yum -y install mod_ssl
Создайте новую директорию для хранения закрытого ключа (директория /etc/ssl/certs доступна по умолчанию для хранения файла сертификата):
mkdir /etc/ssl/private
Установите правильные разрешения на директорию:
chmod 700 /etc/ssl/private
Создайте новый сертификат и закрытый ключ для его защиты.
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
Создайте группу Диффи-Хеллмана.
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Добавьте содержимое сгенерированного файла в конец самоподписанного сертификата.
cat /etc/ssl/certs/dhparam.pem | tee -a /etc/ssl/certs/apache-selfsigned.crt
Настройка продукта для корректной работы в Chrome с SSL
При работе через SSL-соединение (HTTPS) браузер Chrome требует наличия флагов Secure и SameSite у cookie. Без этих флагов браузер не будет принимать куки, и вы не сможете авторизоваться в Пассворке в Chrome.
Для того чтобы установить эти флаги, включите параметр session.cookie_secure
в файле /etc/php.ini
:
session.cookie_secure = On
И установите параметр disableSameSiteCookie
(секция [application]
)в файле /var/www/app/config/config.ini
в значение Off
.
disableSameSiteCookie = Off
Не устанавливайте эти параметры или верните их в исходное значение, если вы передумаете использовать SSL и будете работать через HTTP-протокол
Настройка Apache для использования SSL-соединения
Откройте конфигурационный файл SSL в текстовом редакторе.
nano /etc/httpd/conf.d/ssl.conf
Найдите раздел, начинающийся с <VirtualHost _default_:443>
и внесите следующие изменения:
- Раскомментируйте строку
DocumentRoot
и измените путь в кавычках на путь к корневому каталогу вашего сайта. По умолчанию это будет /var/www/html. - Затем, раскомментируйте строку
ServerName
и заменитеwww.example.com
на IP-адрес или домен сервера (в зависимости от того, что вы указали в качествеCommon Name
в своем сертификате):
DocumentRoot /var/www/public
ServerName passwork.local:443
- Добавьте директиву “Directory” после “ServerName”.
<Directory /var/www/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
- Затем найдите строки SSLProtocol и SSLCipherSuite и либо удалите их, либо закомментируйте. Новая конфигурация, которую мы добавим ниже имеет более безопасные параметры, чем настройки Apache по умолчанию в CentOS:
# SSLProtocol all -SSLv2
# SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
Найдите строки SSLCertificateFile и SSLCertificateKeyFile и приведите их к следующему виду:
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
После внесения изменений проверьте, что ваш файл конфигурации виртуального хоста соответствует примеру ниже.
<VirtualHost _default_:443>
DocumentRoot /var/www/public
ServerName passwork.local:443
<Directory /var/www/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
</VirtualHost>
Мы закончили с изменениями в блоке VirtualHost. Сохраните изменения (Ctr+O) и выйдите (Ctr+X).
Перезапустите Apache, чтобы изменения вступили в силу.
systemctl restart httpd
Проверьте SSL-соединение, откройте ссылку https://passwork.local.