Category: Something Linux


我们在编译时会遇到:
* Failed Running automake !
*
* Include in your bugreport the contents of:
*
* /var/tmp/portage/sys-devel/libtool-2.2.6b/temp/automake-4901.out
*
* ERROR: sys-devel/libtool-2.2.6b failed:
* Failed Running automake !
*
* Call stack:
* ebuild.sh, line 54: Called src_unpack
* environment, line 6972: Called eautoreconf
* environment, line 4771: Called eautomake
* environment, line 4740: Called autotools_run_tool ‘automake’
‘–add-missing’ ‘–copy’
* environment, line 4240: Called die
* The specific snippet of code:
* die 『Failed Running $1 !』;

…. from temp/automake-4901.out:

***** automake *****
***** PWD: /var/tmp/portage/sys-devel/libtool-2.2.6b/work/libtool-2.2.6b
***** automake –add-missing –copy
这样的错误,原因是automake的版本太低,和libtool不匹配

解决方法很简单,emerge -C autoconf automake gnuconfig,然后重新emerge autoconf automake gnuconfig即可解决

我们需要做的只是以下两步,从此告别繁琐的编译安装吧:

rpm -ihv http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm(RPEL为Fedora类RHEL系统的增强软件包源,也算半官方的源啦,呵呵)
rpm -ihv http://centos.alt.ru/repository/centos/5/i386/centalt-release-5-3.noarch.rpm (CentALT为类RHEL系统的增强软件包源,里面就有我们需要的东东,比如nginx 0.8.x php-fpm mysql 5.0.xx最新版的服务器软件包,此源我是在一个俄语网站上看到的,因为看不懂俄语,还特意用了google翻译,哈哈)

大家可以从这里下载,http://share.mydays.org/nginx_0831_php5210_rpms.tbz2,里面包含最新的nginx 0.8.31,php 5.2.10包含php-fpm,以及常用的gd等php模块

结婚了,自己身上的单子重了,维护站点的时间也会减少很多,一个一天平均访问量才30几个IP的博客,放在原来6sync.com的$34一个月的VPS上太浪费了,得把钱省下来好好过日子。上次在WHT上看到splitserv.com超便宜的XEN VPS就买了下来,虽然开通的过程波折得很,好得他们也答应第二个月免费来做补偿,暂时就把我两个站点都迁移了过来。

因为他们家不支持gentoo linux,自己又不喜欢centos,就让他们安装了debian 5.0 amd64。站点要用到支持nginx和php-fpm,搜了一下网上,都是编译源码包来安装支持,这样子有个很大的缺点就是升级维护很麻烦,既然debian有自家的软件包管理系统为什么不直接用它来安装我们需要的包呢,呵呵。

直接在VPS里用apt搜了下debian自带的软件版本过低,nginx是0.6.xx的,mysql是5.0的,还没有php-fpm。这可难不倒我们google搜索狂一族,很快搜到了有俄语apt站点有最新的nginx 0.8.xx,但是测试下来运行的时候确有问题,work process总是崩溃退出,暂时放弃,临时用sid源来安装最新稳定版0.7.xx的nginx,安装完毕恢复lenny源。

mysql因为之前就用的5.1.xx的,google上搜到了dotdeb.org这个至今让我如获珍宝的站点,上面有我梦寐以求的google-perftools包,最新的mysql 5.1的包,还有最新的php5.3.x,以及php-fpm。不敢独享,现在就来一起体验吧;)

首先编辑sources.list来加入dotdeb的源:
vim /etc/apt/sources.list

deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all

deb http://php53.dotdeb.org stable all
deb-src http://php53.dotdeb.org stable all

然后把lenny源临时替换为sid源,apt-get update用apt-get install nginx安装最新稳定版。安装完成以后在恢复lenny源。

接下去安装php支持,这里我们一定要先安装php5-cgi,否则直接安装php的话是会默认加入apache支持的:

apt-get install php5-cgi(这里需要说明一下,dotdeb默认源还是安装php 5.2.xx的,如果您需要php 5.3.x,安装php-fpm后就会自动升级到5.3.xx版本)

这一步我们安装一些php5支持组件,按照自己的需要添加:
apt-get install php5-mysql php5-sqlite php5-gd php5-xsl php5-xmlrpc php5-memcache php5-mcrypt php5-curl php5-apc

这一步安装mysql 5.1:
apt-get install mysql-server-5.1

安装memcached缓存支持:
apt-get install memcached

最后安装我们需要的php-fpm:
apt-get install php5-fpm

很简单吧,呵呵,不用再为编译环境安装那么多平时根本用不着的dev和header包,干干净净的系统看了也让人觉得清爽;)

GFW越来越严了,上twitter和youtube关心世界大事变得越来越难了,通过ssh跳墙后发现youtube依然无法看视频,可以通过ssh -D加密并更换本地DNS来解决,不过一步登天的方法就是通过VPN来实现,当然可以在网上那个直接买vpn账号,可是那就浪费了我们花钱卖的VPS了,还得花儿额外的钱,不值。还是自己动手吧。常见的VPN搭建软件有pptp和openvpn,pptp建立更简单,在windows下只要拨号就可以连上了,呵呵。但是我想挑战更难配置的openvpn,其实上次就差一步就配置成功了,就是没做iptables的nat设置,所以只能通过vpn的ip连接自己的vps但是其他服务器都路由不到。不多说了,希望各位Gentooer都能搭建起属于自己的openvpn来尽情放眼看世界吧;)

A.准备工作:
首先当然是要是内核支持tun/tap设备,这样openvpn才能正常工作,其次,需要iptables支持nat模块支持,一般KVM和XEN的VPS都没问题,OpenVZ VPS的话需要联系你的提供商来在服务器上开启了。

1.tap/tun支持可以在shell下执行
cat /dev/net/tun
如果返回cat: /dev/net/tun: File descriptor in bad state就说明你的VPS已经支持tun/tap了。
2.iptables nat支持可以在shell下执行
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE
返回
iptables: Unknown error 4294967295就说明支持nat了。

B.下面就是正式安装和建立CA证书和生成加密key
1.emerge openvpn
2.使用SSL keys/certificates认证:
为了客户端连接openvpn的安全,必须使用CA证书来核对客户端和服务器端是否匹配。
a.cd /usr/share/openvpn/easy-rsa/
b.编译var文件,将KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, KEY_EMAIL改为你需要填写的内容
vi vars
c.建立CA证书
source ./vars
./clean-all
./build-ca
d.建立server和client端的key
./build-key-server server
./build-key client
e.用Diffie Hellman算法对server端再次加密
./build-dh

C.OpenVPN server端配置调整相关:
a.建立openvpn所存储CA证书和key的目录,然后从刚才生成处拷贝过来

mkdir -p /etc/openvpn/privnet
mv /usr/share/openvpn/easy-rsa/keys/* /etc/openvpn/privnet/
每次更新openvpn后此目录会被清空,最好将此目录备份打包
tar cfzp /root/openvpn-privnet.tar.gz /etc/openvpn/privnet/
chmod 700 /root/openvpn-privnet.tar.gz
chmod 700 /etc/openvpn/privnet

b.建立/etc/openvpn/openvpn.conf配置文件,这里我们都是用最简单的配置

ort 11194
proto tcp
dev tun
ca privnet/ca.crt
cert privnet/server.crt
key privnet/server.key
dh privnet/dh1024.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3

c.启动openvpn服务并加入启动项:

/etc/init.d/openvpn start
rc-update add openvpn default

d.修改/etc/sysctl.conf
将net.ipv4.ip_forward = 0由0改为1,并用命令sysctl -p让其立即生效。
e.相当重要的一步,iptables的nat设置,不做的话,你是跳不了墙的;)
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -j SNAT --to-source yourip
这两部操作选其中之一操作即可,其中eth0如果是OpenVZ平台的话改为venet0即可。

D.OpenVPN客户端设置:
这里主要是讲Windows下openvpn客户端的设置,openvpn windows客户端可以从http://www.openvpn.net/download.html下载即可
a.编辑notepad C:\Program Files\OpenVPN\config\client.ovpn

client
dev tun
proto tcp
# change this to your servers ip or hostname

remote some.hostname 11194
resolv-retry infinite
nobind

persist-key
persist-tun

ca ca.crt
cert client.crt
key client.key

comp-lzo
verb 3

b.将/etc/openvpn/privnet下的ca.crt client.crt client.key下载你本地:\Program Files\OpenVPN\config\目录下
推荐的方法是将以上三个文件在服务器上打包通过winscp或xftp下载到本地解压。

最后打开openvpn gui,点击connect连接到您的私人独家vpn就可以畅游Internet了。

改了好几次/etc/conf.d/spawn-fcgi的配置文件都不行,找了网上该错误的解决方法都无效,关键是我这里出现502错误时,php-cgi的进程并没有死掉,本来php-fpm运行php-cgi挺稳定的,但是不能及时根据php版本出新的补丁让人觉得很不爽,可是用spawn-fcgi又遇到这种问题,很是郁闷,现在暂时用命令行启动它,不会出现该错误了,但是我的wordpress会出现乱码和wp-content下db.php,db.ini权限的问题,说没权限,继续摸索中。。。。。。

告别thenynoc

不准备再续费了,这是我用过的时间最长的VPS了,曾经很稳定,我用它来做各过主DNS服务器,我自己站点的web和mysql服务器,可是最近总是当机,看来是硬件用的时间太长了,老化了,再加上超售的实在厉害,基本上用不到他系统512M内存就报内存不够了,害。我等会会在www.vpsx.cn上做个告别评测,Bye,Bye,thenynoc

真绝,呵呵,在WHT上看到的,www.itsvps.com。基于Hyper-V的VPS,有免费试用。上面支持系统里清清楚楚写着Gentoo Linux,这让我顿时肃然起劲,赶忙发邮件去申请了,大概半小时左右就开通了,可以试用三天。客服态度相当好,呵呵。如果有同学感兴趣的,也可以参看http:/www.webhostingtalk.com/showthread.php?s=bf696a75c10180c7f530d8f1edb9b1cc&p=6465447#post6465447去申请一个;)

在开启,memcached之前,我的wordpress的数据库查询大概是在17次左右,开启后仅为4次,这个东东真的很棒,希望大家都能用上。

第一步安装memcached和php的扩展:

emerge memcached
emerge pecl-memcache

第二步修改/etc/conf.d/memcached的参数:
a.内存使用数设置:MEMUSAGE=』256″
b.使用的端口号:PORT=』11211″

一般根据自己需要设置以上参数即可。

第三步在wordpress里的wp-config.php配置文件里增加:

define('ENABLE_CACHE', TRUE);

第四步修改和增加/etc/php/cgi-php5/php.ini的配置i:
a.增加:

session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211"

这里要注意11211要和你/etc/conf.d/memcached的PORT值一致.

b.修改:

output_buffering = Off

要改为On

最后重启memcached,php-fpm和nginx:

/etc/init.d/memcached restart
/etc/init.d/php-fpm restart
/etc/init.d/nginx restart

还有别忘了将memcached加入系统启动项哦:

rc-update add memcached default

现在开始尽情享用memcached大餐吧,呵呵 ;)

有关什么是funtoo linux,就不多说了,详细的话各位童鞋可以看看这个连接写的DD: 我的几个openvz的funtoo在升级到openrc 0.5.x后都重启当机了,xen的倒是可以按照funtoo blog上的方法把dhcpcd加入系统启动项,然后执行rc就好了。发邮件问Daniel Robbins,他告诉我看最新更新的,然后按照以下脚本建立新的net.venet0启动脚本即可,其实这个脚本在更新你的funtoo后台也会在 /usr/share/doc/funtoo-netscripts-1.1/net.eth0里找到,现在net.lo脚本只负责启动本地lo设备了:


#!/sbin/runscript
# Copyright 2009 Funtoo Technologies, LLC
# All rights reserved. Released under the 2-clause BSD license.

IP=192.168.0.10
NM=255.255.255.0
GW=192.168.0.1
INT=eth0
DOM=example.org
NS1=a.b.c.d
NS2=e.f.g.h

depend() {
provide net
after net.lo
}

start() {
ebegin "Bringing up network interface $INT"
ifconfig $INT $IP netmask $NM up && \
route add default gw $GW $INT && \
resolvconf -a $INT < < EOF
domain $DOM
nameserver $NS1
nameserver $NS2
EOF
eend $?
}

stop() {
ebegin "Shutting down network interface $INT"
resolvconf -d $INT && \
route del default gw $GW $INT && \
ifconfig $INT down
eend $?
}

重启后vps果然起来了,但是发现两个问题,一个是我用pure-ftpd建立的ftp用客户端都连不上了,可是pure-ftpd是好好运行着的,端口也是开着的,没有开iptables;还有一个问题是vps内ping域名都不行了,知道是没有指定name server可以不管在net.venet0里设置,还是在/etc/resolv.conf设都不行,继续钻研中。。。。。。

Powered by WordPress and Motion by 85ideas.
11 queries. 0.729 seconds.