Случайно нашел сайт , полистал и добавил в ридер. Давно хотел попробовать 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. А если есть ошибки — пишите в комментарии, помогу.
У меня стоял 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);
from on .
Кстати, в видео я тоже поучаствовал, на 5-ой минуте и 20-ой секунде я там прохожу перед камерой в костюме и красной футболке... :D
Всем привет, прошу вашей помощи с переводом мануала по PHP модулю IMagick. Не так давно я хотел своими усилиями перевести мануал по IMagick, но из-за нехватки времени никак не могу заставить себя перевести его до конца.
Мне помогало сообщество Pyha.ru, но у них тоже как видно не так много времени, возможно у моих читателей найдется больше желание и главное — время для этой цели.
Переводить можно тут , для этого необходимо всего лишь зарегистрироваться в вики и приступить к переводу.
Далее этот документ планируется перенести на страницы сообщества Pyha.ru, или вы можете посоветовать куда более подходящее место (например php.net), либо оставить все там же на моем wiki.
Заранее спасибо, по вопросам и предложениям — пишите в камменты!
Не так давно был анонсирован новый веб-сервер Tornado, написанный на Python, отличительной чертой которого являлась скорость работы и то что это не просто веб-сервер, а целый фреймворк.
Впервые я с ним познакомился на , а вскоре после этого прочел заметку и решил попробовать торнадо в действии!
На самом деле конфигурация «Nginx+Tornado+Django» позаимствована у заметки, ссылку на которую я привел выше, однако у меня та конфигурация не заработала, поэтому я выкладываю для себя и друзей свой конфиг.
После переустановки PHP 5.2.10 столкнулся я с такой проблемой как «linked list corrupt on efree () — heap corruption detected» при использовании библиотеки , а также «Segmentation fault» в CLI версии свежеустановленного PHP.
Ошибка «linked list corrupt on efree () — heap corruption detected» проявлялась только в одном месте, и связана была с DOM модулем, как мне казалось. До переустановки я не юзал phpQuery в продакшене, поэтому не мог сказать однозначно повлияла ли это переустановка, или так и было бы с ошибкой.
При запуске любого скрипта в CLI режиме, было нечто подобное:
php -f/www/script.php
Segmentation fault
Решение проблемы с Segmentation fault в CLI
Погуглив немного, не нашел ничего путного и запостил на Пыху топик о своей проблеме, пару дней мы думали по этой теме, предлагались разные решения и побороли в первый день «Segmentation fault» в CLI, путем упорядочивания PHP модулей (спасибо пользователю OFF), сейчас у меня так:
Решение оказалось совсем для меня не очевидным, во всем оказался виноват «Suhosin Patch», который нужен для обеспечения безопасности. Я просто переустановил PHP, но в этот раз отключил Suhosin.
В данный момент, я планирую включить снова Suhosin Patch, потомучто запускать тот злосчастный скрипт мне необходимо всего раз 3-6 месяцев, а за это время может возникнут патчи бага, либо найдется куда более продуктивное решение.