编译安装 nginx 0.9.0 通过 

今天接到nginx 邮件通知,nginx 0.9.x 开发分支的第一个版本发布了.想想看nginx 0.8.x 进入稳定分支没几天,作者又开始了,真是闲不住呀.而我的nginx 现在还停在 0.8.50,连稳定版都没赶上,本来就打算升级的,这下正好,直接进 0.9.x 了.

下载最新的源码包,解压,进入目录
我的configure:
[root@PowerPC nginx-0.9.0]# ./configure \
> --prefix=/usr/local/nginx \
> --sbin-path=/usr/local/sbin/nginx \
> --conf-path=/etc/sysconfig/nginx/nginx.conf \
> --error-log-path=/var/log/nginx/error.log \
> --pid-path=/var/run/nginx.pid \
> --lock-path=/var/run/nginx.lock \
> --user=http \
> --group=web \
> --with-select_module \
> --with-poll_module \
> --with-http_xslt_module \
> --with-http_flv_module \
> --with-http_gzip_static_module \
> --without-http_geo_module \
> --without-http_map_module \
> --without-http_fastcgi_module \
> --without-http_uwsgi_module \
> --without-http_scgi_module \
> --http-log-path=/var/log/nginx/access.log \
> --http-client-body-temp-path=/tmp/nginx/proxy.tmp \
> --http-proxy-temp-path=/tmp/nginx/body.tmp \
> --without-mail_pop3_module \
> --without-mail_imap_module \
> --without-mail_smtp_module

检查依赖,没有任何问题. configure 给出了编译小结(见下):
Configuration summary
+ using system PCRE library
+ OpenSSL library is not used
+ md5: using system crypto library
+ sha1 library is not used
+ using system zlib library

nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/sbin/nginx"
nginx configuration prefix: "/etc/sysconfig/nginx"
nginx configuration file: "/etc/sysconfig/nginx/nginx.conf"
nginx pid file: "/var/run/nginx.pid"
nginx error log file: "/var/log/nginx/error.log"
nginx http access log file: "/var/log/nginx/access.log"
nginx http client request body temporary files: "/tmp/nginx/body.tmp"
nginx http proxy temporary files: "/tmp/nginx/proxy.tmp"

在确认安装路径和配置路径等等都没有问题后,make 编译.接下来安装至指定目录, make install.(复制一些二进制文件和配置文件 以及man手册……)

make[1]: Entering directory `/root/nginx-0.9.0'
test -d '/usr/local/nginx' || mkdir -p '/usr/local/nginx'
test -d '/usr/local/sbin' || mkdir -p '/usr/local/sbin'
test ! -f '/usr/local/sbin/nginx' || mv '/usr/local/sbin/nginx' '/usr/local/sbin/nginx.old'
cp objs/nginx '/usr/local/sbin/nginx'
test -d '/etc/sysconfig/nginx' || mkdir -p '/etc/sysconfig/nginx'
cp conf/koi-win '/etc/sysconfig/nginx'
cp conf/koi-utf '/etc/sysconfig/nginx'
cp conf/win-utf '/etc/sysconfig/nginx'
test -f '/etc/sysconfig/nginx/mime.types' || cp conf/mime.types '/etc/sysconfig/nginx'
cp conf/mime.types '/etc/sysconfig/nginx/mime.types.default'
test -f '/etc/sysconfig/nginx/fastcgi_params' || cp conf/fastcgi_params '/etc/sysconfig/nginx'
cp conf/fastcgi_params '/etc/sysconfig/nginx/fastcgi_params.default'
test -f '/etc/sysconfig/nginx/fastcgi.conf' || cp conf/fastcgi.conf '/etc/sysconfig/nginx'
cp conf/fastcgi.conf '/etc/sysconfig/nginx/fastcgi.conf.default'
test -f '/etc/sysconfig/nginx/uwsgi_params' || cp conf/uwsgi_params '/etc/sysconfig/nginx'
cp conf/uwsgi_params '/etc/sysconfig/nginx/uwsgi_params.default'
test -f '/etc/sysconfig/nginx/scgi_params' || cp conf/scgi_params '/etc/sysconfig/nginx'
cp conf/scgi_params '/etc/sysconfig/nginx/scgi_params.default'
test -f '/etc/sysconfig/nginx/nginx.conf' || cp conf/nginx.conf '/etc/sysconfig/nginx/nginx.conf'
cp conf/nginx.conf '/etc/sysconfig/nginx/nginx.conf.default'
test -d '/var/run' || mkdir -p '/var/run'
test -d '/var/log/nginx' || mkdir -p '/var/log/nginx'
test -d '/usr/local/nginx/html' || cp -r html '/usr/local/nginx'
test -d '/var/log/nginx' || mkdir -p '/var/log/nginx'
make[1]: Leaving directory `/root/nginx-0.9.0'


至此,安装完成.
将之前备份的配置文件覆盖同名文件 /etc/sysconfig/nginx/nginx.conf,且确保存在可被写入的文件夹 /tmp/nginx.即可启动 nginx.

本地测试一下,
[root@PowerPC nginx]# curl localhost:83
<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/0.9.0</center>
</body>
</html>

查看下版本,
[root@PowerPC nginx]# nginx -v
nginx: nginx version: nginx/0.9.0

恩,一切OK.
[ ] ( 3768 次浏览 ) 永久链接 ( 3 / 2626 )
在ubuntu上安装fcitx 4.0.0 (PPA源) 

Fcitx - Free Chinese Input Toy of X,简称小企鹅输入法。是我比较喜欢的linux下的中文输入法。

以前ibus 不行的时候我一直在用,不过随着ibus越来越好也就没怎么用过~懒得换了。
不过最近fcitx发布了4.0.0版本,听网友们说体验很好,而且新增的一款皮肤也很给力,故而打算试试了。。。

众所周知,fcitx 从3.6.3版本开始就不再提供deb包了(测试版除外),不过fcitx官方维护了一个PPA的源,所以我就直接从PPA安装了.
PPA源地址是:https://launchpad.net/~wengxt/+archive/fcitx-nightly

打开终端,按照 sudo add-apt-repository ppa:user/ppa-name 这样的格式,
运行: sudo add-apt-repository ppa:wengxt/fcitx-nightly
添加PPA的源,自动添加/验证公钥后就可以了。

之后别忘了: sudo apt-get update ,更新下软件库.

这下就可以安装fcitx了.
sudo apt-get install fcitx fcitx-config
注:由于ubuntu官方源里面也有fcitx,可能会和PPA的搞混,这点经过测试是不用担心。

安装完了后,运行 im-switch, 选中 fcitx 就可以设为默认输入法了.
此时可以运行 fcitx-config 配置下小企鹅,比如候选词的数量、皮肤、模糊音、快捷键等等。
这里要说下,小企鹅默认的上下翻页是 - 和 = ,而我则习惯用 page up 和 page down,可以在快捷键里面改掉。

- 改成 PGUP, = 改成 PGDN. 保存即可.如图

最后,重启x 使输入法生效.
sudo service gdm restart
[ ] ( 2972 次浏览 ) 永久链接 ( 3 / 2632 )
编译安装 MySQL Community Server 5.1.53 通过 

刚刚搞好VPS没几天,今天接到MySQL 邮件通知,MySQL Community Server 5.1.53 GA 发布了。修复了一些bug,不算多。

不过想想还是升级了。因为上个版本的mysql安装的 /var 目录有些问题,导致多出了好些个表。那些目录删又删不得,看着实在别扭,故而打算重新安装了.

首先,在安装之前,先导出需要备份的几个表。这次要一个个导出,不能像以前一样(用 --all-databases),图省事导出全部了.

mysqldump -u root -p database1 database2 database3 > DBbak.sql 即可.

然后rm掉之前的mysql.下载最新5.1.53的源码包。解压,进入目录

我的configure:
[root@PowerPC mysql-5.1.53]# ./configure \
> --prefix=/usr/local/mysql \
> --exec-prefix=/usr/local \
> --sysconfdir=/etc/sysconfig/mysql \
> --localstatedir=/var/run/mysql \ #这里变了
> --enable-profiling \
> --disable-largefile \
> --with-charset=utf8 \
> --with-extra-charsets=all \
> --with-system-type=PowerOS \
> --with-machine-type=PowerPC \
> --with-server-suffix=By_Sharl \
> --with-unix-socket-path=/tmp/mysql.sock \
> --with-mysqld-user=mysql \
> --with-zlib-dir=bundled \
> --with-low-memory \
> --with-plugins=all \
> --with-embedded-server \
> --without-geometry \
> --with-embedded-privilege-control \
> --without-docs \
> --without-man

检查依赖,没有任何问题,然后就是 make && make install.编译安装.
一切OK后,老规矩:
复制support-files 下的中等配置 my-medium.cnf 到 /etc 下.
cp support-files/my-medium.cnf /etc/my.cnf

接下来安装数据库,mysql_install_db.
这个时候,确保指定的var 目录可被mysql 写入。
chown -R mysql /var/run/mysql

再然后 mysql_secure_installation, 安全模式安装mysql.
在设置完密码,删掉测试表后。就可以启动mysql了.
mysqld_safe --user=mysql &.

启动成功后,导入之前备份的表数据.
mysql -u root -p < dbbak.sql.
由于我没有备份mysql.user表,所以以前的用户都丢失了。此时最好再重新授权一下。
grant all on database1.table2 to 'user3'@'localhost' identified by 'password4'.
最好再刷新下权限表。一切就OK了。MySQL 升级完成.
[ ] ( 3640 次浏览 ) 永久链接 ( 3 / 2444 )
在Centos 上安装 配置 vsftpd 2.3.2 

早就像换掉proftpd 了,虽然它类似apache httpd 的配置文件格式很友好,不过体积太大最终还是让我抛弃了它。

还是 vsftpd 吧,下载最新版本2.3.2,解压,进入目录

众所周知,vsftpd 提供现成的Makefile,源码安装极其简单。直接make && make install.

我现在所要做的就是让vsftpd 支持虚拟用户登录,而且用户表是从mysql 里的vsftpd 库中的users里面读出来的.

首先确保本地有pam_mysql.so 库文件,没有的话,去 pam-mysql.sf.net 下载源码自编译一个.这里不赘述.

复制 vsftpd 源码包下的 vsftpd.conf 到 /etc 下.
复制 RedHat 目录下的 vsftpd.pam 到 /etc/pam.d 目录下,并改名为 ftp.

ftp 内容为:

[root@PowerPC ~]# cat /etc/pam.d/ftp
#%PAM-1.0
auth required /lib/security/pam_mysql.so user=ftp passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /lib/security/pam_mysql.so user=ftp passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2


同时确保mysql 里面有vsftpd数据库,里面有一张users的表.
字段见描述:

mysql> describe vsftpd.users;
+----------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+----------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | char(50) | NO | | NULL | |
| password | char(50) | NO | | NULL | |
+----------+----------+------+-----+---------+----------------+
3 rows in set (0.00 sec)


可以插入几条测试数据.

之后,再编辑下/etc/vsftpd.conf 文件,关键的一部分如下:

guest_enable=YES
guest_username=ftp
ftp_username=ftp
user_sub_token=$USER
local_root=/home/ftp/$USER
user_config_dir=/etc/sysconfig/vsftpd #用于重载一些特殊用户的配置
virtual_use_local_privs=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
nopriv_user=ftp
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/sysconfig/vsftpd/ftpusers
#该文件里包含所有需要被chroot() 用户的列表。一个一行.


这样一来的话就差不多了。
killall vsftpd 杀掉 vsftpd 进程.
重启ftp. vsftpd &.

试试看 ftp 127.0.0.1,应该可以登录了.

至此,vsftpd + pam_mysql 虚拟用户配置完成.

注:关于vsftpd 的更多选项,
参见:http://vsftpd.beasts.org/vsftpd_conf.html
或者 man vsftpd.conf .
[ ] ( 3262 次浏览 ) 永久链接 ( 3 / 2641 )
服务器升级 - MySQL 5.1.52 & hiawatha 7.4 & varnish 2.1.4 

话说服务器大半个月没碰了,很多东西有了新的版本。最近有了闲功夫便一一升级安装了。

首先是MySQL,本来我是要安装5.5.x 分支的 5.5.7 rc的,可是和之前的5.5.6 rc 一样,就是死活编译不通过。故而只好放弃了。开发版的东西果然够呛。

下载5.1.x GA 最新的5.1.52版本源码,解压,进入目录

我的configure:
[root@PowerPC mysql-5.1.52]# ./configure \
> --prefix=/usr/local/mysql \
> --exec-prefix=/usr/local \
> --sysconfdir=/etc/sysconfig/mysql \
> --localstatedir=/var/run \
> --enable-profiling \
> --disable-largefile \
> --with-charset=utf8 \
> --with-extra-charsets=all \
> --with-unix-socket-path=/tmp/mysql.sock \
> --with-mysqld-user=mysql \
> --with-zlib-dir=bundled \
> --with-low-memory \
> --with-embedded-server \
> --without-geometry \
> --with-embedded-privilege-control \
> --without-docs \
> --without-man

检查依赖没有任何问题,接下来make 编译.也很顺利.之后就是make install 安装到指定目录.

完了之后,把support-files 下的my-medium,cnf 复制到 /etc 下,重命名为my.cnf即可.

执行 mysql_init_db 初始化数据库,紧接着 运行 mysql_secure_installation,按照提示,设置root 密码,删除测试表等.

如果像我一样有之前用mysqldump 导出备份的,直接 mysql -u root -p < DBbak.sql 即可.

之后,进入 mysql, flush privileges; 刷新下权限表即可.

接下来是 hiawatha,下载最新的7.4版本,此版本只是修复了bug,没有任何新特征.
解压,进入目录

我的configure:
[root@PowerPC hiawatha-7.4]# ./configure \
> --prefix=/usr/local/hiawatha \
> --exec-prefix=/usr/local \
> --sysconfdir=/etc/sysconfig/hiawatha \
> --localstatedir=/var/run \
> --disable-largefile \
> --disable-ipv6 \
> --disable-ssl

检查依赖,OK,make && make install 即可。
然后就是把自动生成的配置文件删掉,替换之以之前备份的配置.
不出意外的话,应该就可以启动服务器了.


最后是 varnish cache 2.1.4,同样是下载源码包,解压,进入目录

我的configure:
[root@PowerPC varnish-2.1.4]# ./configure \
> --prefix=/usr/local/varnish \
> --exec-prefix=/usr/local \
> --sysconfdir=/etc/sysconfig/varnish \
> --localstatedir=/var/run \
> --disable-largefile

varnish 编译起来比其他几个都要简单,因为给的参数很少。
检查依赖通过,紧接着 make && make install.速度也很快.

和hiawatha 一样,用备份好的default.vcl 覆盖默认的配置文件,即可.

启动 varnish, varnishd -a :80 -f /path/to/default.vcl -u cache.
测试一下,一切OK。升级完成.
[ ] ( 2569 次浏览 ) 永久链接 ( 3 / 2446 )

<< <上一页 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 下一页> >>