启用EPEL
sudo yum install -y yum-utils
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-$(< /etc/redhat-release tr -dc '0-9.'|cut -d \. -f1).noarch.rpm
sudo yum-config-manager --enable epel
sudo yum clean all && sudo yum update -y
处理常见的会导致安装失败的问题
# 确保 curl 和 nss/openssl是最新的以用来和repo通信
#(大约是这个意思,原文是Ensure curl and nss/openssl are sufficiently up-to-date to talk to the repo)
#如果以前没有更新,这个会很慢
sudo yum update -y
date
# 如果输出的日期是错误的,按照以下命令安装ntp
sudo yum install -y ntp
sudo chkconfig ntpd on
sudo ntpdate pool.ntp.org
sudo service ntpd start
安装Passenger包
# 安装依赖
sudo yum install -y pygpgme curl
# 添加passenger的EL7 Yum存储库
sudo curl --fail -sSLo /etc/yum.repos.d/passenger.repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo
# 安装passenger
#本过程会安装nginx,如果已经安装过,则会添加passenger模块
sudo yum install -y nginx passenger || sudo yum-config-manager --enable cr && sudo yum install -y nginx passenger
启用Passenger Nginx模块并重新启动Nginx
编辑/etc/nginx/conf.d/passenger.conf,取消注释passenger_root,passenger_ruby和passenger_instance_registry_dir。例如,您可能会看到
#passenger_root /some-filename/locations.ini;
#passenger_ruby /usr/bin/ruby;
#passenger_instance_registry_dir /var/run/passenger-instreg;
修改为
passenger_root /some-filename/locations.ini;
passenger_ruby /usr/bin/ruby;
passenger_instance_registry_dir /var/run/passenger-instreg;
如果文件中没有上述内容,那么需要你自行插入,passenger_instance_registry_dir的值固定,passenger_root的值可以用以下命令获取
$ passenger-config --root
/some-filename/locations.ini
配置完成的内容如下
passenger_root /some-filename/locations.ini ;
passenger_instance_registry_dir /var/run/passenger-instreg;
passenger_ruby /usr/bin/ruby;
重启Nginx
$ sudo service nginx restart
或者sudo nginx -s reload
检查安装
安装完成后,请运行验证安装sudo /usr/bin/passenger-config validate-install
$ sudo /usr/bin/passenger-config validate-install
所有检查都应该通过。如果没有通过任何检查,请按照屏幕上的建议进行操作。
最后,检查Nginx是否已启动Passenger核心流程。跑sudo /usr/sbin/passenger-memory-stats。您应该看到Nginx进程以及Passenger进程。如
$ sudo /usr/sbin/passenger-memory-stats
Version: 5.0.8
Date : 2015-05-28 08:46:20 +0200
...
---------- Nginx processes ----------
PID PPID VMSize Private Name
-------------------------------------
12443 4814 60.8 MB 0.2 MB nginx: master process /usr/sbin/nginx
12538 12443 64.9 MB 5.0 MB nginx: worker process
### Processes: 3
### Total private dirty RSS: 5.56 MB
----- Passenger processes ------
PID VMSize Private Name
--------------------------------
12517 83.2 MB 0.6 MB PassengerAgent watchdog
12520 266.0 MB 3.4 MB PassengerAgent server
12531 149.5 MB 1.4 MB PassengerAgent logger
...
...