centos6.2下安装mysql5.5.24+php5.3.8(fpm)+nginx安装笔记(扩展memcache+leveldb+ICE)

centos6.2下 MySQL 5.5.24 CMake 安装笔记


先更新安装需要用到的相关安装包

yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libpng libpng-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel openssl-devel gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel readline-devel libxslt-devel expat-devel xmlrpc-c xmlrpc-c-devel



一、安装MYSQL

mysql 最新的版本都需要cmake编译安装,估计以后的版本也会采用这种方式,所以特地记录一下安装步骤及过程,以供参考。

注意:此安装是默认centos下已经安装了最新工具包,比如GNU make, GCC, Perl, libncurses5-dev,如果在编译安装过程中发现有缺失的工具包,先yum install 单独下载安装再继续即可。


以下安装中涉及的几点需要提前说明的问题:

1. 所有下载的文件将保存在 /usr/local/src/ 目录下

2. mysql 将以mysql用户运行,而且将加入 service 开机自动运行

3. mysql 将被安装在 /usr/local/mysql/ 目录下

4. mysql 默认安装使用 utf8 字符集

5. mysql 的数据和日志文件保存在 /var/mysql/ 对应目录下

6. mysql 的配置文件保存于/var/mysql/my.cnf



一. Centos 用 wget 下载需要的软件,保存到目录 /usr/local/src/ 下

wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.24.tar.gz/from/http://mysql.he.net/

wget http://www.cmake.org/files/v2.8/cmake-2.8.7.tar.gz

wget http://ftp.gnu.org/gnu/bison/bison-2.5.tar.gz

wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.6.tar.gz 

==============================过程可能出现的错误=====================================
安装Mysql5.5之前先卸载CentOS自带的Mysql:
[root@localhost ~]#  yum remove mysql  

编译安装cmake
下载cmake源码包cmake-2.8.4.tar.gz,mv到/usr/local/src目录下
[root@localhost ~]# cd /usr/local/src/  
[root@localhost src]# tar xzvf cmake-2.8.7.tar.gz   
[root@localhost src]# cd cmake-2.8.7 
[root@localhost cmake-2.8.4]# ./bootstrap   
---------------------------------------------  
CMake 2.8.4, Copyright 2000-2009 Kitware, Inc.  
---------------------------------------------  
Error when bootstrapping CMake:  
Cannot find appropriate C compiler on this system.  
Please specify one using environment variable CC.  
See cmake_bootstrap.log for compilers attempted.  
  
---------------------------------------------  
Log of errors: /usr/local/src/cmake-2.8.4/Bootstrap.cmk/cmake_bootstrap.log  
---------------------------------------------  
报错:缺少C的编译器。
 
安装gcc编译器
可以从Linux系统的安装盘中安装,也可以简单地用yum安装

[root@localhost ~]# yum install gcc  
 
继续cmake的安装

[root@localhost cmake-2.8.4]# ./bootstrap   
---------------------------------------------  
CMake 2.8.4, Copyright 2000-2009 Kitware, Inc.  
C compiler on this system is: cc   
---------------------------------------------  
Error when bootstrapping CMake:  
Cannot find appropriate C++ compiler on this system.  
Please specify one using environment variable CXX.  
See cmake_bootstrap.log for compilers attempted.  
---------------------------------------------  
Log of errors: /usr/local/src/cmake-2.8.4/Bootstrap.cmk/cmake_bootstrap.log  
---------------------------------------------  
再次报错:缺少C++编译器。
 
安装gcc-c++编译器
同样可以从Linux系统的安装盘中安装,或者简单地用yum安装

[root@localhost ~]# yum install gcc-c++  
 
重复上面的操作

[root@localhost cmake-2.8.4]# ./bootstrap   
 
没有报错后,编译安装

[root@localhost cmake-2.8.4]# gmake  
[root@localhost cmake-2.8.4]# gmake install  
 
开始正式安装Mysql
====================================================================

二. 安装 cmake
cd /usr/local/src
tar zxvf cmake-2.8.7.tar.gz
cd cmake-2.8.7
./bootstrap
gmake
gmake install
cd ../

tar zxvf bison-2.5.tar.gz
cd bison-2.5
./configure
make
make install
cd ../


#编译mysql ./configure时error:no curses/termcap library found
tar zxvf ncurses-5.6.tar.gz
cd ncurses-5.6
./configure
make
make install
cd ../


三. 编译安装 MySQL 5.5.24
/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql

chmod 777 /var/mysql/data

tar xvf mysql-5.5.24.tar.gz
cd mysql-5.5.24/


cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/var/mysql/data

make && make install

chmod +w /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql

ln -s /usr/local/mysql/lib/libmysqlclient.so.16 /usr/lib/libmysqlclient.so.16

mkdir -p /var/mysql/
mkdir -p /var/mysql/data/
mkdir -p /var/mysql/log/
chown -R mysql:mysql /var/mysql/

cd support-files/

=============================================
cp my-large.cnf /var/mysql/my.cnf (注意:my-large.cnf适用于1G内存左右的服务器,可以根据自己配置情况选用my-large.cnf 或 my-huge.cnf 等不同配置)
=============================================
换成
cp my-large.cnf /etc/my.cnf

cp mysql.server /etc/init.d/mysqld


四. 配置启动MySQL 5.5.23

1. 若有需要请先修改 mysql 的配置 my.cnf

vim /etc/my.cnf


2. mysql 初始化安装

/usr/local/mysql/scripts/mysql_install_db \
--defaults-file=/var/mysql/my.cnf \
--basedir=/usr/local/mysql \
--datadir=/var/mysql/data \
--user=mysql

即系一行
/usr/local/mysql/scripts/mysql_install_db --defaults-file=/var/mysql/my.cnf --basedir=/usr/local/mysql --datadir=/var/mysql/data --user=mysql

3. 将 mysql 加入开机启动

chmod +x /etc/init.d/mysqld
vim /etc/init.d/mysqld (编辑此文件,查找并修改以下变量内容:)
basedir=/usr/local/mysql
datadir=/var/mysql/data


chkconfig --add mysqld
chkconfig --level 345 mysqld on

/usr/local/mysql/bin/mysqladmin -u root password
  (new password)

 ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

ln -s /usr/local/mysql/bin/mysql_config /usr/bin/mysql_config
 //64位系统安装php需要    

Test MYSQL:
mysql -u root -p

4. 启动 mysql

service mysqld start


//至此,mysql安装已经完成



二、php-5.3.8-fpm安装记录

以下安装中涉及的几点需要提前说明的问题:

1. php-fpm将被安装在 /usr/local/mysql/php-5.3.8 目录下

2. php-fpm的日志文件保存在 /usr/local/mysql/php-5.3.8/log 对应目录下

3. php-fpm的配置文件需要复制保存于/usr/local/mysql/php-5.3.8/lib目录下

php-5.3.8-fpm安装记录 


#wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
#tar -zxvf libiconv-1.13.1.tar.gz
#cd libiconv-1.13.1
# ./configure --prefix=/usr/local/libiconv
# make
# make install


再检查php,指定 iconv的位置  --with-iconv=/usr/local/libiconv

tar jxvf php-5.3.8.tar.bz2

cd php-5.3.8
//64bit del --enable-intl --with-icu-dir=/usr/local/icu  --with-db4 --with-xpm-dir
./configure --prefix=/usr/local/php-5.3.8 --enable-fpm --with-libxml-dir--with-openssl --with-pcre-regex --with-sqlite3 --with-zlib --enable-bcmath --with-bz2 --enable-calendar --with-curl --with-curlwrappers --with-cdb --enable-dom --enable-exif --enable-fileinfo --enable-filter --with-pcre-dir --enable-ftp --with-gd --with-openssl-dir --with-jpeg-dir --with-png-dir --with-zlib-dir  --with-freetype-dir --enable-gd-native-ttf --enable-gd-jis-conv --with-gettext --with-gmp --with-mhash --enable-json --enable-mbstring --disable-mbregex --disable-mbregex-backtrack --with-libmbfl --with-onig --with-mysql=/usr/local/mysql --with-mysql-sock --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-pdo --with-pdo-mysql --with-zlib-dir --with-pdo-sqlite --with-readline --enable-session --enable-shmop --enable-simplexml --enable-sockets --enable-sqlite-utf8 --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-libxml-dir--with-iconv-dir==/usr/local/libiconv --with-xsl --enable-zip --enable-mysqlnd-compression-support --with-pear


finaly show when configure is ok
Thank you for using PHP.

make && make install

last show when install is done:
You may want to add: /usr/local/php-5.3.8/lib/php to your php.ini include_path
/usr/local/src/php-5.3.8/build/shtool install -c ext/phar/phar.phar /usr/local/php-5.3.8/bin
ln -s -f /usr/local/php-5.3.8/bin/phar.phar /usr/local/php-5.3.8/bin/phar
Installing PDO headers:          /usr/local/php-5.3.8/include/php/ext/pdo/


cp /usr/local/php-5.3.8/etc/php-fpm.conf.default php-fpm.conf   //复制一份并重命名

/usr/local/php-5.3.8/sbin/php-fpm  //启动php-fpm

修改FPM 配置文件php-fpm.conf
pm.max_children = 50
pm.start_servers = 20 
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
去掉分号


ln -s /usr/local/php-5.3.8/sbin/php-fpm /bin/php-fpm

cp /usr/local/src/php-5.3.8/php.ini-producsion /usr/local/php-5.3.8/lib/php.ini

至此php-fpm安装完成




ngnix1.0.5安装记录

yum install pcre-devel pcre

 tar zxvf nginx-1.0.5.tar.gz
cd nginx-1.0.5


 useradd www    #添加www nginx运行账户

  usermod -s /sbin/nologin -g www www  #将www加入www组并禁止www登录shell

./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --without-http_rewrite_module --with-http_ssl_module --with-pcre && make && make install

 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf  #启动nginx,nginx启动成功。

======================================================================================
报错 error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
Fixed:ln -s  /usr/local/lib/libpcre.so.1  /lib
======================================================================================

/usr/local/nginx/sbin/nginx -s reload

ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx



//接下来修改nginx配置文件

vim nginx.conf


user  nobody; 去掉前面#

添加

    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 128k;
    fastcgi_intercept_errors on;

修改root根目录路径

root /opt/itools/; #注意后面有分号



继续修改其他相关配置,然后保存文件


根据 include        fastcgi_params;需要修改对应文件
vim fastcgi_params

添加以下,保存
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;  #否则nginx不能找到php文件进行解析


nginx -s reload //nginx重启


nginx安装结束。




安装memcached server

一、源码包准备
服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-v1.4.4 。
下载:http://memcached.googlecode.com/files/memcached-1.4.4.tar.gz
另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,

libevent的最新版本是libevent-1.4.13-stable。(如果你的系统已经安装了libevent,可以不用安装)
官网:http://www.monkey.org/~provos/libevent/
下载:http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz

准备Memcached的PHP扩展的源码安装包:
官网:http://pecl.php.net/

Linux指令下载:
wget http://memcached.googlecode.com/files/memcached-1.4.4.tar.gz
wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz


二、安装与配置

1、先安装libevent

tar zxvf libevent-1.4.13-stable.tar.gz
cd libevent-1.4.13-stable
./configure –prefix=/usr
make
make install

2、测试libevent是否安装成功

ls -al /usr/lib | grep libevent
libevent-1.1a.so.1
libevent-1.1a.so.1.0.2
libevent-1.4.so.2
libevent-1.4.so.2.1.3
libevent.a
libevent_core-1.4.so.2
libevent_core-1.4.so.2.1.3
libevent_core.a
libevent_core.la
libevent_core.so
libevent_extra-1.4.so.2
libevent_extra-1.4.so.2.1.3
libevent_extra.a
libevent_extra.la 
libevent_extra.so
libevent.la
libevent.so


版本不同,可能文件列表不同。


3、安装memcached,同时需要安装中指定libevent的安装位置

tar zxvf memcached-1.4.4.tar.gz
cd memcached-1.4.4
./configure --with-libevent=/usr
make && make install


安装完成后会把memcached 自动放到 /usr/local/bin/memcached


4、测试是否成功安装memcached

ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 root root 201869 12-14 21:44 /usr/local/bin/memcached


5、 安装Memcache的PHP扩展

①安装PHP的memcache扩展

tar vxzf memcache-3.0.6.tgz
cd memcache-3.0.6
/usr/local/php-5.3.8/bin/phpize
./configure -enable-memcache -with-php-config=/usr/local/php-5.3.8/bin/php-config -with-zlib-dir
make
make install


②上述安装完后会有类似这样的提示:

Installing shared extensions: /usr/local/php-5.3.8/lib/php/extensions/no-debug-non-zts-20090626/

把php.ini中的extension_dir = “./”修改为

extension_dir = “/usr/local/php-5.3.8/lib/php/extensions/no-debug-non-zts-20090626/”


④添加一行来载入memcache扩展

extension = memcache.so



三、memcached的基本设置
1.启动Memcache的服务器端:

memcached -d -m 100 -u root -l 127.0.0.1 -p 11211 -c 256 -P /tmp/memcached.pid

参数说明:

-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是100MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址127.0.0.1
-p是设置Memcache监听的端口,我这里设置了11211,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,



2.如果要结束Memcache进程,执行:

kill `cat /tmp/memcached.pid`


也可以启动多个守护进程,不过端口不能重复。


3.检查Memcached是否启动

netstat -ant
tcp        0      0 127.0.0.1:11211       0.0.0.0:*                   LIST

11211端口已经打开,说明Memcached已正常启动。


4.重启CentOS

reboot


四、Memcache环境测试
运行下面的php文件,如果有输出This is a test!,就表示环境搭建成功。开始你的Memcache吧!

<?php
 
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211);
$mem->set('key','This is a test!', 0, 60);
$val = $mem->get('key');
echo $val;
 

?>


著名的PHPCMS同样支持Memcached扩展:

<?php
//MemCache服务器配置
//define('MEMCACHE_HOST', 'localhost'); //MemCache服务器主机
//define('MEMCACHE_PORT', 11211); //MemCache服务器端口
//define('MEMCACHE_TIMEOUT', 1); //S,MemCache服务器连接超时
class cache
{
 var$memcache;
 
    function__construct()
    {
  $this->memcache = &newMemcache;
  $this->memcache->pconnect(MEMCACHE_HOST, MEMCACHE_PORT, MEMCACHE_TIMEOUT);
    }
 
    functioncache()
    {
  $this->__construct();
    }
 
 functionget($name)
    {
        return$this->memcache->get($name);
    }
 
    functionset($name,$value, $ttl= 0)
    {
         return$this->memcache->set($name,$value, 0, $ttl);
    }
 
    functionrm($name)
    {
        return$this->memcache->delete($name);
    }
 
    functionclear()
    {
        return$this->memcache->flush();
    }
}
?>

==========================================================

mkdir -p /opt/itools/



安装leveldb
安装leveldb,参考http://xingqiba.sinaapp.com/?p=172

http://code.google.com/p/leveldb/source/checkout

git clone http://code.google.com/p/leveldb/             //work!!



## http://xingqiba.sinaapp.com/?p=172


cd leveldb
#### 注意:必须将leveldb文件夹移动到保存位置安装,安装完成后依赖于此文件夹运行!!

make  //编译后在/home/lyc/leveldb/Leveldb路径下会出现一个库文件libleveldb.a,这个可以用在自己的项目中


编译完成显示
ar: creating libleveldb.a


cd ../
git clone git://github.com/arraypad/php-leveldb.git


cd php-leveldb  ##安装完成后可以删除此文件夹.
/usr/local/php-5.3.8/bin/phpize
./configure --with-leveldb=/usr/local/src/leveldb --with-php-config=/usr/local/php-5.3.8/bin/php-config

或换个路径
./configure --with-leveldb=/opt/leveldb --with-php-config=/usr/local/php-5.3.8/bin/php-config


make
make install


安装成功显示
Installing shared extensions:     /usr/local/php-5.3.8/lib/php/extensions/no-debug-non-zts-20090626/


注意修改php.ini增加extension = leveldb.so并重启php-fpm

php-fpm-m  #查看可用扩展


=========================================================================

安装ICE

wget http://www.zeroc.com/download/Ice/3.4/Ice-3.4.2.tar.gz

wget http://www.zeroc.com/download/Ice/3.4/ThirdParty-Sources-3.4.2.tar.gz



tar zxvf ThirdParty-Sources-3.4.2.tar.gz

cd ThirdParty-Sources-3.4.2
#安装Berkeley DB
tar zxvf db-4.8.30.NC.tar.gz


cd db-4.8.30.NC/build_unix/
../dist/configure --prefix=/usr --enable-cxx
make
make install
cd ../../



#安装 bzip2-1.0.6.tar.gz
tar zxvf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6
make
make install
cd ../


#expat-2.0.1.tar.gz
tar zxvf expat-2.0.1.tar.gz
cd expat-2.0.1
./configure
make
make install
cd ../


#安装openssl-0.9.8d.tar.gz
cd ../
tar zxvf openssl-0.9.8r.tar.gz
cd openssl-0.9.8r
./config --prefix=/usr --openssldir=/usr/openssl
make
make install
cd ../


#安装mcpp
tar zxvf  mcpp-2.7.2.tar.gz
cd mcpp-2.7.2
patch -p0 < ../mcpp/patch.mcpp.2.7.2
./configure CFLAGS=-fPIC --enable-mcpplib --disable-shared
make
make install
cd ../


#安装Ice
ca /usr/local
tar zxvf Ice-3.4.2.tar.gz     //最好解压到安装目录,解压到哪个目录就最好安装到哪个目录下,避免文件缺失
cd Ice-3.4.2/cpp
export LD_LIBRARY_PATH=/usr/local/Ice-3.4.2/lib        
==>找到cpp/config/Make.rules.Linux,在最显眼的地方【143行】在最后加上一个 -liconv,再编译
make
make install


cd /usr/local/Ice-3.4.2/php
vim php/config/Make.rules.php
USE_NAMESPACES          ?= yes
PHP_HOME                ?= /usr/local/php-5.3.8


cd /usr/local/Ice-3.4.2/php
make 
make install


cd /opt/Ice-3.4.2/php


如果是在linxu下安装IcePHP的话,则需要在Ice源文件下的php目录下编译源码,然后执行makeinstall安装IcePHP扩展,一般Ice会安装到opt/Ice-1.4.1目录下(这里假设版本号为3.4.1),然后在php.ini中定义:

extension_dir = /opt/Ice-3.4.1/php
extension = IcePHP.so

include_path = /opt/Ice-3.4.1/php


ICE安装完成。


4.安装过程中出现的一些错误,及解决方法:

     4.1)错误提示:/usr/lib.ld:Error:cannot find -lmcpp   --->解决方法:应该是mcpp之前没有安装成功,将mcpp重新安装成功后就行

     4.2)错误提示:fatal error:db_cxx.h:No such file or directory   -->解决方法:之前没有把db-4.8.3安装成功,重新安装一遍

     4.3)安装Ice完成后,运行例子错误提示:error while loading shared libraries: libIce.so.34: cannot open shared object file: No such file or directory  -->解决办法:应该是之前编译Ice某些目录配置不对;使用命令 export LD_LIBRARY_PATH=/opt/Ice-3.4.2/lib重新来导出动态链接库目录即可。(共享库搜索顺序一般是$LDLIBRARY_PATH,/etc/ld.so.cache, /usr/lib, /lib)

     4.4)安装Ice后,发现系统不能识别slice2cpp命令。原因及解决办法:应该是安装过程中没有把slice2cpp可执行文件复制到/ur /bin目录下面,或者是链接环境没有设置好;来到/opt/Ice-3.4.2/bin下面将slice2cpp复制到/usr/bin目录下即可。

4.5)libiconv.so.2: cannot open shared object file解决办法:
解决办法如下:
1.在/etc/ld.so.conf中加一行/usr/local/lib,
 2.然后运行/sbin/ldconfig,文件解决,没有报错了~~

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值