вторник, ноября 29, 2011

Installing passenger+nginx from FreeBSD ports tree

I found old article explaining how to install passenger with nginx on FreeBSD.  Since 9 of January 2010 after this commit it is very simply.

The first step is install nginx with passenger support module. You may choose stable or development version of nginx.


# cd /usr/ports/www/nginx && make config


Step down, find and choose PASSENGER_MODULE option for third-party passenger module,
press OK button and type


# make build install clean


Next step is install www/rubygem-passenger for nginx.


# cd /usr/ports/www/rubygem-passenger && make config

unselect APACHEPORT, then step down and select NGINXPORT.


# make build install clean

Thats all, installation complete.

Add following line to you /etc/rc.conf:

nginx_enable="YES"


Write following configuration file for nginx, i.e. nginx.conf and put it into /usr/local/etc/nginx directory.




worker_process 1;


events {
    worker_connections 1024;
}


http {
    include          mime.types;
    default_type  application/octet-stream;


    sendfile         on;


    passenger_root  /usr/local/lib/ruby/gems/1.9/gems/passenger-3.0.11;
    passenger_ruby  /usr/local/bin/ruby;
    passenger_default_user www;


    server {
        listen      127.0.0.1:80;
        server_name localhost;


        root /usr/local/lib/ruby/gems/1.9/gems/passenger-3.0.11/test/stub/rack/public;
        passenger_enabled on;
        passenger_use_global_queue on;
    }
}


Save configuration file and start nginx.


# /usr/local/etc/rc.d/nginx start


Here is simple request and the answer from your RoR server:

$ telnet 127.0.0.1 80
GET / HTTP/1.0


HTTP/1.1 200 OK
Content-Type: text/html
Connection: close
Status: 200
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.11
Server: nginx/1.0.10 + Phusion Passenger 3.0.11 (mod_rails/mod_rack)


hello worldConnection close by foreign host.



Also, after successfull start nginx and first request you may find following porcesses.



% ps auxww | grep -i passenger
root       72784   0,0  0,1  28112   2932  ??  Is   12:25      0:00,01 PassengerWatchdog
root       72786   0,0  0,1  51704   5224  ??  I    12:25      0:00,04 PassengerHelperAgent
root       72790   0,0  0,2  51924   9764  ??  I    12:25      0:00,06 ruby: Passenger spawn server (ruby)
nobody     72791   0,0  0,1  32476   4500  ??  I    12:25      0:00,01 PassengerLoggingAgent
www        72807   0,0  0,3  56040  11124  ??  I    12:26      0:00,03 ruby: Passenger ApplicationSpawner: /usr/local/lib/ruby/gems/1.9/gems/passenger-3.0.11/test/stub/rack (ruby)
www        72809   0,0  0,3  56064  11180  ??  I    12:26      0:00,00 ruby: Rack: /usr/local/lib/ruby/gems/1.9/gems/passenger-3.0.11/test/stub/rack (ruby)





четверг, ноября 03, 2011

FreeBSD9 & ThinkPad X1. Видеокарта

Как я уже писал ранее, текущий релиз не поддерживает свежатину от Intel из коробки.  Однако, существует проект под эгидой FreeBSD Foundation, который позволит в ближайшем будущем воспользоваться всеми благами цивилизации: Константин Белоусов продолжает точить ядро FreeBSD.

Я установил текущий патч для 9.0-RC1 и пересобрал ядро.

Перефразируя известных писателей и лично от себя хочется добавить:
- Пилите, Костя, пилите!

FreeBSD9 & ThinkPad X1. Камера

В лаптопе есть HD-камера.


% more /var/run/dmesg.boot | grep ugen | grep Chicony
ugen0.5: <Chicony Electronics Co., Ltd.> at usbus0

Устанавливаем порт multimedia/webcam, который установит multimedia/cuse4bsd. Ганс Петтер Селаски потрудился на славу: загрузка cuse4bsd.ko, рестарт /etc/rc.d/devd, и pwcview показывает автопортрет. 
Добавим пару строк конфигурации:
# echo "webcamd_enable=\"YES\"" >> /etc/rc.conf
# echo "cuse4bsd_load=\"YES\"" >> /boot/loader.conf

Изменяем разрешения для /dev/video0, на, не побоюсь этого слова, 666, добавляем себя в группу webcamd, перезапускаем skype. Всё работает!    

вторник, ноября 01, 2011

FreeBSD9 & ThinkPad X1. Продолжение

Собрано изрядно облегчённое ядро, практически все драйверы загружаются модулями.
Это было сделано с двумя целями: опробовать suspend/resume; снижение энергопотребления и увеличения срока мобильности. Вторая задача внятно описана Александром Мотиным в документе Tuning Power Consumption.

Тривиальный патч для поддержки ACPI модуля acpi_ibm(4).
--- /sys/dev/acpi_support/acpi_ibm.c.orig       2011-10-31 20:39:06.000000000 +0400
+++ /sys/dev/acpi_support/acpi_ibm.c    2011-10-31 20:39:54.000000000 +0400
@@ -290,7 +298,7 @@
 DRIVER_MODULE(acpi_ibm, acpi, acpi_ibm_driver, acpi_ibm_devclass,
              0, 0);
 MODULE_DEPEND(acpi_ibm, acpi, 1, 1, 1);
-static char    *ibm_ids[] = {"IBM0068", NULL};
+static char    *ibm_ids[] = {"IBM0068", "LEN0068", NULL};

 static void
 ibm_led(void *softc, int onoff)

После применения патча, пересборки acpi_ibm.ko и последующей загрузки модуля получаем:


acpi_ibm0: on acpi0

Режим сна (suspend) S3 частично не работает: система просыпается и доступна по сети, но не включается экран.