Прекомпиляторы php: APC и xcache

March 25th, 2012 No comments

Пару дней назад я писал статью о том, как установить на сервер eAccelerator – прекомпилятор php, который кеширует скрипты для более быстрой отдачи динамического содержимого клиентам. За счет кеширования скриптов происходит более быстрая отдача, в итоге – сайт, скрипт или веб-приложение работает значительно быстрее. eAccelerator очень распространен среди прекомпиляторов php, но, к сожалению, его разработка уже не ведется полтора года, а официальный сайт является заглушкой и полезной информации в себе не несет.

Сегодня речь пойдет об альтернативных проектах – прекомпиляторах APC и xcache. по своим характеристикам они почти не отличаются друг от друга – при стандартных настройках я получил примерно одинаковые результаты (разница в ~0,01 сек), отднако, мой выбор упал на xcache: его версии выходят чаще, а так же его обещают включить в стандартную поставку php6. Но, не будем забегать слишком далеко и разберем установку каждого из вышеперечисленных прекомпиляторов.

1) Установка APC. Качаем и устанавливаем необходимые пакеты. Если в системе отсутствует gcc, установите его тоже.

# aptitude -y install php5-dev php5-pear

Устанавливаем сам APC:

pecl install apc

Далее нужно создать конфиг-файл, описывающий плагин:

# nano /etc/php5/conf.d/apc.ini

В файле описать:

“extension=apc.so”

Перезапускаем сервис Apache:

# /etc/init.d/apache2 restart

Готово. Проверить, корректно ли установился APC можно двумя способами:

# php -v

После ввода команды должна будет высветиться информация об активных модулях php, в том числе быть упоминания об APC-cache. Если информация о нем есть, значит все в порядке. Второй способ – phpinfo(). Создаем в папке веб-сервера файл phpinfo:

# nano /home/sitename/public_html/phpinfo.php

Вписываем туда код:

<?php phpinfo(); ?>

Далее открываем браузер, в адресной строке браузера набираем путь к phpinfo.php и ищем информацию об APC-cache. Если информация о нем есть, значит все в порядке.

2) Установка xcache. Его установка намного проще – она ограничивается всего лишь одним пакетом из aptitude:

# aptitude -y install php5-xcache

Дополнительно не помешает увеличить размер кеша, который по умолчанию составляет 16 мегабайт:

# nano /etc/php5/conf.d/xcache.ini

Меняем параметр xcache.size  на 64 мегабайта:

xcache.size  =                64M

Перезапускаем веб-сервер:

# /etc/init.d/apache2 restart

Если у вас nginx в качестве основного сервера (без Apache) – то перезапуск нужно делать запуск немного по другому:

# /etc/init.d/php-fastcgi restart

Или так:

# /etc/init.d/php-fpm restart

Модули php должны перегрузиться и xcache заработать. Для проверки можно воспользоваться php -v или phpinfo(), как в предыдущем примере. Удачи! 🙂

Установка Thunderbird 11 на Debian Squeeze из репозитариев MEPIS

March 22nd, 2012 No comments

По наводке одного из наших читателей я решил заморочиться с  установкой более поздней версии почтового клиента Thunderbird на Debian Squeeze, т.к. последняя версия этого клиента (icedove) – 5.0, что очень печально. Решение нашлось быстро: есть замечательный дистрибутив MEPIS, основанный на Debian/GNU Linux, который полностью с ним совместим. Будем брать пакеты с Thunderbird оттуда. 🙂

Качаем пакет c Thunderbird:

# wget http://main.mepis-deb.org/mepiscr/testrepo/pool/test/t/thunderbird/thunderbird_11.0+build1-0mcr110+1_i386.deb

Качаем пакет с русификацией:

# wget http://main.mepis-deb.org/mepiscr/testrepo/pool/test/t/thunderbird/thunderbird-locale-ru_11.0+build1-0mcr110+1_all.deb

Устанавливаем:

# dpkg -i *.deb

Всё, теперь у нас последняя версия Thunderbird 🙂

 

Ставим актуальный iceweasel 11 (firefox) на debian squeeze

March 21st, 2012 5 comments

Пользуясь Debian Squeeze, мы делаем свою работу безопасней, из-за политики выпуска обновлений. С одной стороны это плюс – к нам постоянно приходят заплатки, которые не дают системе сбоить. Этот плюс является одновременно и минусом: версии программ, заключенные в пакеты в ветке stable останутся теми же, что и в день выпуска системы, как это не печально. Соответственно, iceweacel как и был 3.5.16 – так им и останется. Специально для этого разработчиками Debian был придуман проект backports – репозитарий, содержащий в себе откомпилированные под стабильные библиотеки новые версии программ. Сегодня мы обновим iceweacel 🙂

Итак, для начала установим ключик с репозитария mozilla:

# wget http://mozilla.debian.net/pkg-mozilla-archive-keyring_1.0_all.deb

Установим скачанный нами пакет:

# dpkg -i pkg-mozilla-archive-keyring_1.0_all.deb

Добавим в sources.list парочку строчек:

# echo “deb http://backports.debian.org/debian-backports squeeze-backports main”  >> /etc/apt/sources.list
# echo “deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free”  >> /etc/apt/sources.list
# echo “deb http://mozilla.debian.net/ squeeze-backports iceweasel-release”  >> /etc/apt/sources.list

Обновим список репозитариев:

# aptitude update

Удалим существующую версию iceweasel:

# aptitude -y purge iceweasel

Устанавливаем новую версию iceweasel:

# aptitude – y install -t squeeze-backports iceweasel iceweasel-l10n-ru

Всё, теперь у Вас установлен актуальный iceweasel, который на помент написания статьи был 11.0 🙂 Удачи!

Наглядный просмотр свободного места на вашем сервере

March 20th, 2012 No comments

Нарвался сегодня на классную консольную софтину – анализатор свободного места на жестком диске. С одной стороны – функционал незаурядный, с другой – все настолько наглядно выглядит, что вычислить, где закончилось место в ненавистном /var/ или кто из пользователей слишком обнаглел – стало довольно просто.  🙂

Ставим:

# aptitude install ncdu

запускаем:

# ncdu

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

ncdu 1.6 ~ Use the arrow keys to navigate, press ? for help
— / ——————————————————————————————————————————–
115,4GiB /home
6,1GiB /opt
2,5GiB /var
1,0GiB /usr
89,5MiB /lib
49,7MiB /etc
16,3MiB /boot
4,9MiB /bin
4,0MiB /root
4,0MiB /sbin
108,0kiB /dev
e 16,0kiB /lost+found
16,0kiB /tmp
e 4,0kiB /media
e 4,0kiB /mnt
e 4,0kiB /selinux
e 4,0kiB /srv
0,0 B /proc
0,0 B /sys
664,0kiB core
@ 0,0 B initrd.img
@ 0,0 B vmlinuz

Таким образом, становится легко отслеживать и подчищать самые “тяжелые” папки, выполняя команду в тяжелых папках, далее подпапках итп. 🙂

Установка eAccelerator на Debian Squeeze

March 20th, 2012 4 comments

Давно хотел заморочиться и написать статью о том, как правильно установить eAccelerator на Debian. Чудо совершилось – я пишу. 😉 К сожалению, *deb-пакеты этого чуда отсутствуют, потому нам придется собирать из исходных кодов.

Устанавливаем необходимые для сборки пакеты:

# aptitude -y install install build-essential php5-dev

Скачиваем архив отсюда и заливаем на сервер. Распаковываем, переходим в папку:

# cd eaccelerator-0.9.6.1

Далее делаем необходимые для сборки действия:

# phpize

Конфигурим:

# ./configure

Компилим:

# make

устанавливаем:

# make install

Проверяем:

# php-cgi -v

Либо:

# php -v

На что нам отобразится что-то вроде:

PHP 5.3.3-7+squeeze8 with Suhosin-Patch (cgi-fcgi) (built: Feb 10 2012 14:12:37)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH

Почти всё. Теперь осталось создать файлы конфигов и временные папки. Создаем папку:

# mkdir -p /var/cache/eaccelerator

Даем права:

# chmod -R 777 /var/cache/eaccelerator

Создаем конфиги. Сделать можно несколькими способами: прописать напрямую в php.ini, либо создать отдельный файл в папке /etc/php5/conf.d, что мы и сделаем.

# nano /etc/php5/conf.d/eaccelerator.ini

Вставляем конфиг:

extension=”eaccelerator.so”
eaccelerator.shm_size=”64″
eaccelerator.cache_dir=”/var/cache/eaccelerator”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.check_mtime=”1″
eaccelerator.debug=”0″
eaccelerator.filter=””
eaccelerator.shm_max=”0″
eaccelerator.shm_ttl=”3600″
eaccelerator.shm_prune_period=”1800″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″

Всё, можно проверять:

# /etc/ini.d/apache2 restart

На этом конфигурация завершена. Остался один момент: иногда при попытке запуска eAccelerator возникает ошибка:

eAccelerator: Could not allocate 67108864 bytes, the maximum size the kernel allows is 33554432. Lower the amount of memory request or increase the limit in /proc/sys/kernel/shmmax.
PHP Warning: [eAccelerator] Can not create shared memory area in Unknown on line 0
PHP Fatal error: Unable to start eAccelerator module in Unknown on line 0

Что бы пофиксить, прописываем в конец файла  /etc/sysctl.conf  строчку:

kernel.shmmax=67108864

После выполним:

# echo 67108864 > /proc/sys/kernel/shmmax

После ошибка исчезает и eAccelerator нормально работает. Удачи!