Установка АСИОУ 7.0 под Linux

advertisement
Установка АСИОУ 7.0 под Linux
(все действия через терминал)
Все действия выполняются от имени администратора!
Для активации режима администратора необходимо ввести в консоли
команду su – и затем ввести пароль администратора
(либо выполнять все команды через привилегированный режим при
помощи команды sudo)
ПРИМЕЧАНИЕ: для активации режима администратора в
Ubuntu нужно ввести sudo su
Настройка и запуск программного комплекса АСИОУ 7.0
Создадим пользователя asiou в системе и зададим ему пароль, а так же создадим необходимые
каталоги. Это пользователь от имени которого будет работать программный комплекс АСИОУ 7.0 в
операционной системе. Внимание! Ввод пароля не отображается, это нормально.
useradd -d /home/asiou -m asiou
passwd asiou
Введите новый пароль UNIX:
Повторите ввод нового пароля UNIX:
passwd: пароль успешно обновлён
mkdir /home/asiou/logs
mkdir /home/asiou/www
chown asiou:asiou /home/asiou/logs /home/asiou/www
usermod -G asiou www-data
Для работы АСИОУ 7.0, требуется запуск FastCGI сервера через библиотеку flup, которую мы
устанавливали ранее. Протокол FastCGI является связующим звеном между программным
комплексом АСИОУ 7.0 и веб-сервером nginx.
Для запуска сервера нам потребуется специально оформленный bash-скрипт. Содержимое
необходимо сохранить в файл /usr/local/sbin/django_fcgi
#!/bin/bash
##################################################
# Script for automate runnong FastCGI servers
# for any Django project.
# Author: Sergey V. Sokolov <sokol@zavolga.net>
# Config: /etc/djfcgi.conf
##################################################
# Vars
CONFIG="/etc/djfcgi.conf"
# Check config
if [ ! -f "$CONFIG" ]; then
echo "Cconfig file '$CONFIG' not found!"
exit 1
fi
1
# Include config
. $CONFIG
if [ "$PROJECTS" = "" ]; then
echo "No configured projects!"
exit 1
fi
# For all projects
for proj in $PROJECTS; do
if [ "$2" != "" -a "$2" != "$proj" ]; then
continue;
fi
path=$(eval "echo \$${proj}_path");
user=$(eval "echo \$${proj}_user");
if [ "$path" = "" ]; then
echo "Empty path for project '$proj'!"
exit 1
fi
if [ ! -d "$path" ]; then
echo "Not directory '$path'!"
exit 1
fi
if [ ! -f "$path/manage.py" ]; then
echo "It not Django project '$path'!"
exit 1
fi
# Set variables
pid="$PID_DIR/$proj.pid"
socket="$SOCKET_DIR/django-fcgi-$proj.sock"
maxrequests=$(eval "echo \$${proj}_maxrequests");
maxrequests=${maxrequests:-$D_MAX_REQUESTS}
minspare=$(eval "echo \$${proj}_minspare");
minspare=${minspare:-$D_MIN_SPARE}
maxspare=$(eval "echo \$${proj}_maxspare");
maxspare=${maxspare:-$D_MAX_SPARE}
maxchildren=$(eval "echo \$${proj}_maxchildren");
maxchildren=${maxchildren:-$D_MAX_CHILD}
debug=$(eval "echo \$${proj}_debug");
debug=${debug:-$D_DEBUG}
outlog=$(eval "echo \$${proj}_outlog");
outlog=${outlog}
errlog=$(eval "echo \$${proj}_errlog");
errlog=${errlog}
# Start or stop
if [ "$1" = "start" ]; then
echo -n "Start FastCGI server for '$proj': "
# Generate command
CMD="$PYTHON $path/manage.py runfcgi workdir='$path' socket='$socket' pidfile='$pid'
debug=$debug"
CMD="$CMD maxrequests=$maxrequests minspare=$minspare maxspare=$maxspare
maxchildren=$maxchildren"
if [ "$outlog" != "" ]; then
CMD="$CMD outlog='$outlog'"
fi
2
if [ "$errlog" != "" ]; then
CMD="$CMD errlog='$errlog'"
fi
# Run
su --command="$CMD" "$user"
if [ "$?" = "0" ]; then
sleep 1
chmod 666 $socket
echo "OK"
else
echo "FAIL"
fi
elif [ "$1" = "stop" ]; then
echo -n "Stop FastCGI server for '$proj': "
if [ -f "$pid" ]; then
kill `cat $pid`
sleep 3
if [ "$?" = "0" ]; then
rm $socket >/dev/null 2>&1
rm $pid >/dev/null 2>&1
echo "OK"
else
echo "FAIL"
fi
else
echo "NOT RUNNING"
fi
else
echo "Usage: $0 (start|stop) [<project>]"
exit 1
fi
done
exit 0
Далее необходимо создать служебный каталог и назначить для него права на запись
mkdir /var/run/django-fcgi
chmod 777 /var/run/django-fcgi
Для работы скрипта описанного выше необходимо создать конфигурационный файл /etc/djfcgi.conf
следующего содержания:
# Config file for django FastCGI server
# Common vars
PYTHON="python"
PID_DIR="/var/run/django-fcgi"
SOCKET_DIR="/var/tmp"
# Default values
D_MAX_REQUESTS=0
D_MIN_SPARE=3
D_MAX_SPARE=5
D_MAX_CHILD=10
D_DEBUG=false
# Project names
PROJECTS="asiou"
# Project asiou
asiou_path="/home/asiou/www/asiou"
asiou_user="asiou"
asiou_maxchildren=25
asiou_debug=true
asiou_outlog="/home/asiou/logs/asiou.outlog.log"
3
asiou_errlog="/home/asiou/logs/asiou.errlog.log"
Распаковка архива с программным комплексом АСИОУ 7.0.
Архив asiou-7.0.tar.gz необходимо распаковать в каталог /home/asiou/www следующей командой
(предполагается что архив находится в текущем каталоге):
tar zxvf asiou-7.0.tar.gz -C /home/asiou/www
chown -R asiou:asiou /home/asiou/www
Следует обратить внимание, что на данном этапе потребуется пароль пользователя MySQL asiou,
который был указан на предыдущих этапах.
Далее необходимо инициализировать базу данных и заполнить ее начальными значениями, для
этого необходимо выполнить следующие команды:
cd /home/asiou/www/sql/properties
mysql -u asiou -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5987
Server version: 5.1.41-3ubuntu12.10 (Ubuntu)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>use asiou;
mysql>set names utf8;
mysql>\. dump.sql
mysql>\. ../institute.sql
mysql>\. ../kladr.sql
mysql>exit
Bye
Инициализация базы данных по учреждению:
Инициализацию данных по учреждению необходимо выполнить обязательно. Иначе при
попытке запуска АСИОУ будет выдана ошибка:
Инициализация данных по учреждению выполняется в процессе конвертации данных из
csv-файлов (которые располагаются в папке CONV) с помощью команды convert.
cd /home/asiou/www/asiou
python manage.py convert
После этого можно запустить ПО АСИОУ 7.0, создать административного пользователя АСИОУ и
выполнить первый вход в систему. Для этого выполним команду запуска сервера АСИОУ:
django_fcgi start asiou
Start FastCGI server for 'asiou': OK
4
Вход в АСИОУ 7.0
После запуска можно открыть браузер (Firefox, Opera, Chrome или Internet Explorer) и набрать в
адресной строке адрес http://asiou.local. Именно это имя было указано в настройках nginx. Если у
вас отсутствует имя сервера или система DNS, то можно зайти в систему используя IP-адрес,
например если адрес компьютера на котором установлено ПО АСИОУ 7.0 192.168.1.10, то заходить
следует по адресу http://192.168.1.10. При этом если компьютер находится в локальной сети, то по
данному адресу можно войти в систему с любого комьютера!!!
Для остановки АСИОУ 7.0 необходимо выполнить команду:
django_fcgi stop asiou
Stop FastCGI server for 'asiou': OK
Для создания административного пользователя необходимо выполнить следующие команды:
cd /home/asiou/www/asiou/
python manage.py createsuperuser
Username: admin
E-mail address: admin@yandex.ru <--- здесь нужно указать E-mail школы
Password:
Password (again):
Superuser created successfully.
После создания пользователя под ним можно войти как в административную часть по адресу
http://asiou.local/admin, так и в основную систему по адресу указанному ранее. При этом внешний
вид страницы входа будет выглядеть так:
Вход в основную систему:
Вход в административную часть:
5
6
Download