升级安装 Lighttpd 1.4.30 和 MySQL 5.6.4 

前段时间,Lighttpd 发布了最新的1.4.30版本,修复早些时候的http_auth_mod 的漏洞,虽然对我影响不大,不过还是决定升级了~
之后,MySQL团队也发布了5.6.x 分支的第七个里程碑版本,考虑到我之前编译的5.6.3由于启用了全部的storage engine,导致服务开启后,内存占用过大,故而也打算果断升级。

正好看到PHP和nginx 也发布了新版本,于是便捎带升级一下。

下载对应的源码包:

28 wget http://nginx.org/download/nginx-1.1.11.tar.gz
29 wget http://download.lighttpd.net/lighttpd/r ... 30.tar.bz2
30 wget http://mirrors.dedipower.com/www.mysql. ... -m7.tar.gz
40 wget http://downloads.php.net/stas/php-5.4.0RC4.tar.bz2


别忘了删除旧的版本文件:
[root@PowerPC pub]# rm nginx*
rm:是否删除 一般文件 “nginx-1.1.10.tar.gz”? y
rm:是否删除 一般文件 “nginx-1.1.11.tar.gz”? n
[root@PowerPC pub]# rm lighttp*
rm:是否删除 一般文件 “lighttpd-1.4.29.tar.bz2”? y
rm:是否删除 一般文件 “lighttpd-1.4.30.tar.bz2”? n
[root@PowerPC pub]# rm mysql*
rm:是否删除 一般文件 “mysql-5.6.3-m6.tar.gz”? y
rm:是否删除 一般文件 “mysql-5.6.4-m7.tar.gz”? n
[root@PowerPC pub]# rm php*
rm:是否删除 一般文件 “php-5.4.0beta2.tar.bz2”? y
rm:是否删除 一般文件 “php-5.4.0RC4.tar.bz2”? n
rm:是否删除 一般文件 “phpinfo.php”? n

首先MySQL,解压,进入目录:
我的cmake的configure:
[root@PowerPC mysql-5.6.4-m7]# cmake . \
> -DCMAKE_BUILD_TYPE:STRING=Release \
> -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql \
> -DCMAKE_USE_RELATIVE_PATHS:BOOL=ON \
> -DCOMMUNITY_BUILD:BOOL=ON \
> -DDISABLE_SHARED:BOOL=OFF \
> -DENABLED_PROFILING:BOOL=ON \
> -DENABLE_DOWNLOADS:BOOL=OFF \
> -DINNODB_COMPILER_HINTS:BOOL=OFF \
> -DINSTALL_BINDIR:STRING=../bin \
> -DINSTALL_DOCDIR:STRING=docs \
> -DINSTALL_DOCREADMEDIR:STRING=docs \
> -DINSTALL_INCLUDEDIR:STRING=include \
> -DINSTALL_INFODIR:STRING=docs \
> -DINSTALL_LAYOUT:STRING=STANDALONE \
> -DINSTALL_LIBDIR:STRING=lib \
> -DINSTALL_MANDIR:STRING=man \
> -DINSTALL_MYSQLDATADIR:STRING=data \
> -DINSTALL_MYSQLSHAREDIR:STRING=share \
> -DINSTALL_MYSQLTESTDIR:STRING=mysql-test \
> -DINSTALL_PLUGINDIR:STRING=lib/plugin \
> -DINSTALL_PLUGINTESTDIR:STRING=lib/plugin \
> -DINSTALL_SBINDIR:STRING=../sbin \
> -DINSTALL_SCRIPTDIR:STRING=scripts \
> -DINSTALL_SHAREDIR:STRING=share \
> -DINSTALL_SQLBENCHDIR:STRING=bench \
> -DINSTALL_SUPPORTFILESDIR:STRING=support-files \
> -DMANUFACTURER:STRING='Built from Source by Sharl' \
> -DMYSQL_DATADIR:PATH=/var/mysql \
> -DMYSQL_MAINTAINER_MODE:BOOL=OFF \
> -DOPTIMIZER_TRACE:BOOL=ON \
> -DSYSCONFDIR:PATH=/etc/sysconfig/mysql \
> -DWITHOUT_SERVER:BOOL=OFF \
> -DWITH_ARCHIVE_STORAGE_ENGINE:BOOL=OFF \
> -DWITH_BLACKHOLE_STORAGE_ENGINE:BOOL=OFF \
> -DWITH_DEBUG:BOOL=OFF \
> -DWITH_EMBEDDED_SERVER:BOOL=OFF \
> -DWITH_EXTRA_CHARSETS:STRING=all \
> -DWITH_FEDERATED_STORAGE_ENGINE:BOOL=OFF \
> -DWITH_INNOBASE_STORAGE_ENGINE:BOOL=ON \
> -DWITH_LIBEDIT:BOOL=ON \
> -DWITH_LIBWRAP:BOOL=ON \
> -DWITH_PARTITION_STORAGE_ENGINE:BOOL=OFF \
> -DWITH_PERFSCHEMA_STORAGE_ENGINE:BOOL=OFF \
> -DWITH_READLINE:BOOL=OFF \
> -DWITH_SSL:STRING=no \
> -DWITH_UNIT_TESTS:BOOL=OFF \
> -DWITH_ZLIB:STRING=bundled

检查依赖,没有问题。运行 make 开始编译,之后make install 安装。

完了之后,由于我删除了之前所有的数据库文件,首先运行 scripts 目录下的mysql_install_db 初始化数据库。

初始化好了后,由于MySQL 5.6.x 默认使用InnoDB 作为默认数据引擎。编辑my.cnf 配置文件,加入"ignore-builtin-innodb" 以禁用掉innodb 数据引擎.
再加上
"default-storage-engine=MyISAM" 和 "default_tmp_storage_engine=MyISAM" 把默认存储引擎改成MyISAM.

保存。这样的话就可以启动mysqld 了。内存占用也还可以接受,InnoDB 伤不起~

紧接着,运行mysql_secure_installation 设置root密码,删除测试表,刷新权限表等等~

再然后就可以导入之前备份的数据库SQL文件了。

登陆mysql终端,查看数据库列表:

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| bbpress |
| lighttpd |
| mysql |
| performance_schema |
| phpbb |
| typecho |
| vsftpd |
+--------------------+
8 rows in set (0.01 sec)


一切OK.

查看引擎列表:

mysql> mysql> show engines;
+------------+---------+------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+------------+---------+------------------------------------------------------------+--------------+------+------------+
| CSV | YES | CSV storage engine | NO | NO | NO |
| InnoDB | YES | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |(忽略后,应该不显示)
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| MyISAM | DEFAULT | MyISAM storage engine | NO | NO | NO |
+------------+---------+------------------------------------------------------------+--------------+------+------------+
5 rows in set (0.00 sec)


之后再对对应的库、表重新授权下,就完了。
注:以上操作参考了一下文档
http://dev.mysql.com/doc/refman/5.6/en/ ... tin-innodb
http://dev.mysql.com/doc/refman/5.6/en/ ... gines.html

接下来是PHP,解压,进入目录
我的configure:
[root@PowerPC php-5.4.0RC4]# ./configure \
> --prefix=/usr/local/php \
> --exec-prefix=/usr/local \
> --sysconfdir=/etc/sysconfig/php \
> --localstatedir=/var \
> --disable-cli \
> --enable-fpm \
> --with-fpm-user=http \
> --with-fpm-group=web \
> --with-config-file-path=/etc/sysconfig/php/php.ini \
> --with-config-file-scan-dir=/etc/sysconfig/php \
> --enable-sigchild \
> --disable-ipv6 \
> --with-zlib \
> --with-bz2 \
> --enable-calendar \
> --with-curl \
> --enable-dba=shared \
> --enable-exif \
> --enable-ftp \
> --with-gd \
> --enable-gd-native-ttf \
> --with-mhash \
> --enable-mbstring \
> --with-mcrypt \
> --with-mysql=/usr/local/mysql \
> --with-mysql-sock=/tmp/mysql.sock \
> --with-mysqli=/usr/local/mysql/bin/mysql_config \
> --disable-pdo \
> --with-libedit \
> --enable-soap \
> --enable-sockets \
> --enable-wddx \
> --with-xmlrpc \
> --enable-zip \
> --without-pear

检查依赖,无问题。然后 make && make install 编译安装。
恢复下备份好的配置文件php.ini 和 php-fpm.conf 即可。

然后就是nginx,解压,进入目录
[root@PowerPC nginx-1.1.11]# ./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_image_filter_module \
> --with-http_dav_module \
> --with-http_flv_module \
> --with-http_mp4_module \
> --with-http_gzip_static_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/request \
> --http-proxy-temp-path=/tmp/nginx/proxy \
> --without-mail_pop3_module \
> --without-mail_imap_module \
> --without-mail_smtp_module \
> --with-pcre

检查依赖,一切顺利。编译工具给出了配置概况如下:

Configuration summary
+ using system PCRE library
+ OpenSSL library is not used
+ md5: using system crypto library
+ sha1: using system crypto library
+ 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/request"
nginx http proxy temporary files: "/tmp/nginx/proxy"


确认正确后,开始编译安装.make && make install.
好了后,也是恢复下配置文件,为了保险,最好再测试下配置文件。

最后是lighttpd,解压,进入目录
我的configure:
[root@PowerPC lighttpd-1.4.30]# ./configure \
> --prefix=/usr/local/lighttpd \
> --exec-prefix=/usr/local \
> --sysconfdir=/etc/sysconfig/lighttpd \
> --localstatedir=/var \
> --disable-lfs \
> --disable-ipv6 \
> --with-mysql=/usr/local/mysql/bin/mysql_config \
> --with-attr \
> --with-pcre \
> --with-zlib \
> --with-bzip2

检查依赖,完全满足。同样,编译工具也给出了配置概况如下:

Plugins:

enabled:
mod_access
mod_accesslog
mod_alias
mod_auth
mod_cgi
mod_compress
mod_dirlisting
mod_evhost
mod_expire
mod_extforward
mod_fastcgi
mod_flv_streaming
mod_indexfile
mod_mysql_vhost
mod_proxy
mod_redirect
mod_rewrite
mod_rrdtool
mod_scgi
mod_secdownload
mod_setenv
mod_simple_vhost
mod_ssi
mod_staticfile
mod_status
mod_trigger_b4_dl
mod_userdir
mod_usertrack
mod_webdav
disabled:
mod_cml
mod_magnet

Features:

enabled:
auth-crypt
compress-bzip2
compress-deflate
compress-gzip
regex-conditionals
disabled:
auth-ldap
large-files
network-ipv6
network-openssl
stat-cache-fam
storage-gdbm
storage-memcache
webdav-locks
webdav-properties


确认OK后,编译、安装. make && make install.
还有,恢复下之前的配置文件。再测试下,没问题。

所有一切完成后,就可以重新启动所有的服务了。至此服务器升级到此完成。
还有一点要注意的是,一旦MySQL重新安装后,基于MySQL验证的pam_mysql 模块必须重新编译一次。
[ ] ( 2158 次浏览 ) 永久链接 ( 3.1 / 2706 )
Ubuntu 下MP3 文件Tag 乱码之解决 

前段时间周杰伦发布了其个人的第11张专辑,作为曾经的一位杰迷,我还是毫不犹豫的购买了其正版CD。

到手后便打算着用电脑把CD里面的歌曲压出来放在手机里面,抓轨工具用的是被成为神器的"ABCDE"。

可是,抓完后问题来了。当我在手机里面浏览这些歌曲的时候,乱码出现了~ 查询后发现原来是tag属性的问题.默认是gbk,需要转换成utf-8.

这里需要用到的工具是mid3iconv,隶属于python-mutagen 软件包。
安装:
sharl@sharl-laptop:~$ sudo apt-get install python-mutagen
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
python-mutagen 已经是最新的版本了。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。

进入需要转码的歌曲的目录,列表如下:

sharl@sharl-laptop:/media/Resource/Audio/Jay Chou/惊叹号-CD压制$ ls -lh
总用量 56M
-rw------- 1 sharl sharl 5.8M 2011-11-15 23:52 01 - 周杰伦 - 惊叹号.mp3
-rw------- 1 sharl sharl 6.0M 2011-11-15 23:52 02 - 周杰伦 - 迷魂曲.mp3
-rw------- 1 sharl sharl 6.2M 2011-11-15 23:52 03 - 周杰伦 - MINE MINE.mp3
-rw------- 1 sharl sharl 5.1M 2011-11-15 23:52 04 - 周杰伦 - 公主病.mp3
-rw------- 1 sharl sharl 4.6M 2011-11-15 23:52 05 - 周杰伦 - 你好吗.mp3
-rw------- 1 sharl sharl 4.7M 2011-11-15 23:52 06 - 周杰伦 - 疗伤烧肉粽.mp3
-rw------- 1 sharl sharl 4.6M 2011-11-15 23:52 07 - 周杰伦 - 琴伤.mp3
-rw------- 1 sharl sharl 3.8M 2011-11-15 23:52 08 - 周杰伦 - 水手怕水.mp3
-rw------- 1 sharl sharl 5.7M 2011-11-15 23:52 09 - 周杰伦 - 世界末末日.mp3
-rw------- 1 sharl sharl 5.4M 2011-11-15 23:52 10 - 周杰伦 - 皮影戏.mp3
-rw------- 1 sharl sharl 3.9M 2011-11-15 23:52 11 - 周杰伦 - 超跑女神.mp3


开始转码,
sharl@sharl-laptop:/media/Resource/Audio/Jay Chou/惊叹号-CD压制$ mid3iconv -e utf-8 *
Updating 01 - 周杰伦 - 惊叹号.mp3
No ID3 header found; skipping...
Updating 02 - 周杰伦 - 迷魂曲.mp3
No ID3 header found; skipping...
Updating 03 - 周杰伦 - MINE MINE.mp3
No ID3 header found; skipping...
Updating 04 - 周杰伦 - 公主病.mp3
No ID3 header found; skipping...
Updating 05 - 周杰伦 - 你好吗.mp3
No ID3 header found; skipping...
Updating 06 - 周杰伦 - 疗伤烧肉粽.mp3
No ID3 header found; skipping...
Updating 07 - 周杰伦 - 琴伤.mp3
No ID3 header found; skipping...
Updating 08 - 周杰伦 - 水手怕水.mp3
No ID3 header found; skipping...
Updating 09 - 周杰伦 - 世界末末日.mp3
No ID3 header found; skipping...
Updating 10 - 周杰伦 - 皮影戏.mp3
No ID3 header found; skipping...
Updating 11 - 周杰伦 - 超跑女神.mp3
No ID3 header found; skipping...

当然,我这里的tag已经被我用EasyTag 移除掉了,贴出来仅供参考。

下面是转码前和转码后的audacious 的专辑列表:
之前
之后

[ ] ( 2831 次浏览 ) 永久链接 ( 3 / 2631 )
编译安装 nginx 1.1.10 

前天nginx刚刚发布了1.1.x 开发分支的最新版本1.1.9,看了长长的Changes 列表,我顿时有了一种更新的冲动,还没动手呢,今天就又紧急发布了bugfix版 1.1.10.

故而,果断跟进。

下载源码包(http://nginx.org/download/nginx-1.1.10.tar.gz), 解压,进入目录:
我的configure:
[root@PowerPC nginx-1.1.10]# ./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_dav_module \
> --with-http_flv_module \
> --with-http_mp4_module \
> --with-http_gzip_static_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/request \
> --http-proxy-temp-path=/tmp/nginx/proxy \
> --without-mail_pop3_module \
> --without-mail_imap_module \
> --without-mail_smtp_module \
> --with-pcre \
>

检查依赖,程序给出编译概况:

Configuration summary
+ using system PCRE library
+ OpenSSL library is not used
+ md5: using system crypto library
+ sha1: using system crypto library
+ 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/request"
nginx http proxy temporary files: "/tmp/nginx/proxy"

确认没问题。开始编译和安装.make && make install.
安装完成后,恢复下配置文件 nginx.conf.

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

没问题,升级成功。
[ ] ( 3749 次浏览 ) 永久链接 ( 3 / 2845 )
编译安装 Lighttpd 1.4.29,弃用Hiawatha web server 

由于某些原因,我是不打算再用hiawatha了,可是apache httpd这种重量级的web server 我这等小站实在跑不起,而cherokee web server 体积又太大了。

故而只能使用之前不打算用的lighttpd了。下载源码包:
8 wget http://download.lighttpd.net/lighttpd/r ... 29.tar.bz2
9 wget http://nginx.org/download/nginx-1.1.7.tar.gz

移除旧版本:
[root@PowerPC pub]# rm hiawatha*
rm: remove regular file `hiawatha-7.7.tar.gz'? y
[root@PowerPC pub]# rm nginx*
rm: remove regular file `nginx-1.1.6.tar.gz'? y
rm: remove regular file `nginx-1.1.7.tar.gz'? n

移除hiawatha:

find / -name "hiawatha*" -exec rm -rf {} \;


解压源码包,进入目录:
我的configure:
[root@PowerPC lighttpd-1.4.29]# ./configure \
> --prefix=/usr/local/lighttpd \
> --exec-prefix=/usr/local \
> --sysconfdir=/etc/sysconfig/lighttpd \
> --localstatedir=/var \
> --enable-lfs=no \
> --disable-ipv6 \
> --with-mysql=/usr/local/bin/mysql_config \
> --with-ldap \
> --with-attr \
> --with-pcre \
> --with-zlib \
> --with-bzip2

检查依赖,没有问题。给出的编译概况如下:

Plugins:

enabled:
mod_access
mod_accesslog
mod_alias
mod_auth
mod_cgi
mod_compress
mod_dirlisting
mod_evhost
mod_expire
mod_extforward
mod_fastcgi
mod_flv_streaming
mod_indexfile
mod_mysql_vhost
mod_proxy
mod_redirect
mod_rewrite
mod_rrdtool
mod_scgi
mod_secdownload
mod_setenv
mod_simple_vhost
mod_ssi
mod_staticfile
mod_status
mod_trigger_b4_dl
mod_userdir
mod_usertrack
mod_webdav
disabled:
mod_cml
mod_magnet

Features:

enabled:
auth-crypt
auth-ldap
compress-bzip2
compress-deflate
compress-gzip
regex-conditionals
disabled:
large-files
network-ipv6
network-openssl
stat-cache-fam
storage-gdbm
storage-memcache
webdav-locks
webdav-properties


确认后,make && make install 编译安装。

安装完毕后,开始配置lighttpd.在源码包下的doc/config 目录下已经提供了常用的配置文件样例。只需要复制过来,再稍加编辑即可。

主要需要配置的是mysql_vhost_mod 和 fastcgi_mod 两个模块。分别对应conf.d 下的mysql_vhost.conf 和 fastcgi.conf 文件。

当然,首先得在modules.conf 里面把这两个模块载入进来。

先是mysql_vhost_mod,顾名思义,就是把虚拟主机的配置通过数据库(MySQL)来管理。

以root身份登录MySQL,创建新数据库。
create database lighttpd;

新建用户http,并授予读取权限。
grant select on lighttpd.* to 'http'@'localhost' identified by 'PASS';

进入lighttpd数据库,新建一张表,用户存放虚拟主机记录。

mysql> use lighttpd;
Database changed
mysql> show tables;
Empty set (0.00 sec)

mysql> CREATE TABLE domains (
-> domain varchar(64) not null primary key,
-> docroot varchar(128) not null
-> );
Query OK, 0 rows affected (0.01 sec)


接下来,按照虚拟主机的域名和物理路径,依次插入数据。

结果见:
数据库/表列表:

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| bbs |
| blog |
| lighttpd |
| mysql |
| performance_schema |
| vsftpd |
+--------------------+
7 rows in set (0.00 sec)

mysql> show tables;
+--------------------+
| Tables_in_lighttpd |
+--------------------+
| domains |
+--------------------+
1 row in set (0.00 sec)

表结构:

mysql> describe domains;
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| domain | varchar(64) | NO | PRI | NULL | |
| docroot | varchar(128) | NO | | NULL | |
+---------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

表内容:

mysql> select * from domains;
+-------------------------------+-------------------------------------------+
| domain | docroot |
+-------------------------------+-------------------------------------------+
| 18p2p.tk | /home/http/18p2p_tk/ |
| bbs.xiazhengxin.name | /home/http/bbs_xiazhengxin_name/ |
| blog.xiazhengxin.name | /home/http/blog_xiazhengxin_name/ |
| buypc.tk | /home/http/buypc_tk/ |
| chinesepaladin.tk | /home/http/chinesepaladin_tk/ |
| diyit.tk | /home/http/buypc_tk/ |
| diypc.tk | /home/http/buypc_tk/ |
| droid.tk | /home/http/droid_tk/ |
| linux.xiazhengxin.name | /home/http/linux_xiazhengxin_name/ |
| static.xiazhengxin.name | /home/http/static_xiazhengxin_name/ |
| taiwan-is-a-part-of-china.org | /home/http/taiwan-is-a-part-of-china_org/ |
| tibet-is-a-part-of-china.org | /home/http/tibet-is-a-part-of-china_org/ |
| wikileaks.xiazhengxin.name | /home/http/wikileaks_xiazhengxin_name/ |
| xiazhengxin.name | /home/http/blog_xiazhengxin_name/ |
+-------------------------------+-------------------------------------------+
14 rows in set (0.00 sec)


网站物理目录列表:
[root@PowerPC lighttpd]# ls /home/http -lh
总计 44K
drwxrwxr-x 2 http web 4.0K Dec 1 2010 18p2p_tk
drwxrwxr-x 13 http web 4.0K Jul 3 17:52 bbs_xiazhengxin_name
drwxrwxr-x 5 http web 4.0K Jul 3 17:55 blog_xiazhengxin_name
drwxrwxr-x 16 http web 4.0K Mar 27 2011 buypc_tk
drwxrwxr-x 2 http web 4.0K Jul 13 21:44 chinesepaladin_tk
drwxrwxr-x 2 http web 4.0K Apr 21 2011 droid_tk
drwxrwxr-x 12 http web 4.0K May 20 11:47 linux_xiazhengxin_name
drwxrwxr-x 9 http web 4.0K Jul 3 17:06 pma_xiazhengxin_name
drwxrwxr-x 7 http web 4.0K Jun 1 19:35 static_xiazhengxin_name
drwxrwxr-x 2 http web 4.0K Jul 10 00:36 taiwan-is-a-part-of-china_org
drwxrwxr-x 2 http web 4.0K Dec 21 2010 wikileaks_xiazhengxin_name

之后,就是在mysql_vhost_mod 里面设置好访问数据库的库名、地址、端口、用户名、密码、查询语句即可。见下:

mysql-vhost.db = "lighttpd"
mysql-vhost.user = "http"
mysql-vhost.pass = "PASS"
mysql-vhost.sock = "/tmp/mysqld.sock"
mysql-vhost.sql = "SELECT docroot FROM domains WHERE domain='?';"
mysql-vhost.hostname = "localhost"
mysql-vhost.port = 3306


至此,mysql_vhost_mod 结束。下面是fastcgi_mod.

这个其实和nginx差不多,指明cgi的地址、端口、扩展名即可。
我的如下:

fastcgi.server = (
".php" =>
( "localhost" =>
(
"socket" => "/tmp/php.sock" # 我用的套接字,与地址+端口一致
)
)
)


一切完毕之后,启动lighttpd.
lighttpd -f /etc/sysconfig/lighttpd/lighttpd.conf

至此,安装成功。
还有,本来想顺带升级下nginx的,由于有事,只好作罢~

注:
本文在撰写、实践时参考了以下文档:
http://redmine.lighttpd.net/wiki/lightt ... ionOptions
http://redmine.lighttpd.net/wiki/lightt ... MySQLVhost
http://redmine.lighttpd.net/wiki/lightt ... ModFastCGI

此外,lighttpd 版本信息如下:
[root@PowerPC lighttpd]# lighttpd -V
lighttpd/1.4.29 - a light and fast webserver
Build-Date: Nov 5 2011 23:25:18

Event Handlers:

+ select (generic)
+ poll (Unix)
- rt-signals (Linux 2.4+)
+ epoll (Linux 2.6)
- /dev/poll (Solaris)
- eventports (Solaris)
- kqueue (FreeBSD)
- libev (generic)

Network handler:

+ sendfile

Features:

- IPv6 support
+ zlib support
+ bzip2 support
+ crypt support
- SSL Support
+ PCRE support
+ mySQL support
+ LDAP support
- memcached support
- FAM support
- LUA support
- xml support
- SQLite support
- GDBM support
[ ] ( 2439 次浏览 ) 永久链接 ( 3 / 2853 )
升级VPS 

自国庆后一直没有怎么做自己的事情,因为实在是事情太多了~

终于在这几天有了些空闲的时间,可以做一些自己的事情了,也看到我服务器上正在跑的一些服务都有了新版本的诞生,故而决定果断跟进。

首先,下载需要安装的软件升级包:
10 wget http://downloads.php.net/stas/php-5.4.0beta2.tar.bz2
12 wget http://www.hiawatha-webserver.org/files ... 7.7.tar.gz
16 wget http://mysql.he.net/Downloads/MySQL-5.6 ... -m6.tar.gz
42 wget http://nginx.org/download/nginx-1.1.6.tar.gz
43 wget http://repo.varnish-cache.org/source/va ... 0.1.tar.gz

删除各自的修版本:
[root@PowerPC pub]# rm php*
rm: remove regular file `php-5.4.0alpha1.tar.bz2'? y
rm: remove regular file `php-5.4.0beta2.tar.bz2'? n
rm: remove regular file `phpBB-3.0.8.tar.bz2'? n
rm: remove regular file `phpinfo.php'? n
rm: remove regular file `phpMyAdmin-3.4.0-beta4-all-languages.tar.gz'? n
[root@PowerPC pub]# rm mysql*
rm: remove regular file `mysql-5.6.2-m5.tar.gz'? y
rm: remove regular file `mysql-5.6.3-m6.tar.gz'? n
[root@PowerPC pub]# rm hiawatha*
rm: remove regular file `hiawatha-7.6.tar.gz'? y
rm: remove regular file `hiawatha-7.7.tar.gz'? n
[root@PowerPC pub]# rm nginx*
rm: remove regular file `nginx-1.1.1.tar.gz'? y
rm: remove regular file `nginx-1.1.6.tar.gz'? n
[root@PowerPC pub]# rm varnish*
rm: remove regular file `varnish-3.0.1-rc1.tar.gz'? y
rm: remove regular file `varnish-3.0.1.tar.gz'? n

依次解压,结构如下:
[root@PowerPC ~]# ls
mysql-5.6.3-m6 pam_mysql-0.7RC1 varnish-3.0.1
hiawatha-7.7 nginx-1.1.6 php-5.4.0beta2

进入目录,首先是mysql:
我的cmake 参数:
[root@PowerPC mysql-5.6.3-m6]# cmake . \
> -DBACKUP_TEST:BOOL=OFF \
> -DCMAKE_BUILD_TYPE:STRING=Release \
> -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql \
> -DCMAKE_USE_RELATIVE_PATHS:BOOL=ON \
> -DCOMMUNITY_BUILD:BOOL=ON \
> -DDISABLE_SHARED:BOOL=OFF \
> -DENABLE_DEBUG_SYNC:BOOL=OFF \
> -DINSTALL_BINDIR:STRING=../bin \
> -DINSTALL_LAYOUT:STRING=STANDALONE \
> -DINSTALL_SBINDIR:STRING=../sbin \
> -DMYSQL_DATADIR:PATH=/var/mysql \
> -DSYSCONFDIR:PATH=/etc/sysconfig/mysql \
> -DWITH_ARCHIVE_STORAGE_ENGINE:BOOL=ON \
> -DWITH_BLACKHOLE_STORAGE_ENGINE:BOOL=ON \
> -DWITH_DEBUG:BOOL=OFF \
> -DWITH_EMBEDDED_SERVER:BOOL=OFF \
> -DWITH_EXTRA_CHARSETS:STRING=all \
> -DWITH_FEDERATED_STORAGE_ENGINE:BOOL=ON \
> -DWITH_INNOBASE_STORAGE_ENGINE:BOOL=ON \
> -DWITH_LIBEDIT:BOOL=ON \
> -DWITH_LIBWRAP:BOOL=ON \
> -DWITH_PARTITION_STORAGE_ENGINE:BOOL=ON \
> -DWITH_PERFSCHEMA_STORAGE_ENGINE:BOOL=ON \
> -DWITH_READLINE:BOOL=OFF \
> -DWITH_SSL:STRING=no \
> -DWITH_UNIT_TESTS:BOOL=OFF \
> -DWITH_ZLIB:STRING=bundled

更多参见帮助:cmake . -LAH

之后,开始编译,安装.
make && make install

mysql安装完毕后,使用之前的数据库文件初始化数据库.
[root@PowerPC mysql]# scripts/mysql_install_db \
> --basedir=/usr/local/mysql \
> --datadir=/var/mysql \
> --user=mysql

恢复备份的配置文件:
mv bak/my.cnf /etc/sysconfig/mysql/
启动mysql:
mysqld_safe &
清理测试表,刷新权限表:
mysql_secure_installation

至此,mysql升级完成.

可是,我居然发现这次的mysql服务吃掉了我vps接近90%的内存,很是惊讶~
我想可能是由于我之前编译的时候,编译进了很多存储引擎的支持,如archive、blackhole等,杯具了,我又不想重新编译,故而在my.cnf 中禁用掉了其他的存储引擎,如 skip-federated.

这才好了一点,看来以后不能那么贪心了~

mysql 更新了,用于vsftpd 验证虚拟用户的pam_mysql 也得重新编译了。版本还是老版本 0.7RC1,进入目录:
我的configure:
[root@PowerPC pam_mysql-0.7RC1]# ./configure \
> --with-mysql=/usr/local/mysql

(仅)编译,make.完了之后,在当前目录下找到并把生成的pam_mysql.so 库替换掉之前的老版本。
[root@PowerPC pam_mysql-0.7RC1]# find . -name pam*.so
./.libs/pam_mysql.so

[root@PowerPC pam_mysql-0.7RC1]# cp ./.libs/pam_mysql.so /lib/security
cp: overwrite `/lib/security/pam_mysql.so'? y

这时候,重启vsftpd,就应该生效了~
killall vsftpd
ldconfig -v #别忘了刷新系统链接库
vsftpd &

接下来,php:
我的configure:
[root@PowerPC php-5.4.0beta2]# ./configure \
> --prefix=/usr/local/php \
> --exec-prefix=/usr/local \
> --sysconfdir=/etc/sysconfig/php \
> --localstatedir=/var \
> --disable-cli \
> --enable-fpm \
> --with-fpm-user=http \
> --with-fpm-group=web \
> --with-config-file-path=/etc/sysconfig/php/php.ini \
> --with-config-file-scan-dir=/etc/sysconfig/php \
> --disable-ipv6 \
> --with-zlib \
> --with-bz2 \
> --enable-calendar \
> --with-curl \
> --enable-dba=shared \
> --enable-exif \
> --enable-ftp \
> --with-gd \
> --enable-gd-native-ttf \
> --with-mhash \
> --enable-mbstring \
> --with-mcrypt \
> --with-mysql=/usr/local/mysql \
> --with-mysql-sock=/tmp/mysql.sock \
> --with-mysqli=/usr/local/bin/mysql_config \
> --with-pdo-mysql=/usr/local/mysql \
> --with-libedit \
> --enable-soap \
> --enable-sockets \
> --enable-wddx \
> --with-xmlrpc \
> --with-xsl \
> --enable-zip \
> --without-pear

检查依赖,没有问题。之后编译,安装。
make && make install.

完了之后,恢复下之前备份过的配置文件,php-fpm.conf、php.ini 即可.

紧接着,web 服务器,先是hiawatha,最新的7.7版本是一个安全修复版,推荐更新:
我的configure:
[root@PowerPC hiawatha-7.7]# ./configure \
> --prefix=/usr/local/hiawatha \
> --exec-prefix=/usr/local \
> --sysconfdir=/etc/sysconfig \
> --localstatedir=/var \
> --disable-largefile \
> --enable-chroot \
> --enable-command \
> --disable-ipv6 \
> --disable-monitor \
> --disable-ssl

检查依赖,编译,安装,都很顺利。
make && make install.

最后,恢复下配置文件 hiawatha.conf、php-fcgi.conf(主要是这两个)。

然后是nginx,最新的开发版:
我的configure:
[root@PowerPC nginx-1.1.6]# ./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=/tmp/nginx.lock \
> --user=http \
> --group=web \
> --with-select_module \
> --with-poll_module \
> --with-http_image_filter_module \
> --with-http_sub_module \
> --with-http_dav_module \
> --with-http_flv_module \
> --with-http_mp4_module \
> --with-http_gzip_static_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/request \
> --http-proxy-temp-path=/tmp/nginx/proxy \
> --without-mail_pop3_module \
> --without-mail_imap_module \
> --without-mail_smtp_module \
> --with-pcre

检查依赖,系统给出编译概况:

Configuration summary
+ using system PCRE library
+ OpenSSL library is not used
+ md5: using system crypto library
+ sha1: using system crypto library
+ 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/request"
nginx http proxy temporary files: "/tmp/nginx/proxy"


确认无误后,make && make install 编译,安装。
一切OK后,依然恢复下配置文件 nginx.conf

最后就是一个web缓存服务器varnish,前天下载时候还是3.0.1版本,今天就发布了3.0.2版本,囧rz
我的configure:
[root@PowerPC varnish-3.0.2]# ./configure \
> --prefix=/usr/local/varnish \
> --exec-prefix=/usr/local \
> --sysconfdir=/etc/sysconfig \
> --localstatedir=/var \
> --disable-largefile \
> --enable-kqueue \
> --enable-epoll \
> --enable-ports \
> --with-jemalloc

检查依赖,没问题。编译,安装.
make && make install

最后,还是别忘了恢复下配置文件。

至此,服务器升级完毕。

[ ] ( 2531 次浏览 ) 永久链接 ( 3.1 / 2828 )

<< <上一页 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 下一页> >>