Архив за месяц: Май 2015

Установка PHP5.2 на Ubuntu 12.04 LTS

Редактируем файл /etc/apt/preferences.d/php52
Добавляем в него:

Package: php5
Pin: release a=karmic
Pin-Priority: 991

Package: php5-gd
Pin: release a=karmic
Pin-Priority: 991

Package: php5-common
Pin: release a=karmic
Pin-Priority: 991

Package: php5-curl
Pin: release a=karmic
Pin-Priority: 991

Package: php5-mysql
Pin: release a=karmic
Pin-Priority: 991

Package: php5-pear
Pin: release a=karmic
Pin-Priority: 991

Package: php5-xsl
Pin: release a=karmic
Pin-Priority: 991

Package: php-pear
Pin: release a=karmic
Pin-Priority: 991

Package: php5-cli
Pin: release a=karmic
Pin-Priority: 991

Package: php5-memcache
Pin: release a=karmic
Pin-Priority: 991

Package: php5-pgsql
Pin: release a=karmic
Pin-Priority: 991

Package: php-apc
Pin: release a=karmic
Pin-Priority: 991

Package: php5-xmlrpc
Pin: release a=karmic
Pin-Priority: 991

Package: libapache2-mod-php5
Pin: release a=karmic
Pin-Priority: 991

В файл /etc/apt/sources.list.d/karmic.list
Добавляем:

# deb cdrom:[Ubuntu 10.04 LTS _Lucid Lynx_ - Release amd64 (20100429)]/ karmic main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.

deb http://old-releases.ubuntu.com/ubuntu/ karmic main restricted
deb-src http://old-releases.ubuntu.com/ubuntu/ karmic main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://old-releases.ubuntu.com/ubuntu/ karmic-updates main restricted
deb-src http://old-releases.ubuntu.com/ubuntu/ karmic-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://old-releases.ubuntu.com/ubuntu/ karmic universe
deb-src http://old-releases.ubuntu.com/ubuntu/ karmic universe
deb http://old-releases.ubuntu.com/ubuntu/ karmic-updates universe
deb-src http://old-releases.ubuntu.com/ubuntu/ karmic-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://old-releases.ubuntu.com/ubuntu/ karmic multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ karmic multiverse
deb http://old-releases.ubuntu.com/ubuntu/ karmic-updates multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ karmic-updates multiverse

## Uncomment the following two lines to add software from the 'backports'
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb http://old-releases.ubuntu.com/ubuntu/ karmic-backports main restricted universe multiverse
# deb-src http://old-releases.ubuntu.com/ubuntu/ karmic-backports main restricted universe multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu karmic partner
# deb-src http://archive.canonical.com/ubuntu karmic partner

deb http://old-releases.ubuntu.com/ubuntu karmic-security main restricted
deb-src http://old-releases.ubuntu.com/ubuntu karmic-security main restricted
deb http://old-releases.ubuntu.com/ubuntu karmic-security universe
deb-src http://old-releases.ubuntu.com/ubuntu karmic-security universe
deb http://old-releases.ubuntu.com/ubuntu karmic-security multiverse
deb-src http://old-releases.ubuntu.com/ubuntu karmic-security multiverse

И выполняем по очереди команды
sudo apt-get update
sudo apt-get install apache2 php5 libapache2-mod-php5 php5-xsl php5-gd php-pear libapache2-mod-auth-mysql php5-curl php5-memcache

Установка Megaplan на Ubuntu

Начальная подготовка

Нужно убедиться, что в системе присутствует локаль ru_RU.utf8. Сделать это можно командой:

$ locale -a | grep -i utf
 ru_RU.utf8

Если локаль отсутствует, установить её можно командой:

$ localedef -c -i ru_RU -f UTF-8 ru_RU.UTF8/

PostgreSQL

Поддерживаются версии 8.3.x (рекомендуется последняя версия из этой серии). Дистрибутив можно скачать с http://www.postgresql.org/download/, однако лучше установить с помощью менеджера пакетов вашего дистрибутива (rpm, apt-get и т.п.) Устанавливаем в дефолтной конфигурации. Кодировка баз и локаль должны быть UTF-8 (при инциализации хранилища через initdb). Инициализация базы обычно выполняется такой командой:

# su - postgres
 $ initdb -D /var/lib/postgresql/data --locale=ru_RU.UTF-8

Следует проверить, что в файле /var/lib/postgresql/data/postgresql.conf:

max_connections = 100
 shared_buffers = 24M

Далее нужно запустить postgres, обычно это делается так:

# /etc/init.d/postgresql start

но путь к запускающему скрипту может отличаться в вашей системе.

Apache

Поддерживаются версии Apache 2.2.x (рекомендуется последняя версия из этой серии). На текущий момент возможна работа с любым MPM, однако рекомендуемый и поддерживаемый вариант mpm_worker (многопоточный), поскольку в будущем с большой вероятностью работа с остальными MPM будет невозможна. Дистрибутив можно скачать с http://httpd.apache.org/, однако лучше установить с помощью менеджера пакетов вашего дистрибутива (rpm, apt-get и т.п.)

В апаче должны быть включены модули deflate, expires и rewrite.

Параметры для виртуального (vhost) хоста следующие:

<Directory "/var/www/megaplan/public_html">
 Allow from all
 AllowOverride all
</Directory>
 
 
 ServerAdmin support@megaplan.ru
 DocumentRoot "/var/www/megaplan/public_html"
 ServerName megaplan
 ErrorLog "/var/www/megaplan/var/logs/error.log"
 CustomLog "/var/www/megaplan/var/logs/access.log" combined


В строке

ServerName megaplan

следует написать ваше имя сервера. По нему будет происходит обращение к приложению через браузер. Если вы хотите поставить Мегаплан в другую папку, то следует заменить в путях /var/www/megaplan на свою папку, но это не рекомендуется.

В файле настройки apache mpm (может называться mpm.conf или похоже) следует изменить настройки в соответствии с ниженаписанным

 StartServers 2
 MaxClients 140
 MinSpareThreads 10
 MaxSpareThreads 15
 ThreadsPerChild 20
 MaxRequestsPerChild 100


Нужно также убедиться, что файл настройки mpm включается в главный конфиг (httpd.conf или apache.conf).

PHP

Поддерживаемая версия php — 5.2.6. Скачать дистрибутив можно отсюда: http://www.php.net/releases/, однако лучше установить с помощью менеджера пакетов вашего дистрибутива (rpm, apt-get и т.п.), это же касается и необходимых расширений.

В настройках нужно включить следующие расширения: pdo, pdo_pgsql, gd, mb_string(unicode), curl, ssl, tidy, zip, xml, dom. И нужно убедиться, что php собран с поддержкой ctype, iconv, pcre, json. Если Вы будете прикреплять файлы изображений с большим разрешением, то рекомендуется также установить расширение php imagick.

В файле php.ini необходимо правильно настроить некоторые ключи:

 magic_quotes_gpc = Off
 expose_php = Off
 display_errors = Off
 log_errors = On
 register_globals = Off
 register_long_arrays = Off
 post_max_size = 20M
 upload_max_filesize = 20M

Кроме этого нужно поставить xcache (http://xcache.lighttpd.net/) в версии 1.2.2 и тоже включить соответствующее php-расширение. Параметры xcache должны быть следующие (путь может отличаться, исправьте, если нужно):

 zend_extension_ts=/usr/lib/php5/lib/php/extensions/no-debug-zts-20060613/xcache.so
 auto_globals_jit="0"
 xcache.cacher="1"
 xcache.size="0M"
 xcache.count="2"
 xcache.slots="8k"
 xcache.var_size="32M"
 xcache.var_count="2"
 xcache.var_slots="8k"
 xcache.readonly_protection="1"
 xcache.mmap_path="/dev/zero"
 xcache.stat="1"
 xcache.coverager="0"
 xcache.coveragedump_directory=""
 xcache.admin.enable_auth="1"

Установка Zend Optimizer

Скачать можно из http://www.zend.com/en/products/guard/optimizer/. Необходимо убедиться, что оптимайзер подключается в php.ini после xcache. Настройки следующие (пути могут отличаться, исправьте, если нужно):

 zend_extension_ts=/usr/lib/php5/lib/php/extensions/no-debug-zts-20060613/ZendOptimizer.so
 zend_optimizer.optimization_level=15
 zend_optimizer.enable_loader=1
 zend_optimizer.disable_licensing=0
 zend_optimizer.license_path=/var/www/megaplan/config

Установка непосредственно Мегаплана

Нужно скачать дистрибутив и файл лицензии со страницы «Дистрибутив» личного кабинета. Дистрибутив нужно распаковать, а файл с лицензией положить в папку bin/config распакованного дистрибутива:

# tar zxf megaplan-rXXXX.tar.gz -C /tmp/
# cp zXXXXXXXXXXX.zl /tmp/megaplan/bin/config/
# cd /tmp/megaplan
# vim install-megaplan.sh

В начале файла install-megaplan.sh объявлено несколько переменных с комментириями. Нужно изменить параметры, которые не соответствуют окружению по умолчанию. После правки запускаем:

# sh install-megaplan.sh

Скрипт сделает следующее:
Создаст docroot вебсервера, скопирует туда файлы приложения и пропишет нужные права.
Пропишет cron-задания, необходимые для работы системы (пользователь www). Внимание: скрипт сотрёт все cron-задания этого пользователя, поэтому, если там есть что-то важное, заранее сохраните!!!
Создаст базу данных

После этого в файле megaplan/config/settings.ini нужно в строке
http.host = "megaplan"

выставить правильное название домена (это нужно, чтобы в письмах-уведомлениях приходили правильные ссылки), а в строке
mail.from = "noreply@megaplan"

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

Открыть файл create-initial-user.sh для правки и задать в переменных имя, фамилию, логин и пароль начального пользователя (директора). Здесь можно пользоваться только латиницей (вы сможете исправить фамилию и имя в нормальной раскладке позже). Проверьте, что пути соответствуют вашей конфигурации. После этого сохранить файл и выполнить:
# sh create-initial-user.sh

Готово

Перезапускаем apache и проверяем, что всё работает.

Логин и пароль тот, что вы вбили в файле create-initial-user.sh.
Решение проблем

Если вместо формы авторизации Вы увидели сообщение об ошибке 500, то скорее всего настройки веб-сервера не соответствуют требованиям. Для быстрой диагностики, откройте в браузере страницу http://megaplan/setup/check.php (не забудьте подставить название вашего хоста). Не забывайте после решения проблем, выявленных проверочной странице, перезапускать apache.