-
Notifications
You must be signed in to change notification settings - Fork 23
Разработчику :: Установка на Ubuntu
Это описание того, как развернуть рабочее окружение на Linux-системе. Конкретно это руководство проверено и работает для Ubuntu 14, но должно (возможно, с мелкими правками) работать и на более старых версиях и на других Debian-based системах.
Существует другая инструкция), описывающая тот же процесс для CentOS.
Нам нужны: Apache, MySQL (клиент и сервер), PHP (не ниже 5.3.3), некоторые модули для PHP, git, SVN (последний -- для работы Composer)
sudo apt-get install \
apache2 \
mysql-server mysql-client \
php5 php5-mysql php5-curl php5-intl \
git \
subversion
Для работы вспомогательных скриптов также понадобятся perl
и python
, на современных системах они стоят по умолчанию.
Необходимые модули perl:
- Config::INI (
libconfig-ini-perl
)
Логинимся в MySQL под пользователем root
и создаём базу данных и пользователя для работы с ней:
CREATE DATABASE corpora DEFAULT CHARSET utf8;
GRANT DELETE, INSERT, LOCK TABLES, SELECT, UPDATE, ALTER, CREATE ON corpora.* TO username IDENTIFIED BY 'password';
Пытаемся зайти в базу под этим пользователем и проверяем, что оно работает.
Клонируем репозиторий в корень сервера (по умолчанию - /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 install
Должен появиться каталог 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
Редактируем config.ini
:
- в секции mysql прописываем реквизиты доступа к БД,
- в секции smarty прописываем пути к сделанным на предыдущем шаге каталогам (кроме
templates
, который лежит под контролем версий и должен быть в/var/www/html
), - если планируется, что должна работать отправка почты, как в продакшене, нужно отредактировать секцию mail
cd /var/www/html
./vendor/bin/phinx migrate -e production # здесь нужно, чтобы у mysql-пользователя были права на DROP
Это создаст пустую базу, по структуре идентичную продакшену. Если вам нужно заполнить базу настоящими данными, то нужно попросить слепок продакшен-базы у @grandsbor, также можно последить за этим тикетом: когда он будет сделан, копия продакшен-базы без персональных данных будет доступна для скачивания.
В любом случае данные в базу заливаются как обычно:
bzcat somefile.sql.bz2 | mysql -Dcorpora -uusername -p # предполагая реквизиты из шага 2
Если что-то (или всё) не работает:
- читаем лог веб-сервера (лежит в
/var/logs/apache2
или/var/logs/httpd
) - перечитываем эту инструкцию (и более подробную эту)
- спрашиваем у @grandsbor