9 октября 2011 г.

Centos - установка и настройка xcache

0 коммент.
Для установки кэширующего модуля для php xcache нам потребуется установленный пакет php-dev.
Проверим его наличие командой
rpm -qa | grep php-devel
Если вывод был пустым, то это значит, что пакет php-devel у вас не установлен. Для установки надо выполнить команду:
yum install php-devel
Получим список пакетов к установке:

Dependencies Resolved
======================================================================================================================================
 Package                        Arch                        Version                                 Repository                   Size
======================================================================================================================================
Installing:
 php-devel                      i686                        5.2.17-1.el6.art                        atomic                      505 k
Installing for dependencies:
 autoconf                       noarch                      2.63-5.1.el6                            base                        781 k
 automake                       noarch                      1.11.1-1.2.el6                          base                        550 k
Transaction Summary
======================================================================================================================================
Install       3 Package(s)
Upgrade       0 Package(s)
Total download size: 1.8 M
Installed size: 6.9 M
Is this ok [y/N]:

со всем соглашаемся, нажав "y".

Теперь устанавливаем необходимые для сборки утилиты:
yum install gcc make

После этого нам надо скачать архив с исходными кодами xcache, распаковать его, скомпилировать и установить:

cd /usr/src
wget http://xcache.lighttpd.net/pub/Releases/1.3.2/xcache-1.3.2.tar.gz
tar -xzf xcache-1.3.2.tar.gz
cd xcache-1.3.2
phpize
./configure --enable-xcache
make
make install
Расширение будет установлено в дефолтную папку для расширений php. В моем случае - в /usr/lib/modules/php

Теперь редактируем файл /etc/php.d/xcache.ini , и добавляем туда следующие строки:

# configuration for php Xcache module
[xcache-common]
;; install as zend extension (recommended), normally "$extension_dir/xcache.so"
zend_extension = /usr/lib/php/modules/xcache.so
[xcache]
; ini only settings, all the values here is default unless explained
; select low level shm/allocator scheme implemenation
xcache.shm_scheme =        "mmap"
; to disable: xcache.size=0
; to enable : xcache.size=64M etc (any size > 0) and your system mmap allows
xcache.size  =                64M
; set to cpu count (cat /proc/cpuinfo |grep -c processor)
xcache.count =                8
; just a hash hints, you can always store count(items) > slots
xcache.slots =                8K
; ttl of the cache item, 0=forever
xcache.ttl   =                 0
; interval of gc scanning expired items, 0=no scan, other values is in seconds
xcache.gc_interval =           0
; same as aboves but for variable cache
xcache.var_size  =            16M
xcache.var_count =             1
xcache.var_slots =            8K
; default ttl
xcache.var_ttl   =             0
xcache.var_maxttl   =          0
xcache.var_gc_interval =     300
xcache.test =                Off
; N/A for /dev/zero
xcache.readonly_protection = Off
; for *nix, xcache.mmap_path is a file path, not directory.
; Use something like "/tmp/xcache" if you want to turn on ReadonlyProtection
; 2 group of php won't share the same /tmp/xcache
; for win32, xcache.mmap_path=anonymous map name, not file path
xcache.mmap_path =    "/dev/zero"

; leave it blank(disabled) or "/tmp/phpcore/"
; make sure it's writable by php (without checking open_basedir)
xcache.coredump_directory =   ""
; per request settings
xcache.cacher =               On
xcache.stat   =               On
xcache.optimizer =           Off
[xcache.coverager]
; per request settings
; enable coverage data collecting for xcache.coveragedump_directory and xcache_coverager_start/stop/get/clean() functions (will hurt executing performance)
xcache.coverager =          Off
; ini only settings
; make sure it's readable (care open_basedir) by coverage viewer script
; requires xcache.coverager=On
xcache.coveragedump_directory = ""
В строке 
zend_extension = /usr/lib/php/modules/xcache.so
мы подключаем xcache как zend-расширение.

Рекомендуется настроить следующие параметры:
xcache.count - равным количеству ядер процессора на сервере
xcache.size - я выставляю равным числу, которое высчитывается по формуле: 
(общее количество оперативной памяти на сервере)/4/xcache.count
После этого перезапускаем apache командой
/etc/init.d/httpd restart
И смотрим на результат:
# php -v                                                                                                
PHP 5.2.17 (cli) (built: Jan  7 2011 08:57:50)                                                                                        Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
    with XCache v1.3.2, Copyright (c) 2005-2011, by mOo


Установка php 5.2.17 в CentOS 6

1 коммент.
Для начала подключаем репозиторий atomic:


wget -q -O - http://www.atomicorp.com/installers/atomic |sh
После этого редактируем файл /etc/yum.repos.d/atomic.repo , чтобы у нс получился примерно такой текст:

[atomic]
name = CentOS / Red Hat Enterprise Linux $releasever - atomicrocketturtle.com
mirrorlist = http://www.atomicorp.com/mirrorlist/atomic/centos-6-$basearch
#mirrorlist = http://www.atomicorp.com/channels/atomic/centos/6/mirrors-atomic
enabled = 1
priority = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY.art.txt
gpgcheck = 1
exclude=php*5*3*
Также необходимо добавить строку
 exclude=php*5*3*
в конец каждой секции в файле CentOS-Base.repo , чтобы получилось примерно так:

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
exclude=php*5*3*
#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
exclude=php*5*3*
После этого можем устанавливать php как обычно:
# yum install php
После этого убедимся, что устанавливается php версии 5.2.17:
======================================================================================================================================
 Package                          Arch                      Version                                  Repository                  Size
======================================================================================================================================
Installing:
 php                              i686                      5.2.17-1.el6.art                         atomic                     1.1 M
Installing for dependencies:
 apr                              i686                      1.3.9-3.el6_0.1                          updates                    129 k
 apr-util                         i686                      1.3.9-3.el6_0.1                          updates                     89 k
 apr-util-ldap                    i686                      1.3.9-3.el6_0.1                          updates                     15 k
 httpd                            i686                      2.2.15-5.el6.centos                      base                       813 k
 httpd-tools                      i686                      2.2.15-5.el6.centos                      base                        68 k
 mailcap                          noarch                    2.1.31-1.1.el6                           base                        27 k
 php-cli                          i686                      5.2.17-1.el6.art                         atomic                     2.1 M
 php-common                       i686                      5.2.17-1.el6.art                         atomic                     256 k
Transaction Summary
======================================================================================================================================
Install       9 Package(s)
Upgrade       0 Package(s)
Total download size: 4.6 M
Installed size: 14 M
Is this ok [y/N]:


1 октября 2011 г.

Установка и настройка Munin на CentOS 5.6

0 коммент.
Сразу оговорюсь, что рассматривается ситуация, когда на сервере уже установлен web-сервера apache.
Установка весьма проста, по порядку:

1) Добавляем репозиторий RPMForge:
для i386-систем:

rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
rpm -i rpmforge-release-0.5.2-2.el5.rf.i386.rpm

для x86_64-систем:
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
rpm -i rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

2) Устанавливаем munin и добавляем в автозагрузку:
yum install munin munin-node
chkconfig --levels 235 munin-node on

3) Создаем файл /etc/httpd/conf.d/munin.conf с содержанием:
    Alias /munin /var/www/html/munin
    <Directory /var/www/html/munin>
    AuthType Basic
    AuthName "You are entering Private area. Please enter your login and password"
    AuthUserFile /etc/munin/munin-htpasswd
    Require valid-user
    </Directory>


4) Редактируем конфигурационный файл /etc/munin/munin.conf. Нас интересуют следующие строки:
[...]
dbdir   /var/lib/munin
htmldir /var/www/www.example.com/web/monitoring
logdir  /var/log/munin
rundir  /var/run/munin

# Where to look for the HTML templates
tmpldir /etc/munin/templates
[...]
# a simple host tree
[server1.example.com]
    address 127.0.0.1
    use_node_name yes
[...]

Указанные строки надо раскомментировать (удалить символ # в начале строки).
Вместо server1.example.com стоит указать hostname вашего сервера (или основной сайт на нем).

5) Сделаем доступ к мониторингу по http-авторизации. Нам надо создать файл /etc/munin/munin-htpasswd. Сделать это можно таким образом:
htpasswd -c /etc/munin/munin-htpasswd monitoring
После чего нам будет предложено два раза ввести пароль для пользователя monitoring, с которым мы будем входить в просмотр мониторинга.

6) После этого перезагружаем сервисы:
/etc/init.d/httpd restart
/etc/init.d/munin-node restart
И через несколько минут сможем наблюдать собранную статистику.