Skip to content

Разработчику :: Установка на Ubuntu

Dmitry Granovsky edited this page Mar 23, 2022 · 16 revisions

Это описание того, как развернуть рабочее окружение на Linux-системе. Конкретно это руководство проверено и работает для Ubuntu 14, но должно (возможно, с мелкими правками) работать и на более старых версиях и на других Debian-based системах.

Существует другая инструкция, описывающая тот же процесс для CentOS.

1. Ставим пакеты

Нам нужны: 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)

2. Настраиваем БД

Логинимся в 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;

Пытаемся зайти в базу под этим пользователем и проверяем, что оно работает.

3. Достаём код

Клонируем репозиторий в корень сервера (по умолчанию - /var/www/ или /var/www/html, можно поменять в конфигурационном файле сервера):

cd /var/www/html
git clone https://github.com/OpenCorpora/opencorpora.git .

4. Ставим composer и зависимости

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.

5. Настраиваем Smarty

Каталог smarty_dir можно называть как угодно и создавать где угодно, главное потом прописать правильный путь к нему в config.ini (см. шаг 6)

cd /var/www
mkdir smarty_dir
mkdir smarty_dir/{cache,configs,templates_c}
chown -R www-data: smarty_dir   # веб-сервер должен иметь права туда писать

6. Пишем конфиг

В корневом каталоге (выше мы предположили, что это /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

7. Накатываем БД

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