Установка 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.

CoovaChilli не работает опция HS_UAMDOMAINS

По умолчанию в CoovaChilli не включена настройка проверки адреса.
Для того чтобы опция начала работать — необходимо добавить в конфигурационный файл опцию HS_REDIRDNSREQ
/etc/chilli/config

 HS_REDIRDNSREQ=on
 HS_UAMDOMAINS=".google-analytics.com,.g.doubleclick.net"

И перезапустить
/sbin/service chilli restart

Из ChangeLog (CoovaChilli-v1.2.6 svn revision 433)
Added compile time option —enable-redirdnsreq and run-time option —redirdnsreq to have chilli send a DNS query for the hostname found in the redirect (useful when relying heavily on DNS based walled garden using uamdomain or uamdomainfile)

Скрипт резервного копирования VirtualBox

Не нашел готового, написал свой скрипт.
Основан он на использовании SNAPSHOT для резервного копирования.
Единственное — при его восстановлении у виртуальной машины возникает ощущение что у нее просто посреди работы выдернули питание.
Поэтому в некоторых случаях его применять нельзя. Но для моих целей — подходит.

#!/bin/bash

BACKUP_DIR=/mnt/backup/vms

if [ -z "$1" ]
then
    echo "Supply name of virtual machine or ALL for all running VMs"
    exit
fi

if [ "$1" = "ALL" ]
then
    VMS=`VBoxManage list runningvms|awk '{FS=" "}{print $1}'|sed s/\"//g`
else
    VMS=$1
fi

for VM in $VMS
do
    echo $VM
    mkdir $BACKUP_DIR/$VM/
    CFG=`VBoxManage showvminfo $VM --machinereadable|grep CfgFile|awk '{FS="="}{print $2}'|sed s/\"//g`
    echo "Copy $CFG ==> $BACKUP_DIR/$VM/"
    cp $CFG $BACKUP_DIR/$VM/
    VDIS=`VBoxManage showvminfo $VM --machinereadable|grep .vdi|awk '{FS="="}{print $2}'|sed s/\"//g`
    echo "Make snapshot of $VM"
    VBoxManage snapshot $VM take autobackup

    for VDI in $VDIS
    do
        #копирование диска
        echo "Copy $VDI>$BACKUP_DIR/$VM/"
        cp "$VDI" "$BACKUP_DIR/$VM/"
    done

    echo "Delete snapshot of $VM"
    VBoxManage snapshot $VM delete autobackup

done

Решение проблем с GoIP SMS сервером

Наконец-мне удалось настроить родной для GOIP 4 (Firmware GS-4.01-47-t1 — в ІЕ USSD и SMS все работает, в FF и Opera нет) сервер SMS ( http://www.hybertone.com/uploadfile/download/20120831180142382.rar ). Хочу поделиться своим путанным опытом при установке на Ubuntu Server 12.04.1 64bit.

Упускаю моменты скачивания и разворачивания архива.
Делал все как описано в инструкции в архиве. Путь к http.conf указал /etc/apache2.

После завершения выполнения установочного скрипта начались качели:

1) в браузере по http://ІР_астериска/goip/ — пусто. Решилась проблема копированием содержимого файла /etc/apache2/goip.conf (создался при инсталляции) в файл

/etc/apache2/http.conf — после проделанного и рестарта apache веб морда появилась но без связи с SMS сервером.

2) при запуске скрипта /usr/local/goip/run_goipcron, который запускает демон сервера goipcron с параметрами (см содержимое run_goipcron)

ошибка

Код: выделить все
root@Asterisk:/usr/local/goip# ./run_goipcron
./goipcron: error while loading shared libraries: libgssapi_krb5.so.2: cannot open shared object file: No such file or directory
goipcron start
root@Asterisk:/usr/local/goip#

Решилась проблема установкой библиотеки kerberos 5 c пакетов libkrb53_1.6.dfsg.3~beta1-2ubuntu1.8_amd64.deb и libkrb53_1.6.dfsg.3~beta1-2ubuntu1.8_i386.deb. Путем apt-get install libkrb53 проблема не решилась, не знаю почему.

3) после решения второй проблеммы — появились новыє третяя и четвертая… и мне на момощь пришел китайский саппорт.
проблема:

Код: выделить все
root@AsteriskPBX:/usr/local/goip# ./run_goipcron
./run_goipcron: 6: ./run_goipcron: ./goipcron: not found
goipcron start
root@AsteriskPBX:/usr/local/goip#

решение — установка библиотеки ia32-libs (очень долго инсталлировалась) apt-get install ia32-libs

4) после запуска goipcron веб морда не связалась с шлюзом… и тут мне в какой раз )) пришел на помощь китайский саппорт
решение: ln -s /var/run/mysqld/mysqld.sock /var/lib/mysql/mysql.sock

і я увидел заветную картинку

Отсюда: http://forum.asterisk.ru/viewtopic.php?f=5&t=2761

Переустановка grub на softRaid с LVM

1) Загрузиться в RESCUE

Запуск RAID

mkdir /etc/mdadm
mdadm —examine —scan > /etc/mdadm/mdadm.conf
mdadm -A —scan

LVM2
Запуск LVM
Если корневой раздел находится на логическом томе.

lvm pvscan
lvm vgscan
lvm lvscan
lvm vgchange -ay

Переустановка GRUB.
Пример 1:

/boot на md0
/ на md1

Подготовка окружения

mkdir /mnt/sysimage
mount /dev/md1 /mnt/sysimage
mount -o bind /dev /mnt/sysimage/dev
mount -o bind /proc /mnt/sysimage/proc
chroot /mnt/sysimage /bin/bash
mount /dev/md0 /boot

Установка GRUB
grub
grub>root (hd0,0)
grub>setup (hd0)

Пример 2:

/boot на md0
/ на /dev/VolGroup00/LogVol00

Подготовка:

mkdir /mnt/sysimage
mount /dev/VolGroup00/LogVol00 /mnt/sysimage
mount -o bind /dev /mnt/sysimage/dev
mount -o bind /proc /mnt/sysimage/proc
chroot /mnt/sysimage /bin/bash
mount /dev/md0 /boot

установка GRUB
grub
grub>root (hd0,0)
grub>setup (hd0)

Взято отсюда:
http://blog.mydream.com.hk/howto/linux/howto-reinstall-grub-in-rescue-mode-while-using-lvm-mdadm

Ejabberd c поддержкой mysql и postgresql

Для того, чтобы все заработало — надо:
1) собрать сам ejabberd с поддержкой ODBC
2) собрать из ejabberd-modules (качаются отдельно) модули mysql и pgsql
если этого не сделать — для Postgres будет писать что ошибка выполнения запроса.

I(<0.267.0>:ejabberd_odbc:226) : pgsql connection failed:
** Reason: {{badmatch,{ok,[{«SELECT 366»,
[{«oid»,text,65534,26,4,-1,1247},

А для mysql будет писать:

** Reason for termination =
** {‘module could not be loaded’,
[{mysql_conn,start,
[«localhost»,3306,»login»,»password»,»ejabberd»,
#Fun]},
{ejabberd_odbc,mysql_connect,5},
{ejabberd_odbc,connecting,2},
{p1_fsm,handle_msg,10},
{proc_lib,init_p_do_apply,3}]}

3) из папки odbc в исходниках создать соответствующим скриптом структуру базы
4) у модулей добавляем _odbc
mod_last на mod_last_odbc
mod_offline на mod_offline_odbc
mod_privacy на mod_privacy_odbc
mod_private на mod_private_odbc
mod_roster на mod_roster_odbc
mod_vcard на mod_vcard_odbc
mod_pubsub на mod_pubsub_odbc
5) в модуле mod_pubsub_odbc названия плагинов тоже меняем на «flat_obdc», «hometree_odbc», «pep_odbc»
Иначе будет показывать ошибки:

E(<0.485.0>:mod_pubsub_odbc:3624) : transaction return internal error:
{aborted,
{undef,
[{node_hometree,

E(<0.485.0>:mod_pubsub_odbc:3624) : transaction return internal error:
{aborted,
{undef,
[{node_flat,

E(<0.485.0>:mod_pubsub_odbc:3624) : transaction return internal error:
{aborted,
{undef,
[{node_pep,

Сборка libicu46.deb под Ubuntu для PostgreSQL и 1С

1) Скачать дистрибутив http://site.icu-project.org/download/46
2) распаковать
3) зайти в распакованную папку и там переименовать папку source в libicu46-4.6.1
4) зайти в libicu46-4.6.1 и дать команды
./configure —prefix=/usr
dh_make —createorig
выбрать s (single)
5) отредактировать файлы в директории debian:
а) удалить libicu.init.d.ex, libicu.cron.d.ex, libicu.default.ex
б) в файл debian/control внести изменения:

Source: libicu46
Section: unknown
Priority: extra
Maintainer: user
Build-Depends: debhelper (>= 8.0.0), autotools-dev
Standards-Version: 3.9.3
Homepage:
#Vcs-Git: git://git.debian.org/collab-maint/libicu.git
#Vcs-Browser: http://git.debian.org/?p=collab-maint/libicu.git;a=summary

Package: libicu46
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Unicode library

6) дать команду dpkg-buildpackage -rfakeroot

Сборка PostgreSQL для 1C в ubuntu

Если в системе стоит libICU версии отличной от 4.6 — поставить именно 4.6, более новая версия будет давать ошибку
creating template1 DATABASE IN /DATA/base/1 … ok
initializing pg_authid … FATAL: syntax error at OR near «REVOKE» at character 1
STATEMENT: REVOKE ALL ON pg_authid FROM public;

Также этот эффект может наблюдаться если библиотека лежит не в /usr/local/lib
Надо либо поправить debian/rules указав правильные пути, либо перенести библиотеку в /usr/local/lib.

Для сборки PostgreSQL для 1C брать исходники тут:
http://v8.1c.ru/overview/postgres_patches_notes.htm

1) распаковываем архив
2) заходим в директорию
3) даем команды:
dpkg-source -x *.dsc
dpkg-buildpackage -rfakeroot

Если при компиляции из исходников не собирается
../../../src/include/parser/kwlist.h:45: error: ‘APPLICATION’ undeclared here (not in a function)
Добавить определение в файлы:
src/interfaces/ecpg/preproc/preproc.h
src/backend/parser/gram.h

На выходе получаем готовые пакеты.