“Linux”目录存档

Ubuntu Server 10.04 LTS的Linux上编译安装配置nginx0.8.52

2010年10月22日,星期五

Server 10.04 LTS的Linux上安装配置nginx0.8.52

操作系统是linode上的Linux:Ubuntu Server 10.04 LTS。
nginx的最新版本是:0.8.52

http://nginx.org/download/nginx-0.8.52.tar.gz

来源:http://nginx.org/en/download.html
nginx依赖的PCRE库,最新版本是:8.10:
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.10.tar.gz
来源:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
OpenSSL的最新版本是:1.0.0a:

http://www.openssl.org/source/openssl-1.0.0a.tar.gz

来源:http://www.openssl.org/source/
zlib的最新版本是:1.2.5:

http://zlib.net/zlib-1.2.5.tar.gz

在/usr/local目录下创建app目录,所有应用都安装配置到这个目录下面:
root@618119.com:/usr/local# sudo mkdir app
root@618119.com:/usr/local# cd ./app
然后下载安装程序:
root@618119.com:/usr/local/app# wget http://nginx.org/download/nginx-0.8.52.tar.gz
root@618119.com:/usr/local/app# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.10.tar.gz
root@618119.com:/usr/local/app# wget http://www.openssl.org/source/openssl-1.0.0a.tar.gz
root@618119.com:/usr/local/app# wget http://zlib.net/zlib-1.2.5.tar.gz
再解压压缩包:
root@618119.com:/usr/local/app# tar -zxvf *
root@618119.com:/usr/local/app# tar -zxvf pcre*
root@618119.com:/usr/local/app# tar -zxvf *
root@618119.com:/usr/local/app# tar -zxvf zlib*
由于缺少gcc等编译器,需要先运行:
root@618119.com:/usr/local/app# apt-get install gcc libc6-dev build-essential
进入到nginx解压得到的目录:
root@618119.com:/usr/local/app# cd nginx-*
运行configure命令,将nginx的安装目录设置为/usr/local/app/nginx。
with-http_stub_status_module参数是启用stub_status监控。
root@618119.com:/usr/local/app/nginx-0.8.52#  ./configure –prefix=/usr/local/app/nginx –user=nginx –group=nginx –with-http_ssl_module –with-http_stub_status_module –with-pcre=/usr/local/app/pcre-8.10 –with-openssl=/usr/local/app/openssl-1.0.0a –with-zlib=/usr/local/app/zlib-1.2.5
然后再运行make进行编译:
root@618119.com:/usr/local/app/nginx-0.8.52# make
再运行:make install,
root@618119.com:/usr/local/app/nginx-0.8.52# make install

还需要添加nginx用户组(未添加用户组就启动的话:会提示[emerg]: getpwnam(“nginx”) failed):
root@618119.com:/usr/local/app/nginx# sudo adduser –system –no-create-home –disabled-login –disabled-password –group nginx
进入到nginx的sbin目录用-t参数检查配置文件是否ok:
root@618119.com:/usr/local/app/nginx# cd sbin/
root@618119.com:/usr/local/app/nginx/sbin# sudo ./nginx -t
the configuration file /usr/local/app/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/app/nginx/conf/nginx.conf test is successful

这样就在linode的VPS上将nginx0.8.52安装好了。
root@618119.com:/usr/local/app/nginx/sbin# ./nginx
[emerg]: bind() to 0.0.0.0:80 failed (13: Permission denied)
root@618119.com:/usr/local/app/nginx/sbin#sudo ./nginx
(不用root启动的话,会提示:[emerg]: bind() to 0.0.0.0:80 failed (13: Permission denied))
启动成功后访问http 80端口可以看到Welcome to nginx!

接下来制作nginx系统服务启动的脚本,参考 http://articles.slicehost.com/2007/10/17/ubuntu-lts-adding-an-nginx-init-script

#! /bin/sh

### BEGIN INIT INFO
# Provides: nginx
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the nginx web server
# Description: starts nginx using start-stop-daemon
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/app/nginx/sbin/nginx
NAME=nginx
DESC=nginx

test -x $DAEMON || exit 0

# Include nginx defaults if available
if [ -f /etc/default/nginx ] ; then
. /etc/default/nginx
fi

set -e

case “$1″ in
start)
echo -n “Starting $DESC: ”
start-stop-daemon –start –quiet –pidfile /usr/local/app/nginx/logs/$NAME.pid \
–exec $DAEMON — $DAEMON_OPTS
echo “$NAME.”
;;
stop)
echo -n “Stopping $DESC: ”
start-stop-daemon –stop –quiet –pidfile /usr/local/app/nginx/logs/$NAME.pid \
–exec $DAEMON
echo “$NAME.”
;;
restart|force-reload)
echo -n “Restarting $DESC: ”
start-stop-daemon –stop –quiet –pidfile \
/usr/local/app/nginx/logs/$NAME.pid –exec $DAEMON
sleep 1
start-stop-daemon –start –quiet –pidfile \
/usr/local/app/nginx/logs/$NAME.pid –exec $DAEMON — $DAEMON_OPTS
echo “$NAME.”
;;
reload)
echo -n “Reloading $DESC configuration: ”
start-stop-daemon –stop –signal HUP –quiet –pidfile /usr/local/app/nginx/logs/$NAME.pid \
–exec $DAEMON
echo “$NAME.”
;;
*)
N=/etc/init.d/$NAME
echo “Usage: $N {start|stop|restart|force-reload}” >&2
exit 1
;;
esac

exit 0

再运行命令: sudo /usr/sbin/update-rc.d -f nginx defaults,将nginx安装为默认服务。

这样在linode里对Ubuntu重启之后,nginx服务也自动启动了。

Tags: , , , ,

在linode.com购买vps部署Ubuntu Server 10.04 LTS 64bit

2010年10月20日,星期三

在购买linode的VPS之前,先做了一些准备工作:
首先参考 http://www.blogkid.net/linode 等关于linode的文章介绍,对linode的各方面特点进行了了解。
知道了可以部署Ubuntu等Linux版本,并且自己控制操作系统的root帐号。
购买linode的VPS付款方式主要支持美元信用卡,因此特意在招商银行申请了招商银行双币信用卡,是VISA卡支持美元支付。
招行的个人信用卡从申请到收到卡大概需要三个星期左右。
在申请信用卡期间:则主要浏览linode知识库里的文章,参考: http://library.linode.com/
并在本地的Ubuntu 10.04 操作系统上编译安装nginx和resin等服务器程序。
在拿到信用卡之后,对信用卡的网上支付知识又进行了了解,重点关注CVV码(在信用卡背面签名栏的最后的三位数字)。

万事具备之后,开始购买linode的VPS.
1.开始访问http://linode.com/ ,点任何一个方案下面的 Sign Up Now!(这里其实并没有选择套餐),进入 https://www.linode.com/signup/
2.在 https://www.linode.com/signup/ 需要填写内容的各项含义和作用如下:
.com Username:在linode.com登录的账户名,我填写的lizongbo
Linode.com Password:在linode.com登录的密码,大写字母A到Z,小写字母a到z,数字0到9,特殊符号~!#$%^&*()_+等,至少必须有这四种字符中的两种。因此有必要仔细想好密码再注册,否则注册完之后不记得密码的话只能靠邮箱找回密码了。
E-Mail Address:非常重要,找回用户名和重置登录密码就靠它了。因此邮箱的密码也一定要牢固。
How did you hear about us?:应该是linode.com用来统计用的,因此随便填个网址即可,不介意的也可以填:http://618119.com/
Company Name:是可选项,个人就不用填了。
Billing First Name:账单上的姓,我填Li。
Billing Last Name:账单上的名,我填Zongbo。
Billing Address:账单地址,我填了个英文的,例如:
Billing Address 2 :是可选项,不用填了。
Billing City:所在城市,我填的Shenzhen。
Billing State:所在省份,我填Guangdong。
Billing Zip/Postal Code:所在地区的邮编,我填的518000
Billing Country:所在国家,按字母c,多按几次,找到 CN-China,这个选项。
Credit Card Number:输入信用卡卡号。
Expiration Date:选择信用卡上的有效期,月份在前面,年在后面。
CVV:信用卡的CVV码,很重要,在不能完全信任的网站上千万别填这个。
Select your plan,这里才是真正选linode套餐的地方,我选择的是Linode 512 这个套餐计划,内存512M,月付$19.95,磁盘总存储空间16GB,每月网络流量200GB。
Payment Term:付费方式,我选的是Month to month,即每月支付,12 months (10% discount)是一次付一年12个月的可以享受9折优惠,24 months (15% discount)是一次付两年24个月的,可以享受八五折优惠。;现在人民币对美元升值,提前付款不划算了。
Referral Code:推荐码,可填可不填,可以填我的推荐码:1feb04bc629af5b07b3eb99f8ad304d37843a056。
(注册成功之后,可以在https://manager.linode.com/profile/index查看属于自己的推荐码,linode官方对referral code的描述如下:
Referrals reward you when you refer people to Linode. If someone signs up using your referral code, you’ll receive a credit of $20.00, so long as the person you referred remains an active customer for 90 days.
意思是如果有人在购买linode的vps填写了推荐码,并且使用linode的vps超过90天以上,那么推荐码的主人就可以得到$20的优惠。
我的推荐码是 1feb04bc629af5b07b3eb99f8ad304d37843a056,可直接点击链接: http://www.linode.com/?r=1feb04bc629af5b07b3eb99f8ad304d37843a056 进行注册。
http://www.blogkid.net/linode 的张磊的Referral Code为: 2cea6fcaa1db11c5d52af67b20529505208b49fc )
Promotion Code:优惠码,这项不用填。至少我搜索了很久,根本没见到像name.com那样真正的优惠码,网上各种以linode 优惠码进行seo和宣传的文章,几乎都是骗人的,实际就是上面提到的推荐码,
打着优惠码的旗号骗大家填他的推荐码。所以这项保持为空就可以了。(也许将来某天会有linode的优惠码, 但是一定要仔细识别真假,别被忽悠了,网上说的一个优惠码是storecrowd,号称使用完一个月后返还10美元,但没见有人明确确认是否得到了优惠,因此不能确定真假)

以上信息都填写好了之后,点Continue进入下一步。

linode在校验信息ok和支付成功之后,就可以用刚刚注册的账号和密码进行登录了。

这里的第一次扣费不是按一个月扣的,而是从当前日期到月底计算的天数,按天收费的。
比如我是17号购买的,实际扣费是$9.66,(计算公式估计是: (9.66 / (31 – 16)) * 31 = 19.964001)。

选的新的Beta版linode管理界面,入口是: https://manager.linode.com/
登录之后,开始选择VPS需要部署的IDC机房,http://www.linode.com/speedtest/ 提供了每个机房的测试下载文件,可以使用单线程下载工具下载进行测速。
最好多试几次,在测试的时候发现London, UK;Newark, NJ ;Atlanta, GA ;Dallas, TX ,Fremont, CA这五个机房都可能下载速度到250k,也可能只有不到10k。
在多次测试后,感觉Dallas, TX的速度相对稳定一些。于是选择了达拉斯机房。 Dallas, TX, USA 。
然后操作系统选择的Linux版本为: 10.04 LTS 64bit,(都是Server版)
swap区为512m.剩下的磁盘空间都分在一起了。
点Deploy进行部署。等一会部署完成后,再到Dashboard 面板里将部署的Ubuntu 10.04 LTS启动。
再切换Remote Access的tab,在这里可以看到 ssh命令的写法,可以看到服务器的公网ip.默认没分配内网ip,需要点一下添加,才会给分配一个内网的ip。
可以点Launch Lish Ajax Console先在web上体验一下远程ssh连接上去操作的感觉。

使用uname -a查看 当前操作系统的信息为:
li206-174 2.6.35.4-x86_64-linode16 #1 SMP Mon Sep 20 16:03:34 UTC 2010 x86_64 GNU/.

更新升级Ubuntu Linux的命令为先运行apt-get update,然后运行apt-get dist-upgrade
root@618119.com:/usr/local/app# apt-get update
root@618119.com:/usr/local/app# apt-get dist-upgrade

Tags: , , ,

在64位 Ubuntu 9.04 上编译Firefox 3.5

2009年07月13日,星期一

在64位 9.04 上编译Firefox 3.5

在64位的ubuntu9.04上面使用解压版的Firefox3.5,没法使用64位的Flash插件,命令行下运行可以看到类似下面的错误信息:

lizongbo@lizongbo-nb1:/opt/$ ./
Gtk-Message: Failed to load module “canberra-gtk-module”: /usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so: wrong ELF class: ELFCLASS64
Gtk-Message: Failed to load module “canberra-gtk-module”: /usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so: wrong ELF class: ELFCLASS64
nsHeaderInfo: registerSelf called!
nsHeaderInfo: registerSelf called!
/usr/lib/gio/modules/libgiogconf.so: wrong ELF class: ELFCLASS64
Failed to load module: /usr/lib/gio/modules/libgiogconf.so
/usr/lib/gio/modules/libgvfsdbus.so: wrong ELF class: ELFCLASS64
Failed to load module: /usr/lib/gio/modules/libgvfsdbus.so
/usr/lib/gio/modules/libgioremote-volume-monitor.so: wrong ELF class: ELFCLASS64
Failed to load module: /usr/lib/gio/modules/libgioremote-volume-monitor.so
LoadPlugin: failed to initialize shared library /home/lizongbo/.mozilla/plugins/libflashplayer.so [/home/lizongbo/.mozilla/plugins/libflashplayer.so: wrong ELF class: ELFCLASS64]

因此选择编译代码进行安装:

1.下载源代码:

http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.5/source/firefox-3.5-source.tar.bz2

2.解压 firefox-3.5-source.tar.bz2到 /opt下面:

lizongbo@lizongbo-nb1:/opt/mozilla-1.9.1$ pwd
/opt/mozilla-1.9.1

3.到/opt/mozilla-1.9.1下,运行

./configure –enable-application=browser

根据报错的信息,安装需要的相关库。
大概主要有build-essential 等:
因此运行以下命令安装苦文件:
sudo apt-get install build-essential autoconf automake1.9

sudo apt-get install  libasound2-dev

sudo apt-get install libdbus-glib-1-dev

sudo apt-get install libglib2.0-dev

4.保证./configure –enable-application=browser 能够通过之后,
运行 sudo make ,编译过程需要很长时间,这个时候出去逛一下再回来。
//lizongbo@lizongbo-nb1:/opt/mozilla-1.9.1$ sudo make

5.等make完成了,运行
sudo make install
//lizongbo@lizongbo-nb1:/opt/mozilla-1.9.1$ sudo make install

这个时候安装好了,从菜单里启动的时候不再是firefox3.0.11了。
但是界面是英文的。

6.下载Firefox linux版的中文语言包:

http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.5/linux-i686/xpi/zh-CN.xpi

7.安装之后重启,节目仍然是英文的,这个英文默认编译的属性是英文的。
在地址栏输入:about:config。
然后搜索general.useragent.locale。找到之后,将默认的en-US改成zh-CN,注意是减号不是下划线。

然后重启,中文版的Firefox界面出来了。

8.下载flash64位版插件,下载地址为:
http://download.macromedia.com/pub/labs/flashplayer10/libflashplayer-10.0.22.87.linux-x86_64.so.tar.gz

解压libflashplayer-10.0.22.87.-x86_64.so.tar.gz将libflashplayer.so复制到用户主目录的.mozilla/plugins,即:~/.mozilla/plugins.

(Ubuntu下flash乱码的解决方法为删除49-sansserif.conf,执行下面的命令即可:
cd /etc/fonts/conf.d/
sudo cp 49-sansserif.conf 49-sansserif.conf_backup
sudo rm 49-sansserif.conf)

9.访问谷歌的音乐搜索:
http://www.google.cn/music/songscreener

可以看到flash显示正常。

Tags: , , ,