- 浏览: 4821978 次
- 性别:
- 来自: 上海
博客专栏
-
robbin谈管理
浏览量:137099
文章分类
最新评论
-
xly1981:
领导者是团队的灵魂。深入一线的过程,包括代码review,能帮 ...
robbin谈管理:改造团队的经验(2) -
jiehuangwei:
像这种总结比较性的ppt文档可以多发啊
Web并发模型粗浅探讨 -
linux1308:
看完学习到了很多东西,感谢推荐!
推荐一篇很好的RoR部署方案性能评测 -
zweite:
直接对搜索的结果进行缓存是不是会更快一点呢
漫谈应用缓存的命中率问题 -
kaogua:
现在已经是ruby2.0了, 不知道这个的效率是怎么样的, 是 ...
Ruby作为服务器端应用已经成熟了
在
Linux
平台上安装和配置
Ruby on Rails
详解
ruby on rails推荐的生产运行环境是Linux/FreeBSD/Unix,即Unix系列的操作系统,采用lighttpd+FCGI的解决方案。以下我将以Linux操作系统,lighttpd+FCGI,MySQL数据库为例,从源代码编译安装开始讲解。
在安装之前,应该确认Linux操作系统已经安装好gcc编译器,否则请用Linux安装光盘先行安装gcc编译器:
gcc –v
如能返回gcc版本号,则gcc正确安装。
一、安装
Ruby
解析器
一些Linux发行版本,MacOSX操作系统都自带Ruby解析器,但是我仍然建议自行下载ruby源代码编译安装。因为一方面可以自己定制ruby安装的路径,另一方面可以在编译过程中自行添加更多的特性。
ruby的源代码可以从Ruby官方网站下载:
下载源代码包到本地Linux主机,然后解压缩,进入该目录,进行配置,编译和安装:
tar xzvf ruby-1.8.5.tar.gz
cd ruby-1.8.5
./configure –prefix=/usr/local/ruby
make && make install
如果想浏览所有的configure参数,可以:
./configure –help |more
如果不定制安装的目录,默认将安装到/usr/local目录下面。然而我建议自行定制一个ruby的安装目录,例如/usr/local/ruby,这样便于以后的升级,不会和操作系统其他软件混在一起。
安装好以后,修改操作系统PATH路径,加入/usr/local/ruby/bin:
export PATH=/usr/local/ruby/bin:$PATH
将我们自己安装的ruby放在系统PATH前面,避免操作系统自带的ruby造成的干扰。在Linux上,一般将设置放在/etc/profile中,便于对全局生效。
二、安装
ruby on rails
在安装rails之前,要先安装rubygems。rubygems是ruby的在线包管理工具,可以从rubyforge下载rubygems:
下载好源代码包,解压缩,安装:
tar xzvf rubygems-0.9.0.tgz
cd rubygems-0.9.0/
ruby setup.rb
然后就可以安装rails了,在确认服务器已经连接互联网的情况下执行:
gem install rails –y
即通过gem从rubyforge网站下载rails所有依赖包安装。
安装好rails以后,可以执行:
rails –v
确认一下rails的版本。
三、安装
ruby
的数据库适配器
rails发行包中已经自带纯ruby的MySQL数据库适配器,然而对于生产环境来说,我们仍然应该下载安装C版本的数据库适配器,以达到更好的性能。下载mysql-ruby-2.7.3.tar.gz:
tar xzvf mysql-ruby-2.7.3.tar.gz
cd mysql-ruby-2.7.3
ruby extconf.rb --with-mysql-dir=/opt/mysql5
make && make install
注意--with-mysql-dir应该指向MySQL数据库的安装路径,如果数据库服务器和Web服务器不在同一台机器上,那么Web服务器上也必须安装MySQL软件,因为ruby的C版本MySQL适配器需要在编译的时候联接MySQL的系统库。
四、安装
Ruby
的
FCGI
支持
由于ruby的fcgi支持库需要在编译的时候联接FCGI的系统库,因此我们需要先安装FCGI库,下载FCGI源代码发行包:
tar xzvf fcgi-2.4.0.tar.gz
cd fcgi-2.4.0
./configure --prefix=/usr/local/fcgi
make && make install
同样,将fcgi安装在自己指定的目录下,而不是默认的/usr/local,避免多个软件混在一起。
然后就可以安装ruby的fcgi支持库了,下载ruby-fcgi-0.8.7.tar.gz:
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
五、安装
lighttpd Web Server
安装
Lighttpd
在安装lighttpd之前,应该确认操作系统已经安装pcre,即Perl兼容的规则表达式库:
rpm –qa |grep pcre
如果没有,请从Linux安装光盘里面安装。
然后下载lighttpd:
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是ubuntu,那么需要自己创建启动脚本,lighttpd官方wiki上面已经给出来该脚本,地址在:
其他Linux发行版本可以自行参考该文件内容进行修改,或者自己写一个控制脚本,也不过举手之劳:
#!/bin/sh case "$1" in start) /usr/local/lighttpd/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf > /dev/null 2>&1 ;; stop) killall lighttpd ;; restart) $0 stop sleep 1 $0 start ;; *) echo "Usage: lighttpd.sh {start|stop|restart}" ;; esac exit 0
然后修改/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
如果你希望服务器启动的时候就启动lighttpd,那么:
chkconfig lighttpd on
这样lighttpd就安装好了,接下来需要配置lighttpd。
配置
Lighttpd
修改/etc/lighttpd/lighttpd.conf
1)server.modules
取消需要用到模块的注释,mod_rewrite,mod_access,mod_fastcgi,mod_simple_vhost,mod_cgi,mod_compress,mod_accesslog是一般需要用到的。
2)server.document-root, server.error-log,accesslog.filename需要指定相应的目录
3)用什么权限来运行lighttpd
server.username = "nobody"
server.groupname = "nobody"
从安全角度来说,不建议用root权限运行web server,可以自行指定普通用户权限。
4)静态文件压缩
compress.cache-dir = "/tmp/lighttpd/cache/compress"
compress.filetype = ("text/plain", "text/html","text/javascript","text/css")
可以指定某些静态资源类型使用压缩方式传输,节省带宽,对于大量AJAX应用来说,可以极大提高页面加载速度。
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/socket/rails.socket",
"bin-path" => "/yourrails/public/dispatch.fcgi",
"bin-environment" => ("RAILS_ENV" => "production")
)
)
)
}
即由lighttpd启动10个FCGI进程,lighttpd和FCGI之间使用本机Unix Socket通信。
Lighttpd的FAQ:无法启动Ruby on Rails
FastCGI的启动脚本位于Rails应用目录下面public/dispatch.fcgi,如果无法启动Lighttpd,报告FastCGI错误,你可以尝试着手工运行该脚本cd public && ./dispatch.fcgi,看看是否可以运行。一般来说,很多人都是在Windows下面创建Rails项目,导致dispatch.fcgi脚本的ruby运行路径指向windows下面的ruby,部署到Linux上面就无法运行了,另外一方面Windows上面创建的Rails项目在Linux上面dispatch.fcgi没有可执行权限,所以也需要授予可执行权限。
六、安装
ImageMagick
和
RMagic
RMagic是ruby处理图片需要用到的库,很多ruby应用由于都涉及图片处理的功能,往往需要依赖RMagic,但安装ImageMagick和RMagic相当烦琐,需要特别的说明。
安装
ImageMagick
ImageMagick是用C语言实现的图形处理库,有Unix版本和Windows版本。对于Unix版本来说,安装比较麻烦些,另外不建议安装ImageMagick二进制版本,往往会导致缺少某些图片处理功能,导致RMagic安装失败。下载ImageMagick源代码,解压缩,配置:
tar xzvf ImageMagick-6.2.9-0.tar.gz
cd tar xzvf ImageMagick-6.2.9
./configure --prefix=/usr/local/ImageMagick
观察配置后给出来的支持图形格式,看看该图形格式支持是否是yes,如果不是,那么必须先安装该图形格式的本地库。例如,你应该检查是否已经安装如下rpm包:
rpm –qa |grep libpng
rpm –qa |grep libpng-devel
rpm –qa |grep libjpeg
rpm –qa |grep gd-devel
如果你希望支持tiff格式,还应该检查
rpm –qa |grep libtiff
如果没有安装,那么在Linux安装光盘找到相应rpm包安装上,再次configure直到确认需要的图形格式全部支持为止,然后编译安装:
make && make install
由于ImageMagic被安装在我们自行指定的/usr/local/ImageMagick,后面安装RMagic会找不到需要用到的ImageMagic的命令和库,因此需要配置一下操作系统:
编辑/etc/profile里面的PATH环境变量,在最后面加入:
export PATH=/usr/local/ruby/bin:/usr/local/ImageMagick/bin:$PATH
编辑/etc/ld.so.conf,加入:
/usr/local/ImageMagick/lib
执行命令:
ldconfig
将ImageMagick的库加入系统联接库
然后注销当前用户重新登录,便于环境变量修改生效,执行:
convert logo: logo.gif
看是否正确生成一个logo.gif的图片文件。
安装
RMagic
在rubyfoge上面下载RMagic的源代码发行包,不要下载gem包,然后解压缩编译:
./configure
make && make install
如果配置和编译过程没有报错,即大功告成。
对于MacOSX来说,安装RMagic以上步骤会出错,请参考:
总体来说,ImageMagick和RMagic的安装很容易出错,安装起来比较困难,如果碰到无法解决的问题,可以通过Google寻求解决办法。
如果你在安装过程当中,遇到了什么问题,请看:Lighttpd和RoR安装配置的疑难解答
评论
52 楼
lhw891104
2012-04-13
看不懂啊啊 看不懂啊啊
51 楼
carlosbdw
2007-07-22
安装 RMagick的时候出现如下错误:
configure:2471: checking for InitializeMagick in -lMagick
configure:2501: gcc -o conftest -I/usr/local/ImageMagick/include -L/usr/local/ImageMagick/lib conftest.c -l
Magick -lMagick -lz -lpthread -lm -lpthread -lWand -lMagick >&5
/usr/local/ImageMagick/lib/libMagick.so: undefined reference to `GOMP_parallel_end'
/usr/local/ImageMagick/lib/libMagick.so: undefined reference to `omp_get_num_threads'
/usr/local/ImageMagick/lib/libMagick.so: undefined reference to `GOMP_parallel_start'
/usr/local/ImageMagick/lib/libMagick.so: undefined reference to `omp_get_thread_num'
collect2: ld returned 1 exit status
configure:2507: $? = 1
configure: failed program was:
| /* confdefs.h. */
|
| #define PACKAGE_NAME "RMagick"
| #define PACKAGE_TARNAME "RMagick-1.15.7.tar.gz"
| #define PACKAGE_VERSION "1.15.7"
| #define PACKAGE_STRING "RMagick 1.15.7"
| #define PACKAGE_BUGREPORT "rmagick@rubyforge.org"
| /* end confdefs.h. */
|
| /* Override any gcc2 internal prototype to avoid an error. */
| #ifdef __cplusplus
| extern "C"
| #endif
| /* We use char because int might match the return type of a gcc2
| builtin and then its argument prototype would still apply. */
| char InitializeMagick ();
| int
| main ()
这是什么原因呢?谢谢!
configure:2471: checking for InitializeMagick in -lMagick
configure:2501: gcc -o conftest -I/usr/local/ImageMagick/include -L/usr/local/ImageMagick/lib conftest.c -l
Magick -lMagick -lz -lpthread -lm -lpthread -lWand -lMagick >&5
/usr/local/ImageMagick/lib/libMagick.so: undefined reference to `GOMP_parallel_end'
/usr/local/ImageMagick/lib/libMagick.so: undefined reference to `omp_get_num_threads'
/usr/local/ImageMagick/lib/libMagick.so: undefined reference to `GOMP_parallel_start'
/usr/local/ImageMagick/lib/libMagick.so: undefined reference to `omp_get_thread_num'
collect2: ld returned 1 exit status
configure:2507: $? = 1
configure: failed program was:
| /* confdefs.h. */
|
| #define PACKAGE_NAME "RMagick"
| #define PACKAGE_TARNAME "RMagick-1.15.7.tar.gz"
| #define PACKAGE_VERSION "1.15.7"
| #define PACKAGE_STRING "RMagick 1.15.7"
| #define PACKAGE_BUGREPORT "rmagick@rubyforge.org"
| /* end confdefs.h. */
|
| /* Override any gcc2 internal prototype to avoid an error. */
| #ifdef __cplusplus
| extern "C"
| #endif
| /* We use char because int might match the return type of a gcc2
| builtin and then its argument prototype would still apply. */
| char InitializeMagick ();
| int
| main ()
这是什么原因呢?谢谢!
50 楼
carlosbdw
2007-07-22
apolloshu 写道
在安装RMagick的时候遇上
configure: error: Cant install RMagick. Cant find magick-config or Graphics-magick-config program.
这个到底是怎么回事啊
configure: error: Cant install RMagick. Cant find magick-config or Graphics-magick-config program.
这个到底是怎么回事啊
centos上按照 本文安装也出现同样问题。
49 楼
carlosbdw
2007-07-22
cd tar xzvf ImageMagick-6.2.9
似乎有些笔误
似乎有些笔误
48 楼
carlosbdw
2007-07-22
robbin 写道
/etc/lighttpd/lighttpd.conf
请问
server.error-handler-404 = "/dispatch.fcgi"
"socket" => "/tmp/lighttpd/socket/rails.socket",
"bin-path" => "/yourrails/public/dispatch.fcgi",
这些文件都需要自己建好吗?
47 楼
carlosbdw
2007-07-22
最简单的配置如下:
$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/socket/rails.socket",
"bin-path" => "/yourrails/public/dispatch.fcgi",
"bin-environment" => ("RAILS_ENV" => "production")
)
)
)
}
这一段是自己新建的吗?
原文件中:
server.document-root = "/www/pages/" 要注释掉吗?
另外不是很清楚yourrails是指哪里?
$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/socket/rails.socket",
"bin-path" => "/yourrails/public/dispatch.fcgi",
"bin-environment" => ("RAILS_ENV" => "production")
)
)
)
}
这一段是自己新建的吗?
原文件中:
server.document-root = "/www/pages/" 要注释掉吗?
另外不是很清楚yourrails是指哪里?
46 楼
carlosbdw
2007-07-22
liyu212 写道
编译mysql-ruby 是提示找不到mysql.o 文件??
我也是啊!
ruby extconf.rb --with-mysql-dir=/opt/mysql5
make && make install
注意--with-mysql-dir应该指向MySQL数据库的安装路径
robin的mysql路径是:/opt/mysql5
我的mysql是yum -y install mysql-server 安装的,那么这个路径应该是哪里呢?
谢谢!
45 楼
liyu212
2007-07-20
安装ruby-fcgi 出错
test@zte:~/ruby-fcgi-0.8.7$ sudo ruby install.rb config -- --with-fcgi-include=/usr/local/fcgi/include --with-fcgi-lib=/usr/local/fcgi/lib
---> lib
<--- lib
---> ext
---> ext/fcgi
/usr/bin/ruby1.8 /home/test/ruby-fcgi-0.8.7/ext/fcgi/extconf.rb --with-fcgi-include=/usr/local/fcgi/include --with-fcgi-lib=/usr/local/fcgi/lib
/home/test/ruby-fcgi-0.8.7/ext/fcgi/extconf.rb:1:in `require': no such file to load -- mkmf (LoadError)
from /home/test/ruby-fcgi-0.8.7/ext/fcgi/extconf.rb:1
install.rb:656:in `command': system("/usr/bin/ruby1.8" "/home/test/ruby-fcgi-0.8.7/ext/fcgi/extconf.rb" "--with-fcgi-include=/usr/local/fcgi/include" "--with-fcgi-lib=/usr/local/fcgi/lib") failed (RuntimeError)
from install.rb:661:in `ruby'
from install.rb:1237:in `extconf'
from install.rb:1233:in `config_dir_ext'
from install.rb:1498:in `__send__'
from install.rb:1498:in `traverse'
from install.rb:1515:in `dive_into'
from install.rb:1496:in `traverse'
from install.rb:1500:in `traverse'
... 9 levels...
from install.rb:827:in `__send__'
from install.rb:827:in `invoke'
from install.rb:774:in `invoke'
from install.rb:1544
test@zte:~/ruby-fcgi-0.8.7$ sudo ruby install.rb config -- --with-fcgi-include=/usr/local/fcgi/include --with-fcgi-lib=/usr/local/fcgi/lib
---> lib
<--- lib
---> ext
---> ext/fcgi
/usr/bin/ruby1.8 /home/test/ruby-fcgi-0.8.7/ext/fcgi/extconf.rb --with-fcgi-include=/usr/local/fcgi/include --with-fcgi-lib=/usr/local/fcgi/lib
/home/test/ruby-fcgi-0.8.7/ext/fcgi/extconf.rb:1:in `require': no such file to load -- mkmf (LoadError)
from /home/test/ruby-fcgi-0.8.7/ext/fcgi/extconf.rb:1
install.rb:656:in `command': system("/usr/bin/ruby1.8" "/home/test/ruby-fcgi-0.8.7/ext/fcgi/extconf.rb" "--with-fcgi-include=/usr/local/fcgi/include" "--with-fcgi-lib=/usr/local/fcgi/lib") failed (RuntimeError)
from install.rb:661:in `ruby'
from install.rb:1237:in `extconf'
from install.rb:1233:in `config_dir_ext'
from install.rb:1498:in `__send__'
from install.rb:1498:in `traverse'
from install.rb:1515:in `dive_into'
from install.rb:1496:in `traverse'
from install.rb:1500:in `traverse'
... 9 levels...
from install.rb:827:in `__send__'
from install.rb:827:in `invoke'
from install.rb:774:in `invoke'
from install.rb:1544
44 楼
liyu212
2007-07-20
编译mysql-ruby 是提示找不到mysql.o 文件??
43 楼
apolloshu
2007-07-19
在安装RMagick的时候遇上
configure: error: Cant install RMagick. Cant find magick-config or Graphics-magick-config program.
这个到底是怎么回事啊
configure: error: Cant install RMagick. Cant find magick-config or Graphics-magick-config program.
这个到底是怎么回事啊
42 楼
mineral
2007-07-04
debian sarge 3.1
ruby 1.8.6
lighttpd lighttpd-1.4.15
lighttpd 显示500错误页面的解决办法,但是查看日志又看不到任何错误,于是上网google
原来是忘记做一步了。
#find /usr/local/ -name fcgi.so -print
#echo "/usr/local/ruby/lib/ruby/site_ruby/1.8/i686-linux/fcgi.so" >> /etc/ld.so.conf
#ldconfig
再重启,就出来
#/etc/init.d/lighttpd start
Starting lighttpd2007-07-04 22:24:11: (mod_fastcgi.c.998) execve failed for: /www/railsapp/mydoc/public/dispatch.fcgi Permission denied
linux:/var/log# 2007-07-04 22:24:11: (mod_fastcgi.c.1024) the fastcgi-backend /www/railsapp/mydoc/public/dispatch.fcgi failed to start:
2007-07-04 22:24:11: (mod_fastcgi.c.1028) child exited with status 13 /www/railsapp/mydoc/public/dispatch.fcgi
2007-07-04 22:24:11: (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:24:11: (mod_fastcgi.c.1333) [ERROR]: spawning fcgi failed.
2007-07-04 22:24:11: (server.c.849) Configuration of plugins failed. Going down.
终于看到错误信息。剩下就是根据错误信息再去解决问题了,就好解决了。
原来是没有执行权限。
#chmod u+x /www/railsapp/mydoc/public/dispatch.fcgi
继续
#/etc/init.d/lighttpd start
又报下面错误:
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.
可是我的文件是存在的,而且也有执行权限了。继续google,找了一贴。http://trac.lighttpd.net/trac/ticket/1079
我想会不会我也有这个问题,一看,果然。
vi dispatch.fcgi
把第一行改成 #!/usr/bin/ruby
并且到/usr/bin下
#cd /usr/bin
#ln -s /usr/local/ruby/bin/ruby ruby
#ruby -v
继续
#/etc/init.d/lighttpd start
Starting lighttpd! OK,搞定。
41 楼
wtb
2007-06-15
strawman81 写道
楼上的wtb兄,
对于lighttpd:
编译后配置:
cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpd
mkdir /etc/lighttpd
cp doc/lighttpd.conf /etc/lighttpd/lighttpd.conf
Ubuntu下没有sysconfig目录,也应该照做吗?还是cp到别的地方?
对于lighttpd:
编译后配置:
cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpd
mkdir /etc/lighttpd
cp doc/lighttpd.conf /etc/lighttpd/lighttpd.conf
Ubuntu下没有sysconfig目录,也应该照做吗?还是cp到别的地方?
是的,你启动lighttpd的时候用
lighttpddir/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf 运行,所有错误提示都会出来,这会提示很多目录/文件不存在,需要去手工建,而且建好了还要把这个目录的属主改成lighttpd的运行用户(即lighttpd.conf中的user所指定的用户)
,不同的环境有不同的情况出现。理解 robbin这遍文章的每一步的意图,根据本机的特点,相应的去实现。
建议每一步都去看看官文网站或软件自带的帮助。而不是一味的按照别人打的命令 在你的机器运行。
40 楼
strawman81
2007-06-14
楼上的wtb兄,
对于lighttpd:
编译后配置:
cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpd
mkdir /etc/lighttpd
cp doc/lighttpd.conf /etc/lighttpd/lighttpd.conf
Ubuntu下没有sysconfig目录,也应该照做吗?还是cp到别的地方?
对于lighttpd:
编译后配置:
cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpd
mkdir /etc/lighttpd
cp doc/lighttpd.conf /etc/lighttpd/lighttpd.conf
Ubuntu下没有sysconfig目录,也应该照做吗?还是cp到别的地方?
39 楼
strawman81
2007-06-14
我在/etc/profile里把ruby目录下的bin添加到PATH了,但在shell下用普通用户和root分别执行echo $PATH得到的结果是普通用户显示了ruby的路径,而root却没显示那部分,ctrl+alt+backspace重启X还是不行,于是我按出错提示把/usr/local/lib/ruby/这个目录改为我所有,还有/usr/local/ruby一并改了,试了一下,可以显示版本了,rails test测试了一下,建立成功,再到scripts里运行./server,居然说找不到rails gem .于是又按提示gem install -v=1.2.3 rails.完毕后重新执行,/.server,成功!
不好意思robbin,我是不是扯远了?
不好意思robbin,我是不是扯远了?
38 楼
wtb
2007-06-14
strawman81 写道
我尝试着用sudo rails -v ,结果返回正确的版本号Rails 1.2.3 !
然而用普通用户就不行.
rails test 失败,sudo rails test则成功地在当前目录下新建了test.
同样地需要使用sudo 才能在script子目录下启动server script运行服务器!
请问怎样才能让我使用普通权限就可以运行rails?
然而用普通用户就不行.
rails test 失败,sudo rails test则成功地在当前目录下新建了test.
同样地需要使用sudo 才能在script子目录下启动server script运行服务器!
请问怎样才能让我使用普通权限就可以运行rails?
看看你root用户口环境变量和你登入系统的环境变量是不是不一样?
如果你在安装过程中添加了或修改了某些环境变量,建议你放在/etc/profile中,除非很明确的知道它只某个用户服务,否则都放在/etc/profile中,确保所有的用户都能得到。
如果不行,
试试chmod 755 rubydir -R
或者像我干脆就讲ruby/rails等的所有文件的属主改成我登入系统的用户
chown wtb.wtb rubydir -R
37 楼
strawman81
2007-06-13
我尝试着用sudo rails -v ,结果返回正确的版本号Rails 1.2.3 !
然而用普通用户就不行.
rails test 失败,sudo rails test则成功地在当前目录下新建了test.
同样地需要使用sudo 才能在script子目录下启动server script运行服务器!
请问怎样才能让我使用普通权限就可以运行rails?
然而用普通用户就不行.
rails test 失败,sudo rails test则成功地在当前目录下新建了test.
同样地需要使用sudo 才能在script子目录下启动server script运行服务器!
请问怎样才能让我使用普通权限就可以运行rails?
36 楼
strawman81
2007-06-13
瞎折腾了好几天,反复地使用apt-get 和 tar包安装,到头来到底里面遗留下几个版本的ruby/rubygems/rails都忘了。在Ubuntu下想彻底地把所有装过的这些版本,该怎么作才能清除干净好重新安装?
我按robbin的安装方法去作,装完rails后用whereis rails查看得到:/usr/local/bin/rails,
明显包含在我的PATH里面,于是用rails -v 查看rails的版本,结果提示:
/usr/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:10:in `require': no such file to load -- digest/sha2 (LoadError)
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:10
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:461:in `require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:461
from /usr/local/bin/rails:9:in `require'
from /usr/local/bin/rails:9
请问这个问题怎么解决?
我装了几次rails,都提示类似的信息,LoadError的原因是什么?
我按robbin的安装方法去作,装完rails后用whereis rails查看得到:/usr/local/bin/rails,
明显包含在我的PATH里面,于是用rails -v 查看rails的版本,结果提示:
/usr/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:10:in `require': no such file to load -- digest/sha2 (LoadError)
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:10
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:461:in `require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:461
from /usr/local/bin/rails:9:in `require'
from /usr/local/bin/rails:9
请问这个问题怎么解决?
我装了几次rails,都提示类似的信息,LoadError的原因是什么?
35 楼
cxcomt
2007-06-13
wtb 写道
随便提一下lighttpd要pcre-devel包(系统默认可能只安装了pcre包,而没装pcre-devel包)
又节约好多摸索的时间。
34 楼
edwardpro
2007-06-03
引用
编辑/etc/ld.so.conf,加入:
/usr/local/ImageMagick/lib
执行命令:
ldconfig
将ImageMagick的库加入系统联接库
/usr/local/ImageMagick/lib
执行命令:
ldconfig
将ImageMagick的库加入系统联接库
编译了半天RMagick没有过原来这步没有做,谢谢robbin了,解决大问题了!
33 楼
wp_226
2007-05-28
我在WINDOWS下安装了RUBY1.8.6的,如何不能用SOCKET?如何才可以能用到?请各位同志请教~~~~
发表评论
-
《松本行弘的程序世界》推荐序
2011-07-21 13:47 15263在流行的编程语言中,ruby是一个比较另类的存在,这是因为大多 ... -
从Rails聊聊小公司的研发团队建设
2011-03-23 10:49 37214首先分享一点数据吧: JavaEye的PV到了140万了,一 ... -
Ruby作为服务器端应用已经成熟了
2009-11-17 14:55 15935JavaEye网站在过去的Ruby on rails实践当中, ... -
基于资源的HTTP Cache的实现介绍
2009-09-05 00:27 17050我们都知道浏览器会缓 ... -
请注意Rails2.3自带的memcache-client有性能问题
2009-03-23 18:05 14475Rails2.3版本发布了,这个版本内部的改动非常大,相关介绍 ... -
监视Rails进程内存泄漏的技巧
2008-12-30 21:56 10954Rails应用比较容易遇到的两类性能问题:一类是Rails执行 ... -
ruby MBARI大补丁性能评测报告
2008-12-23 12:19 5070JavaEye之前的新闻ruby内存泄漏的罪魁祸首 - 幽灵指 ... -
在top监视窗口显示Rails当前正在执行的请求URL
2008-12-01 14:15 9857这是一个从PragDave的博客上面学来的技巧,很实用,很co ... -
对Ruby VM的GC的思考
2008-09-02 23:41 8977Ruby虽然是动态脚本语言 ... -
推荐一篇很好的RoR部署方案性能评测
2008-07-08 11:55 9637今年年初的时候,我写了一篇RoR部署方案深度剖析的文章,分析了 ... -
Ruby和Rails的缺点
2008-06-25 21:08 17402有人说,robbin你说了那么多RoR的优点,你啥时候说说Ro ... -
Skynet --- ruby的类Google Map/Reduce框架
2008-06-02 00:39 8295Skynet是一个很响亮的名 ... -
rmmseg-cpp - 简洁高效的ruby中文分词程序
2008-05-27 00:47 11234我在前一篇文章向大家 ... -
使用libmmseg实现Ruby的中文分词功能
2008-05-24 21:43 11325用Ruby on Rails开发web2.0网站的人都知道,r ... -
mod_rails尝鲜
2008-04-13 14:32 8080Passenger(俗称mod_rails)是 ... -
Lighttpd和RoR安装配置的疑难解答
2008-03-07 11:09 14846之前写过一篇在Linux平 ... -
JavaEye网站的RoR性能优化经验谈
2008-01-20 16:11 18444JavaEye网站从2006年9月11 ... -
RoR部署方案深度剖析
2008-01-14 03:10 14777RoR的部署方案可谓五花八门,有Apache/Fastcgi方 ... -
RoR网站如何利用lighttpd的X-sendfile功能提升文件下载性能
2008-01-12 17:45 10253传统的Web服务器在处理文件下载的时候,总是先读入文件内容到应 ... -
Ruby为什么会受程序员的欢迎?
2008-01-07 20:08 15752孟岩最近写了一篇博客 ...
相关推荐
在Linux平台上安装和配置Ruby on Rails详解 - rails - Ruby - JavaEye论坛.htm
- **Rails安装**:提供了在Apple、Linux和Windows平台上安装Rails的详细指南。例如,文档提到在Apple系统中使用Locomotive进行安装,在Windows系统中推荐使用InstantRails套件。这些套件通常包含了运行Rails项目所需...
安装Ruby:介绍了在不同操作系统(如Windows、macOS、Linux)上安装Ruby的方法,以及使用Ruby版本管理器(如rvm、rbenv)管理多个Ruby版本的技巧。 Ruby环境配置:包括设置环境变量、安装文本编辑器或IDE(如...
### Mac Snow Leopard 安装 Ruby 及 Ruby on Rails 开发环境搭建详解 #### 背景介绍 在 Mac OS X Snow Leopard(版本 10.6)系统下安装 Ruby 和进行 Ruby on Rails 的开发,是许多开发者特别是初学者可能会遇到的...
- **多平台安装指导**:提供了在Windows、Mac OS X和Unix/Linux系统上安装Ruby on Rails的详细步骤,帮助读者跨越平台限制,快速上手开发环境。 - **数据库集成**:讨论了Rails与各种数据库的兼容性,如MySQL、...
“x10switch”是一个基于Ruby on Rails框架开发的移动应用程序,它利用JQuery Mobile库为用户提供友好的移动界面,主要用于在Linux操作系统上操控X10照明系统。X10是一种常见的家庭自动化协议,允许用户通过电力线...
在安装向导中,您可以选择安装Ruby的目标位置和其他可选配置。 - 根据您的需求进行选择,并继续进行安装。 3. **设置环境变量(仅适用于Windows)** - 如果您是Windows用户,安装完成后,您需要配置系统环境变量,...
#### 四、Ruby on Rails安装最佳实践 - **安装步骤**: - 环境准备: 确保操作系统支持,并安装必要的软件包。 - 安装Ruby: 使用rbenv、RVM或其他工具进行管理。 - 安装Rails: 使用gem工具安装最新的Rails版本。 ...
Redmine是一款基于Web的项目管理和跟踪工具,由Ruby on Rails (RoR)框架编写而成。它为团队提供了全面的功能,包括但不限于问题追踪、任务管理、版本控制集成、时间追踪、文件管理等。Redmine的设计初衷是为了提供一...
在安装 Redmine 之前,需要安装一些软件包,包括 Ruby、Ruby-devel、Ruby-libs、Ruby-irb、Ruby-rdoc、Ruby-mysql 等。 [root@test ~]# yum -y install ruby ruby-devel ruby-libs ruby-irb ruby-rdoc ruby-mysql ...
本书《敏捷Web开发之Rails应用详解》第三版主要介绍了如何使用Ruby on Rails框架来进行敏捷Web开发。Rails是一个用Ruby语言编写的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,并且强调代码的简洁...
- 第二章:介绍Ruby的安装配置方法,包括不同操作系统(如Windows、Linux)下的安装步骤和推荐使用的编辑器或IDE(如SciTE、Eclipse RDT插件)。 - **高级应用**:这部分内容将深入探讨Ruby的一些高级特性,如元...
**Redmine**是一款基于Web的项目管理和问题跟踪工具,采用Ruby on Rails (ROR)框架进行开发,支持跨平台运行,并兼容多种数据库系统。其设计初衷是为了解决团队协作中的需求管理、任务分配、文档共享等问题,提供了...
- **跨平台**:支持 Windows、macOS 和 Linux。 - **高性能**:针对速度和性能进行优化。 - **模块化和可扩展**:通过 NuGet 包管理器轻松添加和更新功能。 - **统一的 MVC 和 API 框架**:简化开发和维护工作。...
通过以上步骤,我们已经完成了 Redmine 2.6.10 版本在服务器上的安装配置。这不仅涉及到了环境搭建、依赖安装等基础准备工作,还涉及到了数据库配置、Redmine 安装与配置等多个方面,确保了 Redmine 能够顺利运行。
它采用Ruby on Rails框架进行开发,支持跨平台部署,能够很好地兼容多种数据库系统。相比于传统的项目管理软件,Redmine更加轻量级且易于使用,同时又具备强大的定制性和扩展性。 #### 二、Redmine特点概述 1. **...
《VirtualRails:开源Ruby on Rails虚拟开发环境详解》 在当今的软件开发领域,Ruby on Rails(RoR)作为一个高效且流行的Web应用框架,深受开发者喜爱。为了方便开发者进行便捷、高效的开发工作,"VirtualRails...