FreeBSD. Svnserve — запуск Subversion без Apache!

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

В продолжении темы перехода с Apache, сегодня расскажу о простом запуске Subversion без Apache. Для этого мы используем svnserver. Настройка достаточно проста, и так перейдем к делу!

После установки Subversion, у вас должен появится svnserve, проверить можно так:

# svnserve --version
svnserve, version 1.6.4 (r38063)
   compiled Aug 25 2009, 15:27:23

Если вы только что установили Subversion, то не забудьте выполнить «rehash».

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

Яндекс.Фотки 2.0.1 — багфикс

Wordpress и плагины 13.02.2010

Все уже давным-давно просят поправить плагин. Ну вот, наконец это свершилось и теперь его поддерживает WordPress 2.9.1. Также поменялось меню в админке, теперь единый раздел, а не два как было раньше.

Скачать плагин: Яндекс.Фотки 2.0.1

Возможно в скором времени добавлю кеширование.
И подскажите какой-нибудь кроссбраузерный лайтбокс скрипт?

Перенос Trac на Nginx и tracd

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

Я когда-то написал статью Установка и настройка Trac на FreeBSD, теперь пришло время отказываться от Apache, в пользу Nginx+PHP/FastCGI и необходимо куда-то пересаживать Trac.

Есть несколько способов помимо mod_python, я выбрал использование tracd (веб-сервер самого трака). Но если в какой-то момент времени я пойму что этот способ мне не нравится, я обязательно напишу статью про связку через FastCGI.

Tracd

Поднимаем tracd так:

tracd --daemonize --pidfile=/var/run/trac/tracd.3050 --port=3050 --protocol=http --env-parent-dir=/var/trac \
    --basic-auth=project1,/var/svn/svn-auth-file,svn --basic-auth=project2,/var/svn/svn-auth-file,svn

Где,

  • --daemonize — запуск tracd в фоне как демона;
  • --pidfile — путь до pid-файла;
  • --port — tcp-порт, который будет слушать;
  • --protocol — протокол (Варианты: http, scgi, ajp. В нашем случае http);
  • --env-parent-dir — мульти-проектовый режим, надо указать родительский каталог проектов (Еще есть «--single-env», это сингл-режим и надо указывать полный путь до проекта);
  • --basic-auth — авторизация (Формат «projectdir,htpasswd_file,realm», если юзаете --env-parent-dir, то можете только каталог проекта указывать в «projectdir», а не полный путь).

Наберите «--help» и почитайте справку по всем опциям.

Nginx

Теперь добавим в Nginx новый бекенд:

upstream trac {
    server 127.0.0.1:3050;
}

И перепишем конфиг хоста:

server {
    listen 80;
    server_name trac.example.com;

    location / {
        #auth_basic            "Password, please!";
        #auth_basic_user_file  /var/svn/svn-auth-file;

        proxy_pass      http://trac;
        proxy_set_header Host $host;
    }
}

Ну вот и все, осталось ребутнуть nginx

/usr/local/etc.rc.d/nginx restart

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

Установка node.js на FreeBSD и использование под Nginx

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

Случайно нашел сайт nodejs.ru, полистал и добавил в ридер. Давно хотел попробовать node.js, но именно этот сайт стал той самой последней каплей в чаше желания и я решил незамедлительно попробовать node.js в действии.

Установка

Заходим на оф. сайт node.js и копируем ссылку на архив с сорцами.

# cd /tmp
# fetch http://s3.amazonaws.com/four.livejournal/20100120/node-v0.1.26.tar.gz
# tar -xzvf node-v0.1.26.tar.gz
# cd node-v0.1.26
# ./configure --prefix=/usr/local
# make && make install
# rehash

Если у вас не установлен libexecinfo, то:

# cd /usr/ports/devel/libexecinfo
# make install

Использование

Потестим для начала сам node, для этого создайте файлик example.js со следующим содержимым:

var sys = require('sys');
sys.puts('Hello, people!');

И запустите этот файлик:

# node example.js

Если нет ошибок, то можете продолжить и завязать node с nginx. А если есть ошибки — пишите в комментарии, помогу.

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

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

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

php-fastcgi

У меня стоял Apache 2.2 и mod_php, так как Apache жрет не мало ресурсов, я решил постепенно переводить проекты на сервере на связку Nginx + PHP-FastCGI, а в качестве спаунера php-fpm.

Вкратце, что такое FastCGI и почему он лучше чем mod_php?

FastCGI это высокопроизводительный и масштабируемый интерфейс для взаимодействия web-сервера и приложений, дальнейшее развитие технологии CGI. Ознакомиться с более подробной информацией о FastCGI вы можете на официальном сайте или в Википедии.

Основное преимущество FastCGI в изолировании динамического языка от web-сервера. Например, запуск FastCGI процесса под пользователем, отличным от пользователя web-сервера, а также процесс может находиться в chroot'е, отличном от chroot'а web-сервера. Помимо всего прочего, эта технология позволяет запускать web-сервера и CGI процессы (теже php скрипты) на различных хостах, что улучшает масштабируемость и также способствует безопасности без существенной потери в производительности.

Ну а зачем нам php-fpm, если PHP и так поддерживает работу в режиме FastCGI?

php-fpm — это патч для PHP, для использования PHP как FastCGI процесса в высоконагруженных системах. Устраняет ряд проблем мешающих использовать PHP в режиме FastCGI. Андрей Нигматулин представил набор патчей php-fpm к PHP 4/5, устраняющих ряд проблем, которые мешают использовать PHP в режиме FastCGI на высоконагруженных системах.

Возможности php-fpm:

* Управление процессами. Возможность «плавно» останавливать и перезапускать php воркеры без потери запросов. Возможность плавно обновлять конфигурацию и binary без потери запросов;
* Ограничение ip адресов, с которых могут приходить запросы от web сервера;
* Динамическое количество процессов, в зависимости от нагрузки (TODO);
* Запуск воркеров с разными uid/gid/chroot/environment и разными php.ini опциями;
* Логирование stdout & stderr рабочих процессов;
* Аварийный перезапуск всех процессов при случайном разрушении shared memory opcode cache, если используется акселератор;
* Принудительное завершение подвисших процессов, если set_time_limit () не срабатывает (TODO);

http://php-fpm.org/wiki/What_is_PHP-FPM

Андрей Нигматулин / php-fpm / PHPConf 08 from Mihail Andreev on Vimeo.

Кстати, в видео я тоже поучаствовал, на 5-ой минуте и 20-ой секунде я там прохожу перед камерой в костюме и красной футболке... :D

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

надувные лодки из пвх