linux + rails + mysql +lighttpd + FCGI

step 1)安装ruby


下载源代码包到本地Linux主机,然后解压缩,进入该目录,进行配置,编译和安装:
tar xzvf ruby-1.8.6.tar.gz
cd ruby-1.8.6

./configure –prefix=/usr/local/ruby
make && make install

安装好以后,修改操作系统PATH路径,加入/usr/local/ruby/bin:
export PATH=/usr/local/ruby/bin:$PATH
将我们自己安装的ruby放在系统PATH前面,避免操作系统自带的ruby造成的干扰。

但是一旦系统重启,可能就没用了,所以将上面的设置放在/etc/profile中,便于对全局生效。

通过查看ruby -v看是否安装成功

 

 

step2)安装gem


在安装rails之前,要先安装rubygems。rubygems是ruby的在线包管理工具,可以从rubyforge下载rubygems:
http://rubyforge.org/projects/rubygems/
下载好源代码包,解压缩,安装:
tar xzvf rubygems-1.3.6.tgz
cd rubygems-1.3.6/
ruby setup.rb
通过查看gem -v看是否安装成功

 

 

step3)安装rails
gem install rails –y
这个过程会很慢,请耐心等待
通过查看rails -v看是否安装成功

 

 

step4) 安装Ruby的FCGI支持

由于ruby的fcgi支持库需要在编译的时候联接FCGI的系统库,因此我们需要先安装FCGI库,下载FCGI源代码发行包:
http://www.fastcgi.com/dist/
tar xzvf fcgi-2.4.0.tar.gz
cd fcgi-2.4.0
./configure --prefix=/usr/local/fcgi
make && make install

然后就可以安装ruby的fcgi支持库了,下载ruby-fcgi-0.8.7.tar.gz:
http://rubyforge.org/projects/fcgi/
tar xzvf ruby-fcgi-0.8.7.tar.gz
cd ruby-fcgi-0.8.7
ruby install.rb config -- --with-fcgi-include=/usr/local/fcgi/include --with-fcgi-lib=/usr/local/fcgi/lib
ruby install.rb setup
ruby install.rb install

 

 

step5)安装lighttpd

 

然后下载lighttpd:
http://www.lighttpd.net/download/
tar xzvf lighttpd-1.4.13.tar.gz
cd lighttpd-1.4.13
./configure --prefix=/usr/local/lighttpd

configure完毕以后,会给出一个激活的模块和没有激活模块的清单,可以检查一下,是否自己需要的模块都已经激活,在enable的模块中一定要有“mod_rewrite”这一项,否则重新检查pcre是否安装。然后编译安装:
make && make install

编译后配置:
cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpd
mkdir /etc/lighttpd
cp doc/lighttpd.conf /etc/lighttpd/lighttpd.conf

如果你的Linux是RedHat/CentOS,那么:
cp doc/rc.lighttpd.redhat /etc/init.d/lighttpd
如果你的Linux是SuSE,那么:
cp doc/rc.lighttpd /etc/init.d/lighttpd
其他Linux发行版本可以自行参考该文件内容进行修改。然后修改/etc/init.d/lighttpd,把
LIGHTTPD_BIN=/usr/sbin/lighttpd
改为
LIGHTTPD_BIN=/usr/local/lighttpd/sbin/lighttpd

此脚本用来控制lighttpd的启动关闭和重启:
/etc/init.d/lighttpd start
/etc/init.d/lighttpd stop
/etc/init.d/lighttpd restart

注意修改/etc/init.d/lighttpd中一行lighttpd="/usr/sbin/lighttpd"
改为lighttpd="/usr/local/lighttpd/sbin/lighttpd"
否则你用上面的脚本启动

虽然你还是可以用 /usr/local/lighttpd/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf这句来启动,但很不方便

 

 


step5)配置lighttpd
修改/etc/lighttpd/lighttpd.conf

5.1)server.modules
取消需要用到模块的注释,mod_rewrite,mod_access,mod_fastcgi,mod_simple_vhost,mod_cgi,mod_compress,mod_accesslog是一般需要用到的。

5.2)server.document-root, server.error-log,accesslog.filename需要指定相应的目录

5.3)用什么权限来运行lighttpd
server.username            = "nobody"
server.groupname           = "nobody"
从安全角度来说,不建议用root权限运行web server,可以自行指定普通用户权限。

5.4)静态文件压缩
compress.cache-dir         = "/tmp/lighttpd/cache/compress"
compress.filetype          = ("text/plain", "text/html","text/javascript","text/css")
可以指定某些静态资源类型使用压缩方式传输,节省带宽,对于大量AJAX应用来说,可以极大提高页面加载速度。

5.5)配置ruby on rails

最简单的配置如下:
$HTTP["host"] == "www.xxx.com" {
server.document-root = "/yourrails/public"
server.error-handler-404 = "/dispatch.fcgi"
fastcgi.server = (".fcgi" =>
    ("localhost" =>
      ("min-procs" => 10,
       "max-procs" => 10,
       "socket" => "/tmp/lighttpd/rails.socket",
       "bin-path" => "/yourrails/public/dispatch.fcgi",
       "bin-environment" => ("RAILS_ENV" => "production")
      )
    )
)
}
即由lighttpd启动10个FCGI进程,lighttpd和FCGI之间使用本机Unix Socket通信。

 


step 6)启动时可能遇到的问题
6.1) 注意"socket" 所对应的目录必须存在,否则报错
6.2) /public/dispatch.fcgi Permission denied,
这是由于用户没有执行dispatch.fcgi的权限,只要覆与当前用户权限就行
         cd /yourrails/public
         chmod 755 dispatch.fcgi

6.3)/public/dispatch.fcgi No such file or directory

这是由于没有找到ruby命令选成的

修改dispatch.fcgi文件,在第一行指定自己的可执行的ruby就可以了,比如我的ruby在/usr/local/ruby/bin/ruby,则把第一行修改为 #!/usr/local/ruby/bin/ruby

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,我可以为您介绍一下OAuth 2.0和OpenID Connect(OIDC)的基本概念和用法。 OAuth 2.0是一种授权框架,用于允许用户授权第三方应用访问其受保护的资源,而无需共享其凭据。它通过授权服务器颁发访问令牌来实现这一目的。OAuth 2.0的授权码流程是其中一种常见的授权方式。 OpenID Connect(OIDC)是在OAuth 2.0的基础上构建的身份验证协议。它允许用户使用他们在认证提***0和OpenID Connect,您可以使用现有的库或框架来简化开发过程。例如,您可以使用Ruby的OmniAuth库来实现与Yahoo! JAPAN的OAuth 2.0和OpenID Connect集成。 以下是使用OmniAuth和omniauth-yahoojp gem进行OAuth 2.0和OpenID Connect集成的基本步骤: 1. 在Gemfile中添加omniauth-yahoojp gem: ```ruby gem 'omniauth-yahoojp' ``` 2. 运行bundle install安装gem依赖项。 3. 在您的应用程序中配置OmniAuth: ```ruby Rails.application.config.middleware.use OmniAuth::Builder do provider :yahoojp, 'YOUR_CLIENT_ID', 'YOUR_CLIENT_SECRET' end ``` 请将YOUR_CLIENT_ID和YOUR_CLIENT_SECRET替换为您在Yahoo! JAPAN开发者门户上创建的应用程序的客户端ID和客户端密钥。 4. 创建一个回调路由来处理授权后的回调: ```ruby get '/auth/yahoojp/callback', to: 'sessions#create' ``` 请将'/auth/yahoojp/callback'替换为您希望处理回调的路径,并将'sessions#create'替换为您的应用程序中实际处理回调的控制器和动作。 5. 在控制器中处理回调: ```ruby class SessionsController < ApplicationController def create auth = request.env['omniauth.auth'] # 在这里处理授权后的逻辑 end end ``` 您可以从auth变量中获取有关用户的信息,例如用户的唯一标识符、姓名和电子邮件地址。 这是一个基本的OAuth 2.0和OpenID Connect集成示例。您可以根据您的应用程序需求进行进一步的定制和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值