===========================安装nginx + passenger=================
ps: nginx是WEB服务器,passenger是应用服务器。
安装passenger:
gem install passenger
通过passenger以依赖安装的方式安装nginx:
sudo passenger-install-nginx-modul
如果是通过rvm 方式安装的Ruby的话,则需要加上rvm前缀:
rvmsudo passenger-install-nginx-modul
ps: 在linux系统中需要安装openssl and curl and curl-config.
ps: 其实我感觉不用rvm也可以的,我的就没问题。
安装时第一步选第3项,二步默认,第三步(大约)时有两个选项,提示你系统中没有安装nginx,是否需要下载,选择1下载.
后面会提示你输入安装nginx的前缀目录,默认是/opt/nginx.之所以前面需要sudo 就是这个原因了。
等待下载完成。
--------
安装完成后的配置:
配置文件 /opt/nginx/conf/nginx.conf
1.修改运行的用户。
现在启动nginx还会报nobody无法取得某些目录的写入权限。因为nginx默认为nobody启动的。可以有两个方法:
1.1、 将应用和应用目录下所有文件夹和文件都置为权限777。执行 chmod 777 –R 应用目录
1.2、 将nginx的启动用户设置为具有操作应用目录的用户。如root(不建议)或者用户本身。具体做法是更改/opt/nginx/conf/nginx.conf第一行。user 用户名 组名,比如
我的用户名为 abc,则:
user abc;
2.修改passenger的访问路径。
passenger_root /home/wzh/.rvm/gems/ruby-2.2.1/gems/passenger-5.0.28;
passenger_ruby /home/wzh/.rvm/gems/ruby-2.2.1/wrappers/ruby;
ps: 如果你也是用的rvm的话,那应该和我差不多。
ps: 单独安装的ruby会怎么样不清楚,但我的ruby是用rvm安装的,我在安装passenger-install-nginx-module 时使用了rvm(请参考前面),系统已经自动设置好了。
3.修改nginx的web server的配置。
server {
#服务器访问端口
listen 80;
#服务器访问地址。推荐使用127.0.0.1
server_name localhost;
#charset koi8-r;
#修改为
charset utf-8;
#access_log logs/host.access.log main;
location / {
#root html;
#修改为
root /home/wzh/project/hua/public;
index index.html index.htm;
#应该是指是否启用passenger吧,不清楚。反正使用passenger依赖安装的方式是默认启用的。
#passenger_enabled on;
#rails的运行模式,默认为development
#rails_env production;
}
------启动服务
一,单独启动passenger。在Rails应用目录中,使用
passenger start
启动。由于这里只是单独使用passenger,所以需要这样,如果使用了nginx的话,可能就不需要特别到rails application 目录中启动了。
ps: 此方式经过测试,可行。
启动nginx:
sudo /opt/nginx/sbin/nginx
如果没有任何提示这表示启动正常,可以通过上面的[server_name]:[listen] 访问。
重启nginx:
sudo /opt/nginx/sbin/nginx -s reload