-
Notifications
You must be signed in to change notification settings - Fork 23
Разработчику :: Установка на Ubuntu
Это описание того, как развернуть рабочее окружение на Linux-системе. Конкретно это руководство проверено и работает для Ubuntu 14, но должно (возможно, с мелкими правками) работать и на более старых версиях и на других Debian-based системах.
Существует другая инструкция, описывающая тот же процесс для CentOS.
Нам нужны: Apache, MySQL (клиент и сервер), PHP (не ниже 5.4), некоторые модули для PHP, git, SVN (последний -- для работы Composer)
sudo apt-get install \
apache2 \
mysql-server mysql-client \
php5 php5-mysql php5-curl php5-intl \
git \
subversion
(Для более свежих дистрибутивов вместо php5 php5-mysql php5-curl php5-intl
будет php7.4 php7.4-mysql php7.4-curl php7.4-mbstring php7.4-xml libapache2-mod-php7.4
.)
Для работы вспомогательных скриптов также понадобятся perl
и python
, на современных системах они стоят по умолчанию.
Необходимые модули perl:
- Config::INI (
libconfig-ini-perl
) - DBD::mysql (
libdbd-mysql-perl
) - DBI (
libdbi-perl
) - XML::Parser (
libxml-parser-perl
)
Необходимые модули python:
- MySQLdb (
python-mysqldb
) (только в дистрибутивах, где есть Python 2.x)
Логинимся в MySQL под пользователем root
и создаём базу данных и пользователя для работы с ней:
CREATE DATABASE corpora DEFAULT CHARSET utf8;
CREATE USER username@localhost IDENTIFIED BY 'password';
GRANT DELETE, INSERT, LOCK TABLES, SELECT, UPDATE, ALTER, CREATE ON corpora.* TO username@localhost;
Пытаемся зайти в базу под этим пользователем и проверяем, что оно работает.
Клонируем репозиторий в корень сервера (по умолчанию - /var/www/
или /var/www/html
, можно поменять в конфигурационном файле сервера):
cd /var/www/html
git clone https://github.com/OpenCorpora/opencorpora.git .
Composer -- это менеджер зависимостей, написанный на php. Он управляет внешними для нас библиотеками (Smarty, Phinx, Symfony, SwiftMailer)
sudo apt-get install curl # если его ещё нет
cd /var/www/html
curl -sS https://getcomposer.org/installer | php
php composer.phar self-update --1 # даунгрейдим до старой версии, новая не поддерживает все плагины
php composer.phar install
Должны появиться каталоги vendor
, assets/vendor
.
Каталог smarty_dir
можно называть как угодно и создавать где угодно, главное потом прописать правильный путь к нему в config.ini
(см. шаг 6)
cd /var/www
mkdir smarty_dir
mkdir smarty_dir/{cache,configs,templates_c}
chown -R www-data: smarty_dir # веб-сервер должен иметь права туда писать
В корневом каталоге (выше мы предположили, что это /var/www/html
):
cp config.default.ini config.ini
cp config.default.json config.json
Редактируем оба конфига - config.ini
и config.json
(идиотизм, но пока так, извините):
- в секции mysql прописываем реквизиты доступа к БД,
- в секции smarty прописываем пути к сделанным на предыдущем шаге каталогам (кроме
templates
, который лежит под контролем версий и должен быть в/var/www/html
), - если планируется, что должна работать отправка почты, как в продакшене, нужно отредактировать секцию mail
cd /var/www/html
./vendor/bin/phinx migrate -e production # здесь нужно, чтобы у mysql-пользователя были права на DROP
Это создаст пустую базу, по структуре идентичную продакшену. Если вам нужно заполнить базу настоящими данными, то можно скачать слепок продакшен-базы (без персональных данных) здесь.
Данные в базу заливаются так:
zcat database-dev.sql.gz | mysql -Dcorpora -uusername -p # предполагая реквизиты из шага 2
Если что-то (или всё) не работает:
- читаем лог веб-сервера (лежит в
/var/logs/apache2
или/var/logs/httpd
) - перечитываем эту инструкцию (и более подробную эту)
- спрашиваем у @grandsbor