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

Материал из OpenCorpora Вики
Перейти к: навигация, поиск
м (III Настраиваем проект)
м (Статья опубликована в общем пространстве статей)
 
Строка 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 нужен рестарт апача.
+
 
+
5. Заменить в /var/www/html/config.ini строку
+
<pre>
+
template_dir = /var/www/templates/
+
</pre>
+
на
+
<pre>
+
template_dir = /var/www/html/templates
+
</pre>
+
 
+
== IV Пробный запуск ==
+
На текущий момент всё готово к пробному заходу на наш веб-сайт. Открываем в браузере [http://192.168.1.53 http://192.168.1.53]:
+
 
+
Если всё прошло правильно и успешно мы увидим привычный сайт:
+
 
+
[[Файл:Opencorpora_after_install.png]]
+
 
+
Если так и получилось -- всё, установка завершена.
+
 
+
== V Troobleshooting ==
+
В большинстве случаев можно самостоятельно устранить ошибку изучением /var/log/httpd/error_log
+
 
+
Если что-то не запустилось -- обращаться за помощью по-прежнему лучше всего к Дмитрию Грановскому.
+

Текущая версия на 23:53, 11 декабря 2014