Nginx. Использование PHP в режиме FastCGI с помощью spawn-fcgi

Операционные системы 25.11.2010

php-fastcgi

В прошлой статье о FastCGi — Nginx. Использование PHP в режиме FastCGI с помощью php-fpm я рассказал как использовать php-fpm спаунер (надо сказать, что с тех времен все сильно поменялось, например вышел php 5.3.3 и php-fpm стал входить в дистрибутив php, а так же поменялся формат конфига php-fpm). Сегодня расскажу как использовать spawn-fcgi, некогда входивший в дистрибутив lighttpd, а ныне являющийся отдельным проектом.

Установка

Перед установкой спаунера убедимся, что PHP собран с поддержкой CGi:

[X] CGI        Build CGI version

Далее заходим в порты и устанавливаем spawn-fcgi:

cd /usr/ports/www/spawn-fcgi
make install clean

Читать полностью »

FreeBSD. XHProf для анализа производительности PHP

Операционные системы, Программирование 25.11.2010

Решил я воспользоваться утилитой для профилирования производительности веб-приложения XHProf от Facebook. И она мне так понравилась, что я решил написать про неё небольшой пост.

Утилита проводит анализ работы сайта, выводит информацию о использование каждой функции на пути работы приложения (например, загрузки определенной страницы сайта), а именно: количество вызовов определенной функции, затраченное время, кол-во потребляемой памяти и ресурсов процессора.

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

Профилирование в Wikipedia

Читать полностью »

Nginx. Кеширование с помощью fastcgi_cache

Операционные системы 20.11.2010

Устал я от того что мой блог долго грузится, но менять движок с WordPress на что-либо другое пока нет времени, а переезд на новый более мощный сервер всё время затягивается и решил прикрутить кеширование на стороне Nginx. Так как блог работает на fastcgi, то буду использовать fastcgi_cache, если вы используете связку Nginx+Apache, то вам следует использовать proxy_cache, как я понял там отличий особых нет.

Некоторые блоки мне всетаки надо оставить вне кеша, поэтому буду использовать ssi.

Настройка

У меня много хостов на одном сервере, но мне надо настроить кеш только для одного хоста. Определим кеш для моего блога в nginx.conf, секция http:

fastcgi_cache_path /var/cache/nginx/adw0rd
    levels=1:2
    keys_zone=adw0rd:16m
    max_size=256m
    inactive=1d;

Читать полностью »

Mercurial. Автоматическое обновление проекта при помощи хуков

Операционные системы 27.10.2010

После того как мы переехали с Subversion на Mercurial, нам осталось перевести svn'овские хуки для «деплоя» проекта. Для продакшена мы будем делать update головы бранча «EXAMPLE», то есть самого главного бранча.

Напоминаю, путь до hg репозитория — «/var/hg», имя проекта — «EXAMPLE», а имя вашего пользователя — «USER1».

Подготовка проекта и настройки

В предыдущей статье вы должны были настроить Mercurial и инициализировать проект. Так как у нас каталог проекта «/home/USER1/projects/EXAMPLE» и плодить две рабочие копии на одном сервере не хочется, то:

  • переместим репозиторий в каталог наших рабочих проектов
  • назначим символическую ссылку в «/var/hg/repos» на каталог рабочего проекта
mv /var/hg/repos/EXAMPLE /home/USER1/projects/EXAMPLE
ln -s /home/USER1/projects/EXAMPLE /var/hg/repos/EXAMPLE

Читать полностью »

FreeBSD. Переезжаем с Subversion на Mercurial +Trac

Операционные системы 25.10.2010

На днях все-таки переехали с vasa_c'ом на Mercurial. Возникли трудности с перемещением ревизий из Subversion в Mercurial, а также с настройкой Trac.

Работать будем от имени и группы — www.
Путь до файлов с данными svn — «/var/svn», до hg — «/var/hg», для trac — «/var/trac».
Имя проекта для примера — «EXAMPLE».
Запускать hg serve будем на порту 8010.

Установка и настройка Mercurial

Установим сам Mercurial:

cd /usr/ports/devel/mercurial
make install clean

Читать полностью »