Skip to content

Recent Articles

25

在苹果的snow leopard上通过rvm安装ruby 1.9.2 和 rails 3 beta

sudo gem install rvm

mate .bash_profile

编辑.bash_profile文件在文件尾加上:

[[ -s $HOME/.rvm/scripts/rvm ]] && source $HOME/.rvm/scripts/rvm
rvm-install
rvm install ruby-1.9.2
rvm use ruby -v 1.9.1
gem install tzinfo builder memcache-client rack rack-test rack-mount erubis mail text-format thor bundler i18n
gem install rails --pre
gem install sqlite3-ruby
rvm 1.9.2-head rake db:migrate
1

在ubuntu上使用gitosis管理git

本来我已经配好http方式的git库了,不过http方式的效率远远不如git连接。因此就需要gitosis来做git的权限管理。

首先,相信你和我一样已经安装好了git了。如果没有的话就用apt安装一下吧。安装命令如下

sudo apt-get install git-core

接下来就要安装gitosis了

sudo apt-get install gitosis
sudo chmod 755 /srv/gitosis/repositories/gitosis-admin.git/hooks/post-update

#添加用户git,用户目录在/var/git
#sudo adduser –system –shell /bin/sh –gecos ‘git version control’ –group –disabled-password –home /var/git git
#如果已经有/var/git目录的话就要修复权限
#sudo chown git:git /var/git
#sudo chmod 777 /var/git

gitosis安装文件已经生成了一个gitosis用户,用户目录在”cd /srv/gitosis/”。具体可以参考:“/usr/share/doc/gitosis/README.Debian”

#生成ssh密钥
ssh-keygen -t dsa

#用密钥初始化Gitosis配置
sudo -H -u gitosis gitosis-init < ~/.ssh/id_dsa.pub
git clone gitosis@localhost:gitosis-admin.git
cd gitosis-admin
nano gitosis.conf

添加用户组和用户权限

[group gdwt]
writable = yourprojectname
members = user01 user02

[repo iphone_project]
daemon = yes

在客户机中生成ssh key并把他上传到服务器中

ssh-keygen -t dsa
scp ~/.ssh/id_dsa.pub username@yourserver.com:/tmp

在服务器上把id_dsa.pub考到gitosis-admin的keydir目录中,并把它改为配置文件中的相应用户名

mv /tmp/id_dsa.pub keydir/user01.pub
git add keydir/user01.pub

最后,把修改提交回服务器

git commit -am 'add csc_project and gdwt group'
git push

gitosis服务是使用ssh端口的,因此如果服务器不是网关的话记得在网关上映射22端口到服务器上

gitosis的使用方式很简单,在刚才的客户机上:

git clone gitosis@yourserver.com:yourprojectname
29

apache 2 中把81端口转到80端口

开启端口映射模块:

sudo a2enmod proxy
sudo a2enmod proxy_http
#sudo a2enmod proxy_balancer

创建新的网站文件

sudo nano /etc/apache2/sites-available/81to80
ProxyRequests off

<VirtualHost *:81>
    <Proxy *>
    Order deny,allow
    Allow from all
    </Proxy>

    ProxyPass / http://192.168.2.102:80/
    ProxyPassReverse / http://192.168.2.102:80/
    ProxyPreserveHost on
</VirtualHost>
#添加监听端口
sudo nano /etc/apache2/ports.conf

#在文件中添加:
NameVirtualHost *:81
Listen 81
# enable site
sudo a2ensite 81to80

# disable site
#sudo a2dissite 81to80

# force reload the server:
sudo  /etc/init.d/apache2 reload
29

在ubuntu服务器上安装独臂pptpd服务

环境信息:
服务器系统:ubuntu 10.04
ip: 192.168.2.102
网关:192.168.2.1
网关上做端口映射:网关:1723(tcp) -> 服务器:1723

安装pptp服务

sudo apt-get install pptpd

编辑配置文件

sudo nano /etc/pptpd.conf

在文件的最后添加:

localip 192.168.2.102
remoteip 192.168.2.230-240

localip 是 VPN 连通后服务器的 ip 地址,而 remoteip 则是客户端的可分配 ip 地址。

sudo nano /etc/ppp/pptpd-options

这里需要添加ms-dns的值,为登录上来的客户端指定dns。

ms-dns 202.96.128.86
ms-dns 202.96.128.166

然后我们需要更改chap-secrets文件,添加登录的用户名和密码

sudo nano /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
用户名          pptpd   密码  *

把用户名密码用你自己的替代吧。

好了,pptpd部分搞掂了。重启pptpd服务。

sudo /etc/init.d/pptpd restart

这时候在外网的xp上新建一个pptp vpn 应该可以连接的上了,不过只能ping的通服务,ping不通局域网内的其他主机。这是因为服务上的arp转发还没打开。

接下来我们要开启 ipv4 forward
打开系统的ARP转发

sudo nano /etc/sysctl.conf
net.ipv4.ip_forward = 1

syscrl.conf的修改要重启才能应用,要马上应用的话执行:

#echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
13

在ubuntu 10.04下安装rails和sqlite3安装错误

在ubuntu 10.04下用默认的ruby和rubygem1.8安装rails没有问题,但是安装sqlit3-ruby的时候就提供出错,显示

/usr/bin/ruby1.8 extconf.rb
extconf.rb:10:in `require': no such file to load -- mkmf (LoadError)
from extconf.rb:10

这是因为没有安装ruby-dev包导致的,ruby-dev包中有编译插件必须的一些头文件。
但是SQLite3很特别,即使安装了ruby-dev还是会报错:

1 gem installed
Installing ri documentation for sqlite3-ruby-1.3.0...

Enclosing class/module 'mSqlite3' for class Statement not known

No definition for libversion
Installing RDoc documentation for sqlite3-ruby-1.3.0...

Enclosing class/module 'mSqlite3' for class Statement not known

No definition for libversion

只有用ubuntu预编译的libdbd-sqlite3-ruby包才可以。命令很简单:

sudo apt-get install libdbd-sqlite3-ruby