文章选自:http://www.ruby-lang.org.cn/forums/viewthread.php?tid=1322
最近因为Rubyist项目的问题,需要一个地方来做演示。当然我们有自己的服务器,但是上面安装的是windows 2003 server,因为我还需要服务器支持asp.net。本来也可以开在国外的,但是想到演示空间经常需要更新,速度上可能还是不太理想,而且国内的服务器其实也已经配置好了支持rails运行的,目前采用的有两种方式,一种是Apache + FastCGI,而另外一种是使用mongrel运行,由防火墙转发请求。在我看来后面一种性能较好。
以前的项目都是我直接远程连接到服务器上操作的,因此也没有感到什么不便。这次要提供项目的演示空间,不可能提供远程管理权限,呵呵。这样不太方便。但是rake之类的功能就不能执行了,其实这也是我考虑的一个问题,如果程序免费发布了,不可能每个使用者都可以有权限在服务器上执行rake的,我们应该写一个页面,像传统的ASP/PHP那样的方式来执行数据库安装。
言归正传,martin要求我提供ssh或者telnet,ssh在windows上怎么弄我不知道,telnet倒是可以开,但是权限管理应该非常不好弄,至少在我管理使用windows server接近七年时间里没有使用过telnet server上面就可以看出来telnet server有多么的不普及了。看来 linux + ssh 才是最好的解决之道。本来rails推荐的生产环境也是*nix,支持较好,而我因为自己用的电脑无法使用windows的原因,最近对linux也有一点点的了解,网上的文章看多了,于是就产生了一个装个ubuntu server来提供支持的想法。
装操作系统倒不是什么难事,特别是对于ubuntu 这种比较智能的操作系统来说,有过几次安装desktop的经验,安装server版也是手到擒来。安装到后面的时候我选择了安装LAMP Server,系统就自己装上了apache 2.23及mysql 5, python 2.5,但是后来我想可能lighttpd的性能更好,而且现在都是在重装操作系统,干脆就弄个更好一点儿的吧。然后就想卸载apache2,sudo apt-get remove apache2,居然卸不了,呵呵,知识还是有限啊。没办法只好再重新安装一次了。这次我选择了只安装操作系统核心,要安装什么东西都由自己定制。聪明了吧。呵呵。
好,十多分钟后我得到了一个正常运行的,没有安装任何东西的ubuntu 7.04 server,首要的事情是改更新源。原来我一直是使用台湾那个源的,速度非常快,但是最近老是出现connection reset的错误,所以改而使用了国内lupa提供的源。
deb http://cn.archive.ubuntu.com/ubuntu feisty main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu feisty-security main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu feisty-updates main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu feisty-backports main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu feisty-proposed main restricted universe multiverse
deb-src http://cn.archive.ubuntu.com/ubuntu feisty main restricted universe multiverse
deb-src http://cn.archive.ubuntu.com/ubuntu feisty-security main restricted universe multiverse
deb-src http://cn.archive.ubuntu.com/ubuntu feisty-updates main restricted universe multiverse
deb-src http://cn.archive.ubuntu.com/ubuntu feisty-backports main restricted universe multiverse
deb-src http://cn.archive.ubuntu.com/ubuntu feisty-proposed main restricted universe multiverse
然后sudo apt-get update && sudo apt-get upgrade,等几分钟就更新完了。
现在下面正式开始安装之路,首先我们需要的是Ruby环境,源里面自还的比较旧,才1.8.2,现在都1.86了,我们自己编绎吧。先安装编绎环境:sudo apt-get install build-essential,然后去ruby的官方主页下载安装包:
wget ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.6.tar.gz
tar xzvf ruby-1.8.6.tar.gz
cd ruby-1.8.6
./configure
make
sudo make install
这里应该很顺利的通过,下一步就是安装rubygems,同样的原因,源里的版本不太匹配,还是自己编绎吧。
先下载:
wget http://rubyforge.org/frs/download.php/20989/rubygems-0.9.4.tgz
tar xzvf rubygems-0.9.4.tgz
cd rubygems-0.9.4
sudo ruby setup.rb
出错了。说找不到zlib. 我们得先安装zlib.
wget http://www.zlib.net/zlib-1.2.3.tar.gz
tar xzvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure
make
sudo make install
没问题,编绎通过。还需要rubyzlib。
wget http://www.blue.sky.or.jp/atelier/ruby/ruby-zlib-0.6.0.tar.gz
tar xzvf ruby-zlib-0.6.0.tar.gz
cd ruby-zlib-0.6.0
ruby extconf.rb
make
sudo make install
为了试验一下是否已经安装好,可以照以下步骤测试:
irb(main):001:0> require 'zlib'
=> true
这样就说明成功了。再运行rubygems的安装。
cd ../rubygems-0.9.4
sudo ruby setup.rb
成功了。
接下来就比较简单了。安装rails
sudo gem install rails --include-dependencies
这样ruby 和 rails都安装好了。可以运行一些命令来测试一下:irb, rake, ri, rails等。
下面来安装server.
数据库服务:
sudo apt-get install mysql-server phpmyadmin php5-cgi
本来想使用最新的lighttpd的,可是无奈能力有限,始终没有办法搞定编绎不通过的问题,只好使用源里的lighttpd 1.4.13了,特性少了些还能应付。将就一下吧。
sudo apt-get install lighttpd lighttpd-mod-mysql-vhost
这样就安装好了,现在要启用fastcgi.
sudo lighty-enable-mod fastcgi
这样就启动了fastcgi了。
先配置一下php看看fastcgi运行正常不。
sudo vim /etc/lighttpd/conf-enabled/10-fastcgi.conf
server.modules += ( "mod_fastcgi" )
## Start an FastCGI server for php4 (needs the php4-cgi package)
fastcgi.server = ( ".php" =>
((
"bin-path" => "/usr/bin/php5-cgi",
"socket" => "/tmp/php5-cgi.socket",
"max-procs" => 2,
"idle-timeout" => 20,
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "4",
"PHP_FCGI_MAX_REQUESTS" => "10000"
),
"bin-copy-environment" => (
"PATH", "SHELL", "USER"
),
"broken-scriptfilename" => "enable"
))
)
再在/var/www 下写个<?phpinfo();?>的文件命名为info.php,执行一下。呵呵,正常了。
试试rails工作不? 加段代码:
server.document-root = "/var/ror/dev/public"
server.error-handler-404 = "/dispatch.fcgi"
url.rewrite += ( "^/$" => "/index.html" )
url.rewrite += ( "^([^.]+)$" => "$1.html" )
fastcgi.server = (".fcgi" =>
("localhost" =>
("min-procs" => 1,
"max-procs" => 4,
"socket" => "/var/ror/dev/tmp/sockets/fcgi.socket-0",
"bin-path" => "/var/ror/dev/public/dispatch.fcgi",
"bin-environment" => ("RAILS_ENV" => "production")
)
)
)
配置好数据库连接后满怀信心的打开FF,却发现只给了我们一个500内部错误的页面,而且这页面看来还不是rails给出的,是属于lighttpd的内部出错页面。这可糟了。
开始检查:
sudo chown www-data.www-data /var/ror/dev -R
sudo chmod 777 /var/ror/dev/tmp /var/ror/dev/log /var/ror/dev/public
还是一样的错误,会不会是文件换行格式的问题呢 ?
vi打开文件,set ff=unix :wq全部保存过,还是有问题。
是不是要重新启动一下lighttpd?肯定是的。
sudo /etc/init.d/lighttpd restart
这下糟了,都启动不了了。
2007-07-04 22:32:53: (mod_fastcgi.c.998) execve failed for: /www/railsapp/mydoc/public/dispatch.fcgi No such file or directory
2007-07-04 22:32:53: (mod_fastcgi.c.1024) the fastcgi-backend /www/railsapp/mydoc/public/dispatch.fcgi failed to start:
2007-07-04 22:32:53: (mod_fastcgi.c.1028) child exited with status 2 /www/railsapp/mydoc/public/dispatch.fcgi
2007-07-04 22:32:53: (mod_fastcgi.c.1031) if you try do run PHP as FastCGI backend make sure you use the FastCGI enabled version.
You can find out if it is the right one by executing 'php -v' and it should display '(cgi-fcgi)' in the output, NOT (cgi) NOR (cli)
For more information check http://www.lighttpd.net/documentation/fastcgi.html#preparing-php-as-a-fastcgi-program
2007-07-04 22:32:53: (mod_fastcgi.c.1333) [ERROR]: spawning fcgi failed.
2007-07-04 22:32:53: (server.c.849) Configuration of plugins failed. Going down.
从网上查了下就知道了,这是dispatch.fcgi不存在或者没有执行权限。试试。
sudo chmod +x /var/ror/dev/public/dispatch.*
现在lighttpd可以正常重新启动了,可是还是显示错误的页面。我们还少了什么呢?看看error.log
sudo vim /var/log/lighttpd/error.log
大部分信息像下面这样的:
2007-09-15 19:06:09: (mod_fastcgi.c.1741) connect failed: Connection refused on unix:/var/ror/dev/tmp/sockets/fcgi.socket-0-3
2007-09-15 19:06:09: (mod_fastcgi.c.2852) backend died, we disable it for a 5 seconds and send the request to another backend instead: reconnects: 0 load: 1
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require': no such file to load -- fcgi (MissingSourceFile)
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
from /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/dependencies.rb:495:in `require'
from /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/dependencies.rb:342:in `new_constants_in'
from /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/dependencies.rb:495:in `require'
from /usr/local/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/fcgi_handler.rb:1
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:32:in `gem_original_require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:32:in `require'
from /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/dependencies.rb:495:in `require'
from /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/dependencies.rb:342:in `new_constants_in'
from /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/active_support/dependencies.rb:495:in `require'
from /var/ror/dev/public/dispatch.fcgi:22
对了,我们忘记了两件重要的事情, FCGI.搞清楚了就好办了。
FastCGI
wget http://www.fastcgi.com/dist/fcgi.tar.gz
tar zxvf fcgi-2.4.0.tar.gz
cd fcgi-2.4.0
sudo ./configure
sudo make
sudo make install
RubyFCGI
wget http://sugi.nemui.org/pub/ruby/fcgi/ruby-fcgi-0.8.6.tar.gz
tar zxvf ruby-fcgi-0.8.6.tar.gz
cd ruby-fcgi-0.8.6
sudo ruby install.rb config
sudo ruby install.rb setup
sudo ruby install.rb install
测试一下:
irb(main):001:0> require 'fcgi'
=> true
成功了,再重新启动一下lighttpd,成功启动。再看看网站,呵呵。可以正常运行了。
接下来装一下ssh和FTP就算完成了。
sudo apt-get install openssh-server vsftpd
sudo vim /etc/vsftpd.conf
启用本地帐户登录,写入,禁用匿名帐号就可以了。
由于需要安装的mysql版本是4.0的,懒得再编译了,所以,我索性直接从一台编译好的机器上scp过来用。居然能用,嘎嘎。
分享到:
相关推荐
首先,Apache、Nginx和LightTPD是三种流行的Web服务器软件。Apache是最广泛使用的开源HTTP服务器,具有丰富的模块和广泛的社区支持。Nginx以其高性能和低内存占用著称,尤其适合高并发场景。LightTPD则是一款轻量级...
该程序包集成最新的Apache+Nginx+LightTPD+PHP+MySQL+phpMyAdmin+Zend Optimizer+Zend Loader,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。该程序绿色小巧简易迷你仅有35M,有专门的控制面板。...
这里我们关注的是"lighttpd+mysql+php"的集成安装,特别适用于轻量级服务器需求,例如开发或测试环境。这个压缩包文件集合包含了在CentOS7系统上成功安装和测试的所有组件,包括lighttpd(一个轻量级HTTP服务器)、...
Varnish和Lighttpd是两个非常重要的开源Web服务器软件,它们在Web性能优化和负载均衡方面发挥着关键作用。Varnish作为一个高性能的HTTP缓存代理,常用于减轻后端服务器的压力,提高网站响应速度;而Lighttpd则是一款...
该程序包集成最新的Apache+Nginx+LightTPD+PHP+MySQL+phpMyAdmin+Zend Optimizer+Zend Loader,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。该程序绿色小巧简易迷你仅有35M,有专门的控制面板。...
这篇性能对比测试报告主要关注了三个主流的Web服务器——Apache、Nginx和Lighttpd在性能上的差异。测试的目的是为了评估这三款服务器在实际应用中的性能表现,为未来的项目选择提供依据。测试环境是在一台配置为8核...
在安卓中创建 lighttpd+mysql+php的服务器_almp7.zip
【搭建lighttpd+cgi的代码包】 在Web服务器领域,lighttpd是一个轻量级且高效的HTTP服务器,因其低内存占用和高速度而受到欢迎。CGI(Common Gateway Interface)则是一种标准,允许Web服务器执行外部程序并返回...
如何在ubuntu上实现lighttpd 1、下载mongoose使用mongoose中的example中的websocket_chat,实现websocket 2、websocket_chat源码下载路径 官网:https://cesanta.com 论坛:...
在本文中,我们将深入探讨如何在Ubuntu操作系统上配置Lighttpd服务器与Webpy框架的集成,利用FastCGI技术实现高效动态网页服务。首先,确保已经安装了必要的组件,包括Lighttpd服务器、Webpy框架以及FastCGI支持。 ...
在veket 上安装 php mysql 环境,随身的 php 服务器,php 5.2 + mysql 5.1。 veket 5.27 + veket 5.30测试通过,其他自测 直接双击 pet 包安装 安装后 shell 执行 "/etc/init.d/mysql start" 启动数据库 "/etc/...
phpLight 2014 是网上首套LightTPD+PHP集成包,集成最新Lighttpd+PHP+MySQL+SQL-Front+Zend Guard Loader+XCache。纯绿色,安装后无需再配置。支持系统服务和非服务两种启动方式,自由切换。一次性安装无需再安装,...
### 在 Ubuntu 15.04/CentOS 7 中安装 Lighttpd Web 服务器的知识点详解 #### 一、Lighttpd 概述 **Lighttpd** 是一款轻量级、开源的Web服务器软件,它以其高效、低资源消耗和强大的功能集而闻名。与传统的Web...
本教程旨在指导读者在Openwrt系统中架设Lighttpd+PhP5+MYSQL环境,实现Web服务器搭建。以下是相关知识点的详细解释: 一、硬件准备 * 路由器:需要一台路由器,内存至少64M,推荐128M以上。 * 优盘:需要一个优盘...
该程序包集成最新的Apache+Nginx+LightTPD+PHP+MySQL+phpMyAdmin+Zend Optimizer+Zend Loader,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。该程序绿色小巧简易迷你仅有35M,有专门的控制面板。...
《lighttpd-1.4.45:轻量级Web服务器的魅力解析》 lighttpd,这个名字在Web服务器领域中或许不如Apache或Nginx那样耳熟能详,但其独特的轻量级特性和高效性能,使得它在特定场景下成为理想的解决方案。lighttpd-...
2. 此为Nginx+PHP方案,需要apache+php方案的请到www.phpStudy.net下载phpStudy,Lighttpd+PHP方案下载phpLight。 3. 重装系统后或相关服务丢失时,只需要点一下『运行模式-应用』即可,更改路径自动启动。 4. 可...
在安装Lighttpd之前,为了安全考虑,我们需要创建一个新的用户和组,用于运行Lighttpd服务。可以使用以下命令创建: ``` sudo useradd -r -s /sbin/nologin lighttpd sudo groupadd lighttpd ``` 1.2 开始安装...
Lighttpd是一款轻量级的Web服务器,常用于小型或者负载较低的网站,因其低内存占用和高效的性能而受到喜爱。在本压缩包中,我们重点关注`lighttpd.conf`配置文件以及用于控制Web服务器启动和停止的脚本。下面我们将...
集成最新Lighttpd+PHP+MySQL+SQL-Front+Zend Guard Loader+XCache。 纯绿色,安装后无需再配置。支持系统服务和非服务两种启动方式,自由切换。 一次性安装无需再安装,即使重做系统后亦可使用,直接点启动即可。 ...