I went through a tutorial http://craiccomputing.blogspot.com/2010/10/passenger-3-nginx-and-rvm-on-mac-os-x.html and everything was ok. There were no errors.
Nginx with Passenger support was successfully installed.
The Nginx configuration file (/opt/nginx/conf/nginx.conf)
must contain the correct configuration options in order for Phusion Passenger
to function correctly.
This installer has already modified the configuration file for you! The
following configuration snippet was inserted:
http {
...
passenger_root /home/alex/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.14;
passenger_ruby /home/alex/.rvm/wrappers/ruby-1.9.3-p194/ruby;
...
}
After you start Nginx, you are ready to deploy any number of Ruby on Rails
applications on Nginx.
However I can't start it.
alex@ubuntu:~$ sh -x /etc/init.d/nginx start
sh: 0: Can't open /etc/init.d/nginx
sudo /etc/init.d/nginx start
sudo: /etc/init.d/nginx: command not found
The directory opt/nginx
exists and there are files in it. Localhost:80
doesn't work either.
Any suggestions?
The usual way of installing a Rails + NGINX + Passenger + RVM setup usually involves nginx being placed in /opt/nginx, but it in fact doesn't create the init.d startup file. This blog post shows how you can easily grab one from Linode:
For posterity, here is the script from Linode:
One thing to look out for: if you've changed your nginx.pid location (defaults to /opt/nginx/log, I changed mine to /var/run), you'll need to change it in this file. Near the top, just declare it as a variable:
And replace anywhere that has the path to the pid with $PIDPATH. (Even if you're keeping the original path, this makes the script more readable).
The normal way to install nginx is via
apt-get
(or Synaptic or SW Center) and that doesn't put anything in/opt
, AFAIK. In that case, you can stop/start it by simply issuing:If your
nginx
installed itself in/opt
, I doubt it would have touched the/etc/init.d
directory...I recommend using the Brightbox PPA mentioned in the Brightbox Wiki. This enables all normal service handing like
service nginx start
or/etc/init.d/nginx start
out of the box.This works fine for me in precise (12.04 LTS).