Участник:Andrey Kruglov/Развёртывание рабочего окружения OpenCorpora на базе CentOs: различия между версиями

Материал из OpenCorpora
Перейти к навигации Перейти к поиску
м (Статья опубликована в общем пространстве статей)
 
(не показана 1 промежуточная версия этого же участника)
Строка 1: Строка 1:
Данная инструкция описывает подготовку рабочего окружения OpenCorpora на базе CentOs.
#REDIRECT [[Развёртывание рабочего окружения OpenCorpora на базе CentOs]]
 
Точка актуальности инструкции: декабрь 2014 года.
 
 
В качестве предисловия.
 
Собрать рабочее окружение OpenCorpora - это простая операция для разработчика даже среднего/начинающего уровня.
 
Не нужно ничего компилировать, даже репозитории никакие дополнительные не нужны.
Просто собираем обычный LAMP-сервер.
 
Есть [https://code.google.com/p/opencorpora/wiki/ForDevelopers базовая инструкция 2011 года], в ней некоторые вещи устарели но для разработчика не составит труда разобраться, что к чему.
 
Я писал конкретную инструкцию ориентируясь именно на CentOs, как-то привычнее чем Debian.
 
Перечислены только те модули, которые реально используются, ничего лишнего (специально собирал на minimal iso) и проверял нормальную работу сайта.
 
 
== I Подготовительные операции. Установка ОС ==
 
1. Создать виртуалку. Поставить ОС
 
Достаточно 512 Mb RAM, 20 Gb HDD.
 
Ставил с образа [http://isoredirect.centos.org/centos/6/isos/ CentOS-6.6-i386-minimal.iso]
 
2. Поднять сетку
Отредактировать файл /etc/sysconfig/network-script/ifcfg-eth0:
<pre>
cd /etc/sysconfig/network-script
vi ifcfg-eth0
</pre>
 
В моём конкретном случае (виртуалка подключена непосредственно в сеть, режим bridge в VmWare) это было:
<pre>
IPADDR=192.168.1.53
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
</pre>
Рестартовать службу:
<pre>
service network restart
</pre>
 
Попробовать пингануть ya.ru, проверить что узел доступен.
 
3. Обновиться
<pre>
yum update
</pre>
 
4. Доставить пакеты по вкусу
<pre>
yum install mc
</pre>
 
5. Отрубить SELinux
 
Если по-простому - то прописать в /etc/selinux/config следующее:
<pre>
SELINUX=disabled
</pre>
 
6. Отключить файерволл
 
Дать в консоли команды:
<pre>
service iptables stop
chkconfig iptables off
</pre>
 
7. Настройка подключения по SSH
 
Закинуть свой ключ в /root/.ssh/authorized_keys, после reboot'а попробовать подключиться по SSH
 
== II Ставим вебсервер (apache+php+mysql) ==
1. Ставим апач
<pre>
yum install httpd
chkconfig httpd on
</pre>
 
В /etc/httpd/conf/httpd.conf добавить
<pre>
ServerName localhost
</pre>
 
Стартуем службу:
<pre>
service httpd start
</pre>
 
Закинуть файл /var/www/html/index.html и проверить, что открывается http://192.168.1.53
 
Версия апача - 2.2:
 
<pre>
httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:  Oct 16 2014 14:45:47
</pre>
 
2. Ставим php с нужными нам модулями:
<pre>
yum install php php-pear php-mbstring
service httpd restart
</pre>
 
Закинуть простенький helloworld.php в  /var/www/html/helloworld.php и проверить что открывается http://192.168.1.53/helloworld.php
 
<pre>
<?php
echo 'php works!';
?>
</pre>
 
Версия PHP не особо критична (нет специфических требований), в основных репозитория сейчас 5.3 идёт по умолчанию:
<pre>
php -v
PHP 5.3.3 (cli) (built: Oct 30 2014 19:56:14)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
</pre>
 
3. Установка mysql
<pre>
yum install mysql-server php-mysql
chkconfig mysqld on
service mysqld start
mysql_secure_installation
</pre>
 
Проверяем подключение и работу библиотеки pdo. Закинем простенький test_mysql.php в /var/www/html/test_mysql.php и проверим, что нормально открывается http://192.168.1.53/test_mysql.php
<pre>
<?php
 
$user = 'root';
$pass = 'password_here';
 
try {
    $dbh = new PDO('mysql:host=localhost;dbname=mysql', $user, $pass);
    echo 'connection OK';
    $dbh = null;
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
}
 
?>
</pre>
 
== III Настраиваем проект ==
1. Качаем исходники
<pre>
yum install subversion
cd /var/www/html
svn co https://github.com/OpenCorpora/opencorpora/trunk .
</pre>
 
2. Подымаем пустую базу из дистрибутива
<pre>
mysql -u root -p
CREATE DATABASE corpora DEFAULT CHARSET utf8;
GRANT DELETE, INSERT, LOCK TABLES, SELECT, UPDATE ON corpora.* TO username IDENTIFIED BY 'password';
mysql -uroot -Dcorpora -p < /var/www/html/install/install.sql
</pre>
 
3. Подкачиваем Smarty, symphony и что-то там ещё (через composer)
 
Подключаем composer:
<pre>
cd /var/www/html
curl -sS https://getcomposer.org/installer | php
</pre>
 
И инсталлируем необходимые модули для opencorpora
<pre>
php composer.phar install
</pre>
 
Подключается следующее:
<pre>
Installing dependencies (including require-dev) from lock file
  - Installing symfony/yaml (v2.0.24)
    Downloading: 100%
  - Installing symfony/console (v2.0.24)
    Downloading: 100%
  - Installing symfony/config (v2.0.24)
    Downloading: 100%
  - Installing symfony/class-loader (v2.0.24)
    Downloading: 100%
  - Installing robmorgan/phinx (v0.3.7)
    Downloading: 100%
  - Installing smarty/smarty (v3.1.19)
    Checking out /tags/v3.1.19/@4867
  - Installing swiftmailer/swiftmailer (v5.2.1)
    Downloading: 100%
Generating autoload files
</pre>
 
Проверить, что создалась папка /var/www/html/vendor/
 
Добавляем ссылку на Smarty (файл Smarty.class.php находится в /var/www/html/vendor/smarty/smarty/distribution/libs) в файл /etc/php.ini
 
<pre>
include_path = ".:/php/includes:/var/www/html/vendor/smarty/smarty/distribution/libs"
</pre>
 
Создаем каталоги под Smarty (такие же, как в нашем будущем конфиге):
 
<pre>
mkdir /var/www/templates/
mkdir /var/www/smarty_dir/
mkdir /var/www/smarty_dir/templates_c/
mkdir /var/www/smarty_dir/configs/
mkdir /var/www/smarty_dir/cache/
chown -R apache /var/www/templates/
chown -R apache /var/www/smarty_dir/
</pre>
 
3. Создаём конфиг
 
Копируем настройки из конфиг-файла по умолчанию (там уже все настройки сделаны под CentOs, почти ничего не придётся править):
 
<pre>
cp /var/www/html/config.default.ini /var/www/html/config.ini
</pre>
 
Из необходимых настроек - правим настройки подключения к mysql-базе (логин/пароль), введите свои.
 
4. Дополнительные правки в php.ini
 
Выставляем timezone для корректной работы функций даты/времени:
<pre>
date.timezone ="Europe/Moscow"
</pre>
Не забываем, что после правок php.ini нужен рестарт апача.
 
== IV Пробный запуск ==
На текущий момент всё готово к пробному заходу на наш веб-сайт. Открываем в браузере [http://192.168.1.53 http://192.168.1.53]:
 
Если всё прошло правильно и успешно мы увидим привычный сайт:
 
[[Файл:Opencorpora_after_install.png]]
 
Если так и получилось -- всё, установка завершена.
 
== V Troobleshooting ==
В большинстве случаев можно самостоятельно устранить ошибку изучением /var/log/httpd/error_log
 
Если что-то не запустилось -- обращаться за помощью по-прежнему лучше всего к Дмитрию Грановскому.

Текущая версия от 20:53, 11 декабря 2014