Archive for the 'Linux' Category

Feb
27

使用XAMPP能够很方便的安装Apache环境,在使用Ruby on Rails连接MySql时会出现以以错误:

No such file or directory - /tmp/mysql.sock

原因是XAMPP的mysql.sock文件在以下路径:

/opt/lampp/var/mysql/mysql.sock

Ruby on Rails 按照默认的路径去找,就找不到。在XAMPP integration上提到的Patch方法已经不实用于Rails 1.1.6以后的版本,正确的修正方法是修改config/database.yml文件,如下:

development:
adapter: mysql
database: depot_development
username: root
password:
host: localhost
socket: /opt/lampp/var/mysql/mysql.sock

参考:Agile Web Development with Rails Page 72

Feb
08

今天在全新的Debian服务器上安装Ruby on Rails环境,完成ruby-1.8.5

后,在安装 gem-0.9.2 时出现 no such file to load — zlib, 下载安装 zlib ,即可解决问题。

Jan
22

Lyceum是一款非常不错基于WordPress内核的的多用户博客程序,和WordPress Mu功能类似,并且它们都拥有中文语言包。whatup写了一个Lyceum Language Plugin可以让各个blog使用自己的语言,很方便;YsKin也提供了WordPress MU中文包

如果要为一个群体提供blogging服务,这两个程序都非常不错,可惜的是它们都没有加为友好的功能。如果在它们的基础上再加入好友和站内短消息功能,相信不少BSP都会使用这个开源程序了。

Jan
21

ruby官方网站:http://www.ruby-lang.org/en/
你可以在上面得到源代码,进行编译,自本文截止的最新版本为1.8.5(stable),下载地址为:ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.5.tar.gz

这里推荐大家使用源码安装,因为这样可以得到最新的版本。
安装ruby:
$ ./configure
$ make
$ make install (run as root)

记得ruby就不应该忘记gem,下载地址:http://rubyforge.org/frs/download.php/11289/rubygems-0.9.0.tgz这个时候的最新版本是:0.9.0
gem安装很方便,gem是基于ruby-zlib的,所以先安装ruby-zlib(http://raa.ruby-lang.org/project/ruby-zlib),这一步不一定是必须的,这和发行版本有一定的关系
安装ruby-zlib(下载地址:http://www.blue.sky.or.jp/atelier/ruby/ruby-zlib-0.6.0.tar.gz),解压
$ ruby extconf.rb
$ make
$ make install (run as root)

这样安装gem就没有问题了,安装如下,进入gem的目录:
$sudo ruby setup.rb
就可以进行安装,加入想要知道更多的信息,请参考:http://docs.rubygems.org/read/chapter/3

这样我们就大致完成了ruby的安装,有了ruby,自然要用rails(也许是比较偏激的看法):
$gem install rails

一直谈到的是web,其实出了web之外ruby也可以做desktop,并且以及有人这么做了,fxri就是最好的例子,还有一些项目,比如ruby-gnome2等,在windows我们可以感觉到fxri有多慢,linux情况会有所改变,然而,ruby毕竟是解释型,桌面领域还有待发展。

个人认为ruby在桌面的开发模式可以是:开发前端。使用更高效的语言开发基于CLI的实用程序,由于基于CLI的实用程序抛开了GUI的困扰,使得质量和性能都会有一定的提高,然后用ruby写GUI界面作为此程序的前端。

Link to Ruby安装指南(linux版本)

Jan
18

DreamHost 提供了 SSH/SFTP 进行文件管理 和 phpMyAdmin 进行数据库管理。要想将自己的应用备份下来,首先 SSH 登录到服务器上将程序文件压缩,然后使用SFTP下载即可。如果数据库很小(几M以内),则可以使用 phpMyAdmin 的导出功能将数据库备份到本地,如果数据库很大,又有台湾海底光缆的问题,导出一般不会成功,需要使用 mysqldump 进行备份了。以下是从DreamHost备份www.chinaonrails.com的程序文件和数据库的过程:

一、使用 SecureCRT 登录到服务器,压缩程序文件

tar -zcf chinaonrails.com.tar.gz chinaonrails.com/

二、使用 mysqldump 备份数据库

mysqldump -u username -h mysql.chinaonrails.com -p

database | gzip > chinaonrails20070118.sql.gz

三、使用 SecureFX 将 chinaonrails.com.tar.gz 和 chinaonrails20070118.sql.gz 下载至本地

Jan
15

刚刚得到消息,得知V2EX三天前被迫下线了。原因是:

服务器所在的机房接到“上级主管部门”的通知,因为“莫须有”的原因,拔掉了我服务器上的网线。

Livid正在努力恢复那台服务器上受到影响的服务:

中国政府目前的很多做法是在向国民制造恐怖,而我认为对我而言最正确的事情是去制造希望。

对“有关部门”这种简单粗暴的“执法”感到失望和愤怒,我只有这一句话的评论。其他评论请看Zola写的:“不谈政治”是一种政治态度

十一月
29

Linux常见命令行列表

Linux常见命令行列表

说明:该列表不仅有英文命令注释还有中文。重要的是命令后面跟了不少参数。相信一定对你有帮助。

十一月
17

完成Custom Skin后,希望只有在用户登录之后才显示导航栏和工具栏。

有了Custom Skin的经验,我知道该功能一定要修改PHP代码才能实现。于是再次仔细阅读customskin.php代码,发现customTemplate是扩展自QuickTemplate的,页面Title是通过<?php $this->text(’pagetitle’) ?>的形式输出的,在文件中搜索QuickTemplate, 找到/includes/SkinTemplate.php, 阅读这个文件,在191行(这里以mediawiki-1.8.2为例)看到代码中以set的方式设置了key为pagetitle对应的值,继续阅读,还可以看到一系列的key value对应的值,在262行设置了username的值,这正是我所希望得到的,于是在customskin.php中加入以入代码,就可以限制只有登录用户才看到的内容:

<?php if($this->data[’username’]) { ?> <!–if user login in, then start side–>

……

<?php } ?> <!–if user login in, the end side–>

十一月
15

许多人通过他们自己的经验认识到安装 Apache 服务器是件不容易的事儿。如果您想添加 MySQL、PHP 和 Perl,那就更难了。XAMPP 是一个易于安装且包含 MySQL、PHP 和 Perl 的 Apache 发行版。XAMPP 的确非常容易安装和使用:只需下载,解压缩,启动即可。

到目前为止,XAMPP 共有以下四种版本:

  • 适用于 Linux 的版本(已在 Ubuntu、SuSE、RedHat、Mandrake 和 Debian 下通过测试),
  • 适用于 Windows 98、NT、2000、2003 和 XP 的版本,
  • 适用于 Solaris SPARC 的测试版(在 Solaris 8 环境下开发并测试),
  • 适用于 Mac OS X 的测试版。

适用于 Mac OS X 和 Solaris 的 XAMPP 版本尚处于开发的第一阶段。使用时风险自担!

备注:LAMP - Linux+Apache+MySQL+PHP/Perl/Python.

九月
29

一、安装 memcached

到这里下载安装并启动(Debian 上我使用的是memcached-1.1.13.tar.gz):

./memcached -d -u root -m 10 -l 192.168.0.249 -p 11211

二、安装 memcache-client 和 cached_model , 执行下面的命令或到这里下载安装:

gem install cached_model –include-dependencies

三、配置 Rails App 使用 memcached Session Storage

1. 在 environments.rb 文件后加入以下代码:

require ‘memcache’
require ‘memcache_util’

# memcache defaults, environments may override these settings
unless defined? MEMCACHE_OPTIONS then
MEMCACHE_OPTIONS = {
:debug => false,
:namespace => ‘my_memcache’,
:readonly => false
}
end

# memcache configuration
unless defined? MEMCACHE_CONFIG then
File.open “#{RAILS_ROOT}/config/memcache.yml” do |memcache|
MEMCACHE_CONFIG = YAML::load memcache
end
end

# Connect to memcache
unless defined? CACHE then
CACHE = MemCache.new MEMCACHE_OPTIONS
CACHE.servers = MEMCACHE_CONFIG[RAILS_ENV]
end

# Configure the session manager to use memcache data store
ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS.update(
:database_manager => CGI::Session::MemCacheStore,
:cache => CACHE, :expires => 3600 * 12)

 

2.memcache.yml 文件内容:

production:
- 192.168.0.249:11211

development:
- 192.168.0.249:11211

benchmarking:
- 192.168.0.249:11211

四、使用lighttpd + mod_proxy + Mongrel  实现 Scale , 如果安装Mongrel请看我的前一篇Blog:使用Mongrel替代scgi .

1. 实现目标: http://mongrel.rubyforge.org/docs/lighttpd.html 

2.Lighttpd 配置 

server.modules = ( "mod_rewrite", "mod_redirect",
  “mod_access”, “mod_accesslog”, “mod_compress”,
  “mod_proxy”)

$HTTP[”url”] =~ “^/myapp1/” {
proxy.balance = “fair”

proxy.server = (”" => (
(”host”  => “127.0.0.1″,”port” => 4000),

(”host”  => “192.168.0.60″,”port” => 3000)
))
}

$HTTP[”url”] =~ “^/myapp2/” {
proxy.palance = “fair”

proxy.server = (”" => (
(”host” => “127.0.0.1″,”port” => 4001),

(”host”  => “192.168.0.60″,”port” => 3001)

))
}