一 、安装环境搭建

1、所需安装包:
    源码安装LNMP_lnmp源码安装

2、导入安装包:
    源码安装LNMP_mysql_02
    源码安装LNMP_mysql_03

3、配置yum:
    源码安装LNMP_php_04

4、挂在光盘:
    [root@localhost ~]# mount /dev/cdrom /mnt/cdrom
    [root@localhost ~]# mount /dev/cdrom /mnt/cdrom
    mount: block device /dev/cdrom is write-protected, mounting read-only
    [root@localhost ~]#

5、安装Linux必须的开发环境:
    ##查看开发环境:
    [root@localhost ~]# yum grouplist |less
    源码安装LNMP_lnmp源码安装_05

    ##安装组:yum groupinstall "组名";
        例如:yum groupinstall "Development Libraries"
        //有些开发环境是在进行源码安装中所必须的,为了避免错误,我们有必要安装;

二 、初始环境搭建:解决在源码安装过程中,由于源码程序的依赖性对安装过程的影响。

1、安装pcre(头部的地址存写)的开发包,这时一个nginx所依赖的包:
    [root@localhost ~]# cd /mnt/cdrom/Server/
    [root@localhost Server]# rpm -ivh pcre-devel-6.6-2.el5_1.7.i386.rpm
    warning: pcre-devel-6.6-2.el5_1.7.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
    Preparing...                ########################################### [100%]
       1:pcre-devel            ########################################### [100%]
    [root@localhost Server]#

2、源码安装libevent(一个事件触发的网络库):

##拆包:
    [root@localhost ~]# tar -zxvf libevent-2.0.16-stable.tar.gz -C /usr/local/src
    源码安装LNMP_nginx_06

##配置libevent源代码:
    [root@localhost src]# cd libevent-2.0.16-stable/
    [root@localhost libevent-2.0.16-stable]# ./configure

##编译libevent源代码:
    [root@localhost libevent-2.0.16-stable]# make

##安装libevent源代码:
    [root@localhost libevent-2.0.16-stable]# make install

##将libevent的库文件连接到标准库文件中:
    //在/etc/ld.so.conf.d/目录下创建一个指明libevent库的路径文件(libevent.conf)
    [root@localhost ~]# cd /etc/ld.so.conf.d/
    [root@localhost ld.so.conf.d]# vim libevent.conf
    源码安装LNMP_lnmp源码安装_07

##手工调用libevent的库文件:
    [root@localhost ld.so.conf.d]# ldconfig -v

##查看libevent的库文件是否被调用:
    [root@localhost ld.so.conf.d]# ldconfig -pv |grep libevent
    源码安装LNMP_mysql_08

三 、源码安装nginx:

1、拆包:
    [root@localhost ~]# tar -zxvf nginx-1.0.11.tar.gz -C /usr/local/src/
    [root@localhost ~]# cd /usr/local/src/nginx-1.0.11/

2、创建一个目录:
    [root@localhost nginx-1.0.11]# mkdir -pv /var/tmp/nginx
    mkdir: 已创建目录 “/var/tmp/nginx”
    [root@localhost nginx-1.0.11]#

3、添加一个系统组和系统帐号:
    [root@localhost nginx-1.0.11]# groupadd -r nginx
    [root@localhost nginx-1.0.11]# useradd -r -g nginx -s /bin/false -M nginx
    [root@localhost nginx-1.0.11]#

4、检测nginx源代码配置文件:
    [root@localhost nginx-1.0.11]# ./configure \
    >  --prefix=/usr/local/nginx \  //指定安装目录为/usr/local/nginx
    >  --sbin-path=/usr/sbin/nginx \ //服务程序所安装的路径
    >  --conf-path=/etc/nginx/nginx.conf \  //配置文件存放位置
    >  --error-log-path=/var/log/nginx/error.log \
    >  --http-log-path=/var/log/nginx/access.log \
    >  --pid-path=/var/run/nginx/nginx.pid \  //开启基于线程的nginx
    >  --lock-path=/var/lock/nginx.lock \  //存放锁机制文件的路径
    >  --user=nginx \  //运行者的身份
    >  --group=nginx \  //运行者的组
    >  --with-http_ssl_module \  //开启加密模块
    >  --with-http_flv_module \  //开启流媒体模块
    >  --with-http_stub_status_module \  //安装可以查看nginx状态的程序
    >  --with-http_gzip_static_module \  //开启页面压缩传输
    >  --http-client-body-temp-path=/var/tmp/nginx/client/ \
    >  --http-proxy-temp-path=/var/tmp/nginx/proxy/ \  //代理的临时缓存
    >  --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \ 
    >  --with-pcre  //启用地址重写

5、编译nginx源代码:
    [root@localhost nginx-1.0.11]# make

6、安装nginx源代码:
    [root@localhost nginx-1.0.11]# make install

7、启动服务:
    [root@localhost nginx-1.0.11]# nginx

8、测试nginx安装是否正常:
    源码安装LNMP_php_09
        //nginx的安装正常;

四 、源码安装mysql:

1、将源码解压到/usr/local目录下:
    [root@localhost ~]# tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local

2、查看源码安装的帮助信息:
    [root@localhost ~]# cd /usr/local/
    [root@localhost local]# less mysql-5.5.15-linux2.6-i686/INSTALL-BINARY 
    源码安装LNMP_nginx_10

3、通过帮助信息对源码进行相应的操作:

##建立mysql用户组:
    [root@localhost mysql]# groupadd mysql

##创建一个用户:所属组为mysql,不允许登录shell,不创建家目录;
    [root@localhost local]# useradd -r -g mysql -s /sbin/nologin -M mysql

##将源码解压的目录生成一个名为mysql软连接:
    [root@localhost ~]# cd /usr/local/
    [root@localhost local]# ln -s mysql-5.5.15-linux2.6-i686/ mysql

##改变mysql下所有文件的所有者和所属组:
    [root@localhost local]# cd mysql
    [root@localhost mysql]# chown -R mysql .
    [root@localhost mysql]# chgrp -R mysql .

##初始化数据库:
    [root@localhost mysql]# scripts/mysql_install_db --user=mysql

##再次更改相应文件的所有者和所属组:
    [root@localhost mysql]# chown -R root .
    [root@localhost mysql]# chown -R mysql data

##生成mysql服务的配置文件:
    [root@localhost mysql]# cp support-files/my-medium.cnf /etc/my.cnf

##生成服务启动脚本:
    [root@localhost mysql]# cp support-files/mysql.server  /etc/init.d/mysqld
        //复制启动脚本,为了方便使用service mysqld start

##启动服务:
    [root@localhost mysql]# service mysqld start
    Starting MySQL..                                           [  OK  ]
    [root@localhost mysql]#

4、将mysqld服务添加到开机启动项中:
    [root@localhost mysql]# chkconfig --add mysqld
    [root@localhost mysql]# chkconfig --list |grep mysql
    mysqld          0:off 1:off 2:on 3:on 4:on 5:on 6:off

5、编辑库文件,使mysql能够自动调用相应的库文件:

##创建mysql的库文件指向:
    [root@localhost mysql]# cd /etc/ld.so.conf.d/
    [root@localhost ld.so.conf.d]# vim mysql.conf
    源码安装LNMP_nginx_11

##重新加载mysql的库文件:
    [root@localhost ld.so.conf.d]# ldconfig -v |grep mysql
    /usr/local/mysql/lib:
    libmysqlclient.so.18 -> libmysqlclient_r.so.18.0.0

6、将mysql添加到环境变量中:
    [root@localhost ~]# PATH=$PATH:/usr/local/mysql/bin
    [root@localhost ~]# echo $PATH    /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin

7、测试mysql:
    源码安装LNMP_php_12

五 、源码安装php:

1、拆包:
    [root@localhost ~]# tar -jxvf php-5.3.7.tar.bz2 -C /usr/local/src/
    [root@localhost ~]# cd /usr/local/src/php-5.3.7/

2、检测php源代码配置文件:
    [root@localhost php-5.3.7]# ./configure \
    --prefix=/usr/local/php \
    --with-mysql=/usr/local/mysql \
    --with-openssl \
    --enable-fpm \
    --with-libevent-dir=/usr/local \
    --with-mysqli=/usr/local/mysql/bin/mysql_config \
    --enable-mbstring \
    --with-freetype-dir \
    --with-jpeg-dir \
    --with-png-dir \
    --with-zlib \
    --with-libxml-dir=/usr \
    --enable-xml \
    --with-iconv-dir=/usr/local

3、编译php源代码:
    [root@localhost php-5.3.7]# make

4、安装php源代码:
    [root@localhost php-5.3.7]# make install

5、创建php主配置文件:
    [root@localhost php-5.3.7]# cp php.ini-production /usr/local/php/php.ini

6、创建php-fpm.conf文件:
    [root@localhost php-5.3.7]# cd /usr/local/php/etc/
    [root@localhost etc]# cp php-fpm.conf.default php-fpm.conf

7、编辑php-fpm.conf文件:
    [root@localhost ~]# vim /usr/local/php/etc/php-fpm.conf
    源码安装LNMP_lnmp源码安装_13
    源码安装LNMP_php_14
    源码安装LNMP_php_15
    源码安装LNMP_nginx_16
    源码安装LNMP_php_17

8、编辑fastcgi.conf:
    [root@localhost ~]# cd /etc/nginx/
    [root@localhost nginx]#  vim /etc/nginx/fastcgi.conf
    源码安装LNMP_lnmp源码安装_18

9、将fastcgi.conf的配置重定向到fastcgi_params:
    [root@localhost nginx]# cat fastcgi.conf > fastcgi_params

10、启动php-fpm服务:
    [root@localhost ~]# /usr/local/php/sbin/php-fpm

11、配置nginx的主配置文档:
    [root@localhost ~]# vim /etc/nginx/nginx.conf
    源码安装LNMP_php_19

12、重新加载nginx的主配置文档:
    [root@localhost ~]# pkill -1 nginx

六 、验证测试:

1 、测试nginx连接php的正确性:

##创建并编辑php主页index.php:
    [root@localhost ~]# cd /usr/local/nginx/html/
    源码安装LNMP_php_20

    [root@localhost html]# vim index.php
    源码安装LNMP_php_21

##浏览测试:
    源码安装LNMP_lnmp源码安装_22

2 、测试php连接mysql的正确性:

##编辑php主页index.php:
    [root@localhost html]# vim index.php
    源码安装LNMP_mysql_23

##浏览测试:
    源码安装LNMP_mysql_24