编译安装 MySQL 5.5.8 GA 通过 

自从编译 MySQL 5.5.6 及 5.5.7 两个RC 一直通不过,我就转投了 MySQL 5.1.x 稳定分支.不过就在前几天,MySQL 5.5.x 分支居然GA了. 一直对5.5.x 没有信心的我于是便想再尝试一下。

火速下载了源码包(http://mysql.mirrors.pair.com/Downloads/MySQL-5.5/mysql-5.5.8.tar.gz),解压,进入目录.

值得注意的是,MySQL 5.5.8 GA 及以上使用了 CMake 编译,动手之前最好阅读下源码包下的 README 和 INSTALL-SOURCE.关于CMake 用法,可以参见:http://forge.mysql.com/wiki/CMake

我的编译参数:
[[email protected] mysql-5.5.8]# cmake . \
> -DCMAKE_BUILD_TYPE:STRING=Release \
> -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql \
> -DCOMMUNITY_BUILD:BOOL=ON \
> -DENABLED_PROFILING:BOOL=ON \
> -DENABLE_DEBUG_SYNC:BOOL=OFF \
> -DINSTALL_LAYOUT:STRING=STANDALONE \
> -DMYSQL_DATADIR:PATH=/var/run/mysql \
> -DMYSQL_MAINTAINER_MODE:BOOL=OFF \
> -DWITH_EMBEDDED_SERVER:BOOL=ON \
> -DWITH_EXTRA_CHARSETS:STRING=all \
> -DWITH_SSL:STRING=bundled \
> -DWITH_UNIT_TESTS:BOOL=OFF \
> -DWITH_ZLIB:STRING=bundled \
> -LH


查看更多参数:cmake . -LAH # H为打印说明开关符、A为打印所有开关符

乍用cmake 替代 autotools,很多人会很不习惯。MySQL也有此考虑,可以使用 ./cmake/configure.pl 生成 configure.


生成makefile文件,没有问题的话,就直接make 编译.耐心等待即可,且有进度(%)显示.

编译完成后,make install 安装到指定目录.

按照之前的打算,使用mysql_install_db 回复数据库就OK了。
可是我错了,运行完
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/var/run/mysql --user=mysql
后,报错了~~

[ERROR] Incorrect definition of table mysql.proc: expected column 'comment' at position 15 to have type text, found type char(64).


搜索了一下,擦~居然是个bug(参见:http://bugs.mysql.com/bug.php?id=52444),很多像我一下从MySQL 5.1.x 升级到 5.5.x 的用户都遇到了,该patch 已经提交了,不过修复可能要在下一个版本才能好。

无奈,只好再试试其他办法了。按照MySQL 5.5 手册的说法,

mysqld --user=mysql --skip-grant-tables & #启动mysql
mysql_upgrade #数据库升级


虽然期间有过error 出现,不过好在结果还是OK的.
试着下启动MySQL, mysqld_safe --user=mysql & ,查询、删除都没有问题。
至此,MySQL 5.5.8 安装算是完成了.

兴高采烈的准备重启服务器的服务,
service myservice stop && service myservice start.

打开网站,503!!!

ps -e 查看进程,php-fpm 没有起来……

迅速的手动启动,杯具了~

[[email protected] mysql-5.5.8]# php-fpm
php-fpm: /usr/local/mysql/lib/libmysqlclient.so.16: no version information available (required by php-fpm)

囧rz.....

不知道是不是又是个bug?看来这个问题,只能提交到邮件列表了……本人无能为力.

先用php-fcgi 顶替吧,运行 php-fcgi -v.

[[email protected]PC mysql-5.5.8]# php-fcgi -v
-bash: fork: Cannot allocate memory
[[email protected] mysql-5.5.8]# ps -e
-bash: fork: Cannot allocate memory
[[email protected] mysql-5.5.8]# ps -e
-bash: fork: Cannot allocate memory
[[email protected] mysql-5.5.8]# ls
-bash: fork: Cannot allocate memory
[[email protected] mysql-5.5.8]# top
-bash: fork: Cannot allocate memory
[[email protected] mysql-5.5.8]# php-fpm
-bash: fork: Cannot allocate memory
[[email protected] mysql-5.5.8]# top
-bash: fork: Cannot allocate memory


目前情绪稳定.
[ ] ( 5734 次浏览 ) 永久链接 ( 3 / 1483 )
给 php 增加 eAccelerator 插件 

刚装好php 5.3.4,跑起来感觉反应速度不是很给力 - -|| 于是便打算再安装个加速器.
本来我之前的5.3.3也有,不过被我与主程序一道干掉了,只好重新编译了。

从svn 库里面签出最新版本:
svn --username anonymous --password anonymous co https://svn.eaccelerator.net/eaccelerator/trunk eaccelerator

居然还是 r427 …… 居然这么长时间没更新 囧rz

只好从头再来了。

进入目录,phpize 生成 configure 文件,然后直接运行 ./configure (无任何参数) 检查依赖。

之后,开始编译插件 make.

编译完了后,find . -name "*.so" 会发现 eaccelerator.so 已经生成了.而且有两个,分别位于 modules 和 lib 下. 任选其一(其实都一样)复制到 php 扩展目录下.

cp modules/* /usr/local/lib/php/extensions/no-debug-non-zts-20090626/

即可。编辑 php.ini 文件,把之前注释掉的关于载入“eAccelerator” 的配置再反注掉,保存,重启 php-fpm 就OK了.

[[email protected] ~]# php-fpm -v
PHP 5.3.4 (fpm-fcgi) (built: Dec 17 2010 09:23:44)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with eAccelerator v1.0-dev, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
[ ] ( 2959 次浏览 ) 永久链接 ( 3 / 1531 )
编译安装 PHP 5.3.4 通过 

前段时间,php 发布了5.3.4版本,修复了在 PHP-FPM SAPI 方面的一些bug,于是便打算跟进了.

先完全卸载掉之前的php 版本,下载最新的5.3.4源码包(http://www.php.net/distributions/php-5.3.4.tar.bz2),解压,进入目录

我的configure:
[[email protected] php-5.3.4]# ./configure \
> --prefix=/usr/local/php \
> --exec-prefix=/usr/local \
> --sysconfdir=/etc/sysconfig/php \
> --localstatedir=/var/run \
> --disable-cli \
> --enable-embed=no \
> --enable-fpm \
> --with-fpm-user=http \
> --with-fpm-group=web \
> --with-config-file-path=/etc/php.ini \
> --with-config-file-scan-dir=/etc/sysconfig/php \
> --with-exec-dir=/usr/local/bin \
> --disable-ipv6 \
> --with-openssl \
> --with-kerberos \
> --with-pcre-regex \
> --with-zlib \
> --with-bz2 \
> --enable-calendar \
> --with-curl \
> --with-curlwrappers \
> --enable-dba=shared \
> --enable-exif \
> --enable-ftp \
> --with-gd \
> --enable-gd-native-ttf \
> --with-gettext \
> --with-mhash \
> --with-imap \
> --with-kerberos \
> --with-imap-ssl \
> --enable-intl \
> --with-ldap \
> --enable-mbstring \
> --with-mcrypt \
> --with-mysql=/usr/local/mysql \
> --with-mysql-sock=/tmp/mysql.sock \
> --with-mysqli=/usr/local/bin/mysql_config \
> --enable-soap \
> --enable-sockets \
> --enable-sqlite-utf8 \
> --enable-wddx \
> --with-xmlrpc \
> --with-xsl \
> --enable-zip \
> --enable-zend-multibyte \
> --without-pear

检查依赖。报错了,

checking for MySQL support... yes
checking for specified location of the MySQL UNIX socket... /tmp/mysql.sock
configure: error: Cannot find libmysqlclient under /usr/local/mysql.
Note that the MySQL client library is not bundled anymore!


是mysql 安装目录不完整的问题,解决方案:
1.进入mysql 安装根目录
2.ln -s /usr/local/lib lib

make distclean ,再次检查依赖,通过了。

接下来,make 编译,时间会比较长。耐心等待……
编译完成后,make install 安装即可.


[[email protected] php-5.3.4]# make install
Installing PHP SAPI module: fpm
Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20090626/
Installing PHP FPM binary: /usr/local/sbin/
Installing PHP FPM config: /etc/sysconfig/php/
Installing PHP FPM man page: /usr/local/php/man/man8/
Installing build environment: /usr/local/lib/php/build/
Installing header files: /usr/local/php/include/php/
Installing helper programs: /usr/local/bin/
program: phpize
program: php-config
Installing man pages: /usr/local/php/man/man1/
page: phpize.1
page: php-config.1
Installing PDO headers: /usr/local/php/include/php/ext/pdo/


测试下php,

[[email protected] php-5.3.4]# php-fpm -v
PHP 5.3.4 (fpm-fcgi) (built: Dec 17 2010 09:23:44)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

一切正常。再把之前备份的配置文件放到 /etc/sysconfig/php 下,启动php-fpm 就OK了.

至此,php 升级安装完成.
[ ] ( 1337 次浏览 ) 永久链接 ( 3 / 1402 )
编译安装 nginx 0.9.0 通过 

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

下载最新的源码包,解压,进入目录
我的configure:
[[email protected] 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.

本地测试一下,
[[email protected] 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>

查看下版本,
[[email protected] nginx]# nginx -v
nginx: nginx version: nginx/0.9.0

恩,一切OK.
[ ] ( 2878 次浏览 ) 永久链接 ( 3 / 1397 )
在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
[ ] ( 1737 次浏览 ) 永久链接 ( 3 / 1415 )

<< <上一页 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 下一页> >>