Инструкция по установке

Система автоматизации учебного процесса «Автор-ВУЗ» является клиент-серверным программным обеспечением. Система устанавливается на сервер, а пользователи получают к ней доступ при помощи браузера.

Системные требования

Для установки необходим веб-сервер с объемом ОЗУ не менее 1ГБ с установленным PHP 5.5 или 5.6 и базой данных MySQL не ниже версии 5.5 (или MariaDB).

Для PHP необходимо установить следующие модули:

  • GD
  • MBString
  • XML
  • MCrypt
  • MySQL
  • Zend Guard Loader
Для работы системы лицензирования необходимо подключение веб-сервера к интернету (можно только исходящее). Если в вашей образовательной организации это запрещено политикой безопасности - обратитесь к нам, мы сделаем для вас решение без необходимости подключения к интернету.

Процесс установки на базе CentOS Linux 7

1. Установите последнюю версию CentOS Linux 7 в конфигурации Minimal с официального сайта CentOS. При установке обеспечьте доступ сервера к интернету.

2. Выполните обновление системы.

yum -y update

3. Установите веб-сервер nginx.

yum install -y git gcc gcc-c++ kernel-devel pcre-devel zlib-devel openssl-devel perl perl-devel perl-ExtUtils-Embed libxslt libxslt-devel libxml2 libxml2-devel gd gd-devel GeoIP GeoIP-devel
cd /tmp
git clone http://github.com/wandenberg/nginx-push-stream-module.git
NGINX_PUSH_STREAM_MODULE_PATH=$PWD/nginx-push-stream-module
curl -O https://nginx.org/download/nginx-1.13.10.tar.gz
tar xzvf nginx-1.13.10.tar.gz
cd nginx-1.13.10
./configure --add-module=../nginx-push-stream-module
make
make install
mkdir /var/log/nginx
useradd -M -s /sbin/nologin apache
chown apache:apache /var/log/nginx

4. Установите БД MariaDB.

yum -y install mariadb-server mariadb
systemctl start mariadb
systemctl enable mariadb

5. Установите PHP 5.6.

yum -y install epel-release
yum -y localinstall https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum -y install php56w php56w-fpm php56w-common php56w-gd php56w-mbstring php56w-xml php56w-mcrypt php56w-mysql php56w-opcache php56w-ldap php56w-soap
systemctl start php-fpm
systemctl enable php-fpm

6. Сконфигурируйте веб-сервер.

rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
sed -i "s/;date.timezone.*/date.timezone = Europe\\/Moscow/g" /etc/php.ini
sed -i "s/; max_input_vars.*/max_input_vars = 100000/g" /etc/php.ini
sed -i "s/memory_limit = .*/memory_limit = 512M/g" /etc/php.ini
sed -i "s/;mbstring.func_overload.*/mbstring.func_overload = 0/g" /etc/php.ini
sed -i "s/;mbstring.internal_encoding.*/mbstring.internal_encoding = utf-8/g" /etc/php.ini
sed -i "s/short_open_tag.*/short_open_tag = On/g" /etc/php.ini
sed -i "s/error_reporting.*/error_reporting \= E_ALL \& ~E_DEPRECATED \& ~E_STRICT \& ~E_NOTICE \& ~E_WARNING/g" /etc/php.ini
sed -i "s/display_errors = .*/display_errors = On/g" /etc/php.ini
sed -i "s/;realpath_cache_size = .*/realpath_cache_size = 4096k/g" /etc/php.ini
sed -i "s/opcache.max_accelerated_files=.*/opcache.max_accelerated_files=100000/g" /etc/php.d/opcache.ini
sed -i "s/upload_max_filesize = .*/upload_max_filesize = 512M/g" /etc/php.ini
sed -i "s/post_max_size = .*/post_max_size = 512M/g" /etc/php.ini

sed -i "s/listen = 127.0.0.1:9000/listen = \\/var\\/run\\/php-fpm\\/php-fpm.sock/g" /etc/php-fpm.d/www.conf
sed -i "s/user = apache/user = apache/g" /etc/php-fpm.d/www.conf
sed -i "s/group = apache/group = apache/g" /etc/php-fpm.d/www.conf
sed -i "s/;listen.owner = nobody/listen.owner = apache/g" /etc/php-fpm.d/www.conf
sed -i "s/;listen.group = nobody/listen.group = apache/g" /etc/php-fpm.d/www.conf

echo "
user apache;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

events {
    worker_connections 1024;
}

http {
    sendfile            off; # bug in VirtualBox
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /usr/local/nginx/conf/mime.types;
    default_type        application/octet-stream;

    push_stream_shared_memory_size          64M;

    server {
        listen 80 default_server;
        server_name  _;
        root /var/www/html;
        index index.html index.htm index.php;

        client_max_body_size 512m;

        location / {
            try_files \$uri \$uri/ @urlrewrite;
        }

        location /messages/pub {
            push_stream_publisher admin;
            push_stream_channels_path \$arg_id;

            allow 127.0.0.1;
        }

        location ~ /messages/sub/(.*) {
            push_stream_subscriber long-polling;
            push_stream_channels_path \$1;
            push_stream_longpolling_connection_ttl 300s;
            push_stream_last_received_message_time \$arg_time;
            push_stream_last_received_message_tag \$arg_tag;
        }

        location ~ \.php\$ {
            try_files \$uri @urlrewrite;
            include /usr/local/nginx/conf/fastcgi_params;
            fastcgi_pass  unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
            fastcgi_read_timeout 600;
        }

        location @urlrewrite {
            include /usr/local/nginx/conf/fastcgi_params;
            fastcgi_pass  unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME \$document_root/index.php;
            fastcgi_read_timeout 600;
        }
    }
}
" > /usr/local/nginx/conf/nginx.conf

echo "
[Unit]
Description=nginx with push-stream-module
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP \$MAINPID
ExecStop=/bin/kill -s TERM \$MAINPID

[Install]
WantedBy=multi-user.target
" > /usr/lib/systemd/system/nginx.service

chown -R apache:apache /var/lib/php/session
curl http://avtor-vuz.ru/private/scripts/zend_loader/opcache.so > /usr/lib64/php/modules/opcache.so
curl http://avtor-vuz.ru/private/scripts/zend_loader/ZendGuardLoader.so > /usr/lib64/php/modules/ZendGuardLoader.so
echo "" >> /etc/php.ini
echo "zend_extension = /usr/lib64/php/modules/opcache.so" >> /etc/php.ini
echo "zend_extension = /usr/lib64/php/modules/ZendGuardLoader.so" >> /etc/php.ini
echo "zend_loader.enable=1" >> /etc/php.ini
echo "zend_loader.disable_licensing=0" >> /etc/php.ini
chmod 0755 /usr/lib64/php/modules/opcache.so
chmod 0755 /usr/lib64/php/modules/ZendGuardLoader.so

yum -y install policycoreutils-python
chown -R apache:apache /var/www/html
semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html(/.*)?"
restorecon -R /var/www/html
semanage permissive -a httpd_t
setsebool -P httpd_can_network_connect on

mkdir /usr/local/nginx/client_body_temp
mkdir /usr/local/nginx/fastcgi_temp
mkdir /usr/local/nginx/proxy_temp
mkdir /usr/local/nginx/scgi_temp
mkdir /usr/local/nginx/uwsgi_temp

chown apache:apache /usr/local/nginx/client_body_temp
chown apache:apache /usr/local/nginx/fastcgi_temp
chown apache:apache /usr/local/nginx/proxy_temp
chown apache:apache /usr/local/nginx/scgi_temp
chown apache:apache /usr/local/nginx/uwsgi_temp

chmod 0600 /usr/local/nginx/client_body_temp
chmod 0600 /usr/local/nginx/fastcgi_temp
chmod 0600 /usr/local/nginx/proxy_temp
chmod 0600 /usr/local/nginx/scgi_temp
chmod 0600 /usr/local/nginx/uwsgi_temp

semanage fcontext -a -t httpd_var_lib_t "/usr/local/nginx/client_body_temp(/.*)?"
semanage fcontext -a -t httpd_var_lib_t "/usr/local/nginx/fastcgi_temp(/.*)?"
semanage fcontext -a -t httpd_var_lib_t "/usr/local/nginx/proxy_temp(/.*)?"
semanage fcontext -a -t httpd_var_lib_t "/usr/local/nginx/scgi_temp(/.*)?"
semanage fcontext -a -t httpd_var_lib_t "/usr/local/nginx/uwsgi_temp(/.*)?"

restorecon -R /usr/local/nginx/client_body_temp
restorecon -R /usr/local/nginx/fastcgi_temp
restorecon -R /usr/local/nginx/proxy_temp
restorecon -R /usr/local/nginx/scgi_temp
restorecon -R /usr/local/nginx/uwsgi_temp

systemctl enable nginx
systemctl start nginx
systemctl restart php-fpm
systemctl restart mariadb

firewall-cmd --permanent --add-service=http
firewall-cmd --reload


7. Загрузите скрипт установки Автор-ВУЗ.

а) если у вас обычная версия:

curl http://avtor-vuz.ru/private/scripts/install.php > /var/www/html/install.php
chown apache:apache /var/www/html/install.php

б) если у вас оффлайн-версия - скачайте оффлайн установщик из личного кабинета (раздел Установка), и закачайте его на сервер при помощи SFTP-клиента (например, CyberDuck) в папку /var/www/html. Затем выполните команду:

chown apache:apache /var/www/html/install.php


8. Для начала установки системы откройте браузер и обратитесь по адресу http://<адрес_вашего_сервера>/install.php и следуйте инструкциям установщика.