Linux上的ROR,继续!

好久没写博了,一方面呢,LP对于我博客上的琐事记录表示了抗议,另一方面,最近杂事比较多,工作发生失误,生活有些凌乱,无暇记录。

还是继续研究linux上的ROR部署吧。

一、ROR相关

其实前阵子本应继续的,可是不料虚拟机中的Linux发疯了,好多东西安装失败(具体从哪个开始的,我已经不记得了,总之是无法进行下去了),最后索性重 新安装了一遍Linux(系统居然也装了N遍,原因是认为单系统,就没有选那个GRUB,结果无法引导,浪费N多时间),然后又把ruby、rails等 等重新安装一遍,其间又有些许反复(崩溃ing)。最后终于装好,顺便把mongrel、capistrano也装上了,而SVN是在装系统时带上的。

其中装mongrel时有个需要注意的地方,由于我装的ruby是最新的1.9.1版,在运行ruby setup.rb后,会报一堆ptr指针相关的错误,在网上找了半天,终于旮旯处找到了解决方案(由http://groups.google.com /group/rubyonrails-talk/browse_thread/thread/b5da5cda5137f001 /c0595992a2bb7ad3?#c0595992a2bb7ad3找到http://isitruby19.com/mongrel):

在解压后的mongrel的目录下,ext/http11/http11.c文件需要作一些修改:

replace line 77 with

for(ch = RSTRING_PTR(f), end = ch + RSTRING_LEN(f); ch < end; ch++) {

replace line 172 with
colon = strchr(RSTRING_PTR(temp), ':');

replace line 174 with

rb_hash_aset(req, global_server_name, rb_str_substr(temp, 0, colon - RSTRING_PTR(temp)));

replce line 176,177

rb_str_substr(temp, colon - RSTRING_PTR(temp)+1,
RSTRING_LEN(temp)));

replace lines 298 299

dptr = RSTRING_PTR(data);
dlen = RSTRING_LEN(data);

也就是把代码中的关于length和ptr的写法都改一下。

这样修改之后,安装成功了,但是该帖子中还有以下几句:

5) cd ../../lib/mongrel
(or the full path "/usr/local/lib/ruby/gems/1.9.1/gems/mongrel-1.1.5/lib/mongrel"

6) mate / sudo vi handlers.rb

7) fix the case statements in

On lines 208-212, change instances of ": false" to "then false"

8) sudo gem install gem_plugin (else mongrel may hang)

done!

这些是否是启动mongrel时需要的修改,由于我还未走到那步,有待于验证。

二、MYSQL

后来下载了个mysql最新版的rpm安装,安装倒是没什么问题,只是安装之后不知道都装到哪里了,尤其是数据库数据的目录。无奈,把rpm的安装卸载,又找了个已编译过的代码下载下来,这个倒是方便,解压后拷贝到指定位置,做一些配置就行了。

操作参考(http://linux.chinaunix.net/bbs/thread-1098235-2-1.html):

网上一找一大堆:
# tar –zxvf mysql-standard-5.0.27-linux-i686-glibc23.tar.gz
# cp –rf mysql-standard-5.0.27-linux-i686-glibc23 /usr/local/
//建立符号链接,如果以后有新版本的MySQL的话,你可以仅仅将源码解压到新的路径,然后重新做一个符号链接就可以了。这样非常方便,数据也更加安全。
# ln –s mysql-standard-5.0.27-linux-i686-glibc23 /usr/local/mysql
//添加用于启动MySQL的用户及用户组(如果以前安装过MySQl,用户及用户组可能已存在)。
# useradd mysql
# groupadd mysql
//初始化授权表
# cd /usr/local/mysql
# scripts/mysql_install_db
//修改MySQl目录的所有权
# cd /usr/local
# chgrp –R mysql mysql-standard-5.0.27-linux-i686-glibc23
# chgrp –R mysql
# chown –R mysql mysql-standard-5.0.27-linux-i686-glibc23/data
# chown –R mysql mysql/data
# ln –s /usr/local/mysql/bin/* /usr/local/bin/
//启动Mysql
# bin/safe_mysqld 

 --user=mysql &

你按照你的文件改下吧!

MYSQL自动启动操作参考(http://blog.163.com/hxf78/blog/static/12231985200702403953148/):

在MySQL安装程序的解压包/usr/local/mysql/support-files有一个叫myslq.server的启动脚本程序。把它复制到/etc/rc.d/init.d目录里面:

# cd /etc/rc.d/init.d
# cp /usr/local/mysql/support-files/mysql.server mysql

接着把它的属性改为“x”(executable,可执行)

# chmod +x mysql

最后,运行chkconfig把MySQL添加到你系统的启动服务组里面去。

执行chkconfig --add mysql

三、APACHE

这个要说的不多,下载了源码,编译安装,没什么问题。记录一下把APACHE注册为系统服务的操作参考吧(http://hi.baidu.com/sky_insect/blog/item/ae515cd4d5345ccc50da4b6d.html):

在Linux系统中我一般采用编译源码的方式来安装Apache,有两种方法可以让Apache在系统启动时自动启动。

1. 在/etc/rc.d/rc.local中增加启动apache的命令,例如:/usr/local/httpd/bin/apachectl start

2. 将apache注册为系统服务

首先将apachectl命令拷贝至/etc/rc.d/init.d目录下,改名为httpd

使用编辑器打开httpd文件,并在第一行#!/bin/sh下增加两行文字如下

# chkconfig: 35 70 30
# description: Apache

接着注册该服务

chkconfig --add httpd

一切OK了,启动服务

service httpd start

其中所增加的第二行中三个数字第一个表示在运行级别3和5下启动apache,第二、三是关于启动和停止的优先级配置,无关紧要。


启动后,在浏览器中输入http://localhost,一个页面,显示It works!,说明WEB服务没问题了。再到apache的安装目录下看看,有一个htdocs目录,里面有一个index.html,就是这个页面了。至于如何像IIS那样配置其它目录下的站点,有待学习。


看了一些书籍、资料,里面提到的一些东东,比如capistrano,已经装上了,还未使用过。可是这两天忽然想到,我用SVN直接从代码库中下载,然后用生产方式启动项目,不就可以了吗?目前的状况,一切应以简单有效为原则。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值