二、编译安装mysql

1、下载mysql源码包

# mysql-5.5.20-linux2.6-i686.tar.gz 编译mysql之前我们需要去mysql官网查找最新版本的mysql源码包,可以根据自己的实际需要选择对应的源码包!

2、创建mysql挂载目录

#由于以后我们这里会产生很大的数据量,在这里我们最好应该把mysql单独放在一个目录中去,下面我们可以在磁盘中创建一个分区,用于单独存放mysql数据,可以在系统开机时就挂载这个mysql目录,为服务提供保证

fdisk /dev/sda -->n e 4-->p n +10G-->t 8e w-->partprobe -->pvcreate /dev/sda5 -->vgcreste myvg /dev/sda5 --> lvcrete -L 2G -n mydata myvg-->lvs -->mke2fs -b 1024 /dev/myvg/mydata --> vim fstab ...... mkdir /mydata-->mount -a -->mkdir /mydata/data (创建data用于存储mysql数据)

3、添加mysql系统用户和组

# groupadd -r mysql #添加mysql

# useradd -g mysql -r -s /sbin/nologin -M mysql #添加mysql用户

# id mysql 查看mysqlid信息

 

 

4、解压mysql源码包

# tar xvf mysql-5.5.20-linux2.6-i686.tar.gz -C /usr/local 解压在/usr/local

# cd /usr/local/

#ln -sv mysql-5.5.20-linux2.6-i686 mysql创建软连接

# chown -R mysql:mysql /mydata/data #改变存储mysql数据的目录属主属组为mysql

# cd /mysql --> chown -R mysql:mysql . #mysql属组属主改为mysql

#rpm -q mysql-server #初始化mysql之前确认系统上没有安装mysql-server rpm包,否则会冲突

 

# scripts/mysql_install_db --user=mysql --datadir=/mydata/data #用脚本初始化mysql

#chown -R root . # mysql 中的属主重新改为root,为了使mysql执行时添加安全保证。

 

 

5、为mysql提供主配置文件

# cd /usr/local/mysql

# cp support-files/my-large.cnf /etc/my.cnf

# mysql提供主配置文件:

并修改此文件中thread_concurrency的值为你的CPU个数乘以2,比如这里使用如下行:

thread_concurrency = 2

 

另外还需要添加如下行指定mysql数据文件的存放位置:

datadir = /mydata/data

 

6、为mysql提供sysv服务脚本

# cd /usr/local/mysql

# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

# mysql提供sysv服务脚本:

添加至服务列表:

# chkconfig --add mysqld

# chkconfig --level 2345 mysqld on

 

而后就可以启动服务测试使用了。

# ls /mydata/data 里面有mysql的日志文件

7、优化mysql服务

#为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:

# ln -sv /usr/local/mysql/include /usr/include/mysql

#mysql创建头文件链接

# vim /etc/ld.so.conf.d/mysql.conf

/usr/local/mysql/lib

# ldconfig -v 重新加载一下 -v显示过程

 

8、为mysql提供帮助文件

编辑/etc/man.config,添加如下行即可:

MANPATH /usr/local/mysql/man

9、修改mysql环境变量

修改PATH环境变量,让系统可以直接使用mysql的相关命令。具体实现过程这里不再给出。

# vim /etc/profile 添加下面一句:

export PATH=$PATH:/usr/local/apache/bin:/usr/local/mysql/bin

# source /etc/profile 重读配置文件

#service mysqld start 

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

三、编译安装php-5.4.10

 

1解决依赖关系:

请配置好yum源(可以是本地系统光盘)后执行如下命令:

# yum -y groupinstall "X Software Development"

# yum -y groupinstall "Development Tools" #安装好开发组包工具

# yum -y groupinstall "Development Libraries"# 安装编译时依赖的库文件

如果想让编译的php支持mcryptmcryptmhash扩展和libevent,此处还需要下载如下几个rpm包并安装:

mcrypt-2.6.8-1.el5.i386.rpm

libmcrypt-2.5.7-5.el5.i386.rpm

libmcrypt-devel-2.5.7-5.el5.i386.rpm

mhash-0.9.2-6.el5.i386.rpm

mhash-devel-0.9.2-6.el5.i386.rpm

libevent-2.0.17-2.i386.rpm

libevent-devel-2.0.17-2.i386.rpm

 

最好使用升级的方式安装上面的rpm包,命令格式如下:

# rpm -Uvh *.rpm --nodeps #--nodeps 忽略依赖关系并升级安装

 

 

2、下载编译php源码包

首先下载php-5.4.10源码包至本地目录,可根据需要下载对应的源码包。

 

# tar xf php-5.4.10.tar.bz2

# cd php-5.4.10

# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt --with-config-file-path=/etc/php --with-config-file-scan-dir=/etc/php --with-bz2 --with-curl

 

说明:如果前面第1步解决依赖关系时安装mcrypt相关的两个rpm包,此./configure命令还可以带上with-mcrypt选项以让php支持mycrpt扩展。

 

 

# make #编译之后可以执行make, 这里肯能会花费一会时间,根据你的cpu性能决定你编译的时间长短,请稍等!

 

# make test (可省)

# make intall #之后直接安装php

 

3、为php提供配置文件:

# cp php.ini-production /etc/php/php.ini #复制生成的配置文件并且自己重命名为php.ini

4、为php-fpm提供sysv 脚本

php-fpm提供Sysv init脚本,并将其添加至服务列表:

# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm

# chmod +x /etc/rc.d/init.d/php-fpm #添加执行权限

# chkconfig --add php-fpm #php-fpm添加至服务中

# chkconfig --level 2345 php-fpm on

 

5、启动fastcgi

php-fpm提供配置文件:

# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

 

6、编辑php-fpm的配置文件:

# vim /usr/local/php/etc/php-fpm.conf

配置pm.的相关选项为你所需要的值,并启用pid文件(如下最后一行):

pm.max_children = 50

pm.start_servers = 5

pm.min_spare_servers = 2 #定义最少空闲的server个数

pm.max_spare_servers = 8 #定义最多空闲的server 个数

pid = /var/run/php-fpm.pid #此行尤为重要服务需要的pid 文件

 

7、启动php-fpm

# service php-fpm start

使用如下命令来验正(如果此命令输出有中几个php-fpm进程就说明启动成功了):

# ps aux | grep php-fpm

 

 

四、整合nginxphp5

 

1编辑/etc/nginx/nginx.conf,启用如下选项:

location ~ \.php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

include fastcgi_params;

}

并在所支持的主页面格式中添加php格式的主页,类似如下:

location / {

root html;

index index.php index.html index.htm;

}

 

 

而后重新载入nginx的配置文件:

# service nginx reload 

 

2、编辑/etc/nginx/fastcgi_params,将其内容更改为如下内容:

fastcgi_param GATEWAY_INTERFACE CGI/1.1;

fastcgi_param SERVER_SOFTWARE nginx;

fastcgi_param QUERY_STRING $query_string;

fastcgi_param REQUEST_METHOD $request_method;

fastcgi_param CONTENT_TYPE $content_type;

fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;

fastcgi_param REQUEST_URI $request_uri;

fastcgi_param DOCUMENT_URI $document_uri;

fastcgi_param DOCUMENT_ROOT $document_root;

fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param REMOTE_ADDR $remote_addr;

fastcgi_param REMOTE_PORT $remote_port;

fastcgi_param SERVER_ADDR $server_addr;

fastcgi_param SERVER_PORT $server_port;

fastcgi_param SERVER_NAME $server_name;

 

 

 

3、在/usr/html新建index.php的测试页面,测试php是否能正常工作:

# cat > /usr/html/index.php << EOF

<?php

phpinfo();

?> 

接着就可以通过浏览器访问此测试页面了。

 

 

五、安装xcache,为php加速

 

1下载源码包并编译安装

# tar xf xcache-1.3.2.tar.gz

# cd xcache-1.3.2

# /usr/local/php/bin/phpize

# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config

# make

# make install

 

安装结束时,会出现类似如下行:

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

 

2、编辑php.ini,整合phpxcache

 

首先将xcache提供的样例配置导入php.ini

# cat xcache.ini >> /usr/local/php/lib/php.ini

 

说明:xcache.ini文件在xcache的源码目录中。

 

接下来编辑/usr/local/php/lib/php.ini,找到zend_extension开头的行,修改为如下行:

zend_extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/xcache.so

 

注意:如果php.ini文件中有多条zend_extension指令行,要确保此新增的行排在第一位。

 

3、重新启动php-fpm

# service php-fpm restart

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

 

至此一个完整的LNMP就完成了,linux nginx mysql php 整合在一起,希望对大家有所帮助!