While there are pretty much use to run a project in standalone Passenger I'd rather run it with the web server of the production environment. My choice is Nginx. Not because of it's high load speed as I do not (yet) run any high visited websites or loaded applications, but I have found it's configuration simpler then Apache's. Yes, not modular, you cannot enable, disable some things in runtime, but hey I do not really need that either.
So basically I download the nginx source, extract it somewhere. Install the passenger gem. Then run this command:
rvmsudo passenger-install-nginx-module
If it finds every package installed - note that you might need libpcre3 and libpcre3-dev packages too on Ubuntu - then I choose the option 2 which will let me configure nginx further. When it asks for the extra arguments for configure I use these:
--prefix=/etc/nginx --user=www-data --group=www-data --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --with-cpu-opt=amd64 --without-http_userid_module --without-http_upstream_ip_hash_module --without-http_ssi_module --without-http_split_clients_module --without-http_scgi_module --without-http_proxy_module --without-http_geo_module --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --with-http_gzip_static_module --with-http_ssl_module --without-http_browser_module --without-http_limit_req_module --without-http_limit_zone_module --without-http_map_module --without-http_memcached_module --without-http_referer_module
Note I have --with-cpu-opt=amd64 enabled as my virtual machine can use my CPU directly, which is now a AMD Phenom X6.
So basically I download the nginx source, extract it somewhere. Install the passenger gem. Then run this command:
rvmsudo passenger-install-nginx-module
If it finds every package installed - note that you might need libpcre3 and libpcre3-dev packages too on Ubuntu - then I choose the option 2 which will let me configure nginx further. When it asks for the extra arguments for configure I use these:
--prefix=/etc/nginx --user=www-data --group=www-data --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --with-cpu-opt=amd64 --without-http_userid_module --without-http_upstream_ip_hash_module --without-http_ssi_module --without-http_split_clients_module --without-http_scgi_module --without-http_proxy_module --without-http_geo_module --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --with-http_gzip_static_module --with-http_ssl_module --without-http_browser_module --without-http_limit_req_module --without-http_limit_zone_module --without-http_map_module --without-http_memcached_module --without-http_referer_module
All done, let the compilation begin! When it's finished we are good to go to use nginx by it's command.
If you have questions feel free to ask in a comment!