服务器升级之二 mysql 5.5.9、php 5.3.6RC 编译安装 

接上一篇。

刚搞完前端,就开始折腾后端。主要就是个 php 和 mysql.正好前一段时间的那个php没有版本信息的问题还未解决,今天索性办了.

先mysql,后php。这是惯例.
mysql 5.5.9 http://mirror.services.wisc.edu/mysql/D ... 5.9.tar.gz

下载源码包,解压,进入目录
我的cmake参数:
[root@PowerPC mysql-5.5.9]# cmake . \
> -DCMAKE_BUILD_TYPE:STRING=Release \
> -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql \
> -DCMAKE_USE_RELATIVE_PATHS:BOOL=OFF \
> -DCOMMUNITY_BUILD:BOOL=ON \
> -DENABLED_PROFILING:BOOL=ON \
> -DENABLE_DEBUG_SYNC: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=test \
> -DINSTALL_PLUGINDIR:STRING=lib/plugin \
> -DINSTALL_SBINDIR:STRING=sbin \
> -DINSTALL_SCRIPTDIR:STRING=scripts \
> -DINSTALL_SHAREDIR:STRING=share \
> -DINSTALL_SQLBENCHDIR:STRING=sql \
> -DINSTALL_SUPPORTFILESDIR:STRING=support-files \
> -DMYSQL_DATADIR:PATH=/var/run/mysql/data \
> -DSYSCONFDIR:PATH=/etc/sysconfig/mysql \
> -DWITHOUT_SERVER:BOOL=OFF \
> -DWITH_EMBEDDED_SERVER:BOOL=OFF \
> -DWITH_EXTRA_CHARSETS:STRING=all \
> -DWITH_INNOBASE_STORAGE_ENGINE:BOOL=OFF \
> -DWITH_LIBEDIT:BOOL=ON \
> -DWITH_READLINE:BOOL=OFF \
> -DWITH_SSL:STRING=no \
> -DWITH_UNIT_TESTS:BOOL=OFF \
> -DWITH_ZLIB:STRING=bundled

检查依赖,没有问题.接下来 make && make install.
话说cmake 的 INSTALL_XXXDIR 均使用相对路径,确是很蛋疼.

注:初次编译前最好查看下帮助
[root@PowerPC mysql-5.5.9]# cmake . -LAH

或者 http://forge.mysql.com/wiki/CMake

安装完成后,将备份的配置文件 my.cnf 复制到 /etc/sysconfig/mysql/ 下.
恢复数据库.先初始化.

运行
[root@PowerPC bin]# ../scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/var/run/mysql --user=mysql
重建系统表。

./mysqld_safe & 启动数据库,报错.

[root@PowerPC ~]# cat /var/run/mysql/PowerPC.err |grep ERROR
110223 6:24:16 [ERROR] Unknown/unsupported storage engine: InnoDB
110223 6:24:16 [ERROR] Aborting
110223 6:25:13 [ERROR] Unknown/unsupported storage engine: InnoDB
110223 6:25:13 [ERROR] Aborting
110223 6:33:18 [ERROR] /usr/local/mysql/bin/mysqld: unknown variable 'innodb_data_home_dir=/var/run/mysql/'
110223 6:33:18 [ERROR] Aborting
110223 6:34:14 [ERROR] /usr/local/mysql/bin/mysqld: unknown variable 'innodb_buffer_pool_size=10M'
110223 6:34:14 [ERROR] Aborting


原来是innodb 的原因,由于mysql 5.5.x 默认启用innodb,而我这次的版本又没有把它编译进来。故而报错.

解决办法:删掉/注释掉配置文件里关于 innodb的部分,并加入
default-storage-engine          = MyISAM

即可.

再次启动mysql,正常.

导入之前备份出去的sql文件,
mysql -u root -p < xxx.sql
刷新权限表即可.

mysql 安装完成.

接下来是php.
php 5.3.6rc1 http://downloads.php.net/johannes/php-5.3.6RC1.tar.bz2

这次选择的是最新的rc版.解压,进入目录
我的configure:
[root@PowerPC php-5.3.6RC1]# ./configure \
> --prefix=/usr/local/php \
> --exec-prefix=/usr/local \
> --sysconfdir=/etc/sysconfig/php \
> --localstatedir=/var/run \
> --disable-cli \
> --enable-fpm \
> --with-fpm-user=http \
> --with-fpm-group=web \
> --with-config-file-path=/etc/sysconfig/php \
> --disable-ipv6 \
> --with-zlib \
> --with-bz2 \
> --with-curl \
> --enable-exif \
> --with-gd \
> --with-mhash \
> --enable-mbstring \
> --with-mcrypt \
> --with-mysql=/usr/local/mysql \
> --with-mysql-sock=/tmp \
> --with-mysqli=/usr/local/mysql/bin/mysql_config \
> --with-xmlrpc \
> --enable-zip \
> --without-pear

检查依赖,一切OK。然后就 make && make install.
一段时间后,php 也搞定了.再把备份的配置文件恢复一下。由于eAccelerator 插件与之前的老版本php一起被删掉了,故而在php.ini 里先注释掉其部分。

一切都做好后,服务器升级便结束了.

评论