CentOS 6.5 编译安装搭建LNMP网站环境(Nginx+MySQL+PHP

CentOS 6.5 编译安装搭建LNMP网站环境(Nginx+MySQL+PHP)-Linux-me

Nginx(发音为[engine x])专为性能优化而开发,其最知名的优点是它的稳定性和底系统资源消耗,以及对HTTP并发连接的高处理能及(单台物理服务器可支持30000-50000个并发请求),正因如此,大量提供社交网络、新闻资讯、电子商务及虚拟主机等服务的企业都纷纷选择Nginx来提供Web服务。

一、安装Nginx

1.1 安装支持软件
Nginx的配置及运行需要pcre、zlib 等软件包支持,因此应预先安装这些软件的开发包,以便提供相应的库和头文件,确保Nginx的安装顺利完成。
# yum -y install pcre-devel zlib-devel
1.2 创建运行用户、组(创建一个Nginx的用户,不建立宿主文件夹,也禁止登录到Shell环境)
# useradd -M -s /sbin/nologin nginx
1.3 编译安装Nginx(本章已1.6.0版本演示)
# yum -y install wget gcc
# wget http://nginx.org/download/nginx-1.6.0.tar.gz
# tar zxvf nginx-1.6.0.tar.gz
# cd nginx-1.6.0
# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
# make
# make install
# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
# ls -l /usr/local/sbin/nginx
lrwxrwxrwx. 1 root root 27 10月  7 03:23 /usr/local/sbin/nginx -> /usr/local/nginx/sbin/nginx
检测Nginx配置文件
# nginx -t
启动Nginx
# nginx
# netstat -anpt | grep nginx

二、安装MySQL数据库

为了与Nginx、PHP 环境保持一致,仍选择采用源代码编译的方式安装MySQL组件。以5.5.22版本为例,安装过程如下。
2.1 编译安装Cmake 
# yum -y install ncurses-devel gcc-c++
# wget http://www.cmake.org/files/v2.8/cmake-2.8.6.tar.gz
# tar zxvf cmake-2.8.6.tar.gz
# cd cmake-2.8.6
# ./configure
# gmake
# gmake install
# ln -s /usr/local/bin/cmake /usr/bin
2.2 编译安装MySQL
# wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.22.tar.gz
# tar zxvf mysql-5.5.22.tar.gz
# cd mysql-5.5.22
# cmake -DCMAcmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc
2.3 优化调整
# cp support-files/my-medium.cnf /etc/my.cnf
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod +x /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# . /etc/profile
2.4 初始化数据库
# groupadd mysql
# useradd -M -s /sbin/nologin mysql -g mysql
# chown -R mysql:mysql /usr/local/mysql/
# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --user=mysql
2.5 启动MySQL服务,并设置Root用户密码
# service mysqld start
# netstat -anpt | grep 3306
# mysqladmin -u root password 'pwd123'

三、安装PHP解析环境

源码包以php-5.3.28为例,具体安装过程如下所述。为了提高PHP解析效率,建议将相应版本的ZendGuarDLoader也装上。

3.1 编译安装PHP
# yum -y install gd libxml2-devel libjpeg-devel libpng-devel
php下载地址:http://php.net/downloads.php
# tar zxvf php-5.3.28.tar.gz
# cd php-5.3.28
# ./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --enable-mbstring --enable-fpm --with-jpeg-dir=/usr/lib
# make && make install
3.2 安装后调整
# cp php.ini-development /usr/local/php5/php.ini
# ln -s /usr/local/php5/bin/* /usr/local/bin/
# ln -s /usr/local/php5/sbin/* /usr/local/sbin/
3.3 安装ZendGuarDLoader(安装包在下方)
# tar zxvf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz
# cd ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x/
# cp ZendGuardLoader.so /usr/local/php5/lib/php/
# vi /usr/local/php5/php.ini(编辑php.ini文件,在文件最下添加以下两行)
zend_extension=/usr/local/php5/lib/php/ZendGuarDLoader.so
zend_loader.enable=1
3.4 配置Nginx支持PHP环境
  若要让Nginx能够解析PHP网页,有两种方法可以选择:其一,充当中介,将访问PHP页面的Web请求转发给其他服务器(LAMP)去处理;其二,通过使用PHP的FPM模块来调用本机的PHP环境。
  这边直接用第二种方法
# cd /usr/local/php5/etc/
# cp php-fpm.conf.default php-fpm.conf
# useradd -M -s /sbin/nologin php
# vi php-fpm.conf (修改一下参数)
.............//省略部分信息
pid = run/php-fpm.pid      //确认pid文件位置
user = php                     //运行用户
group = php                   //运行组
pm.start_servers = 20      //启动时开启的进程数
pm.min_spare_servers = 5 //最少空闲进程数
pm.max_spare_server = 35
pm.max_children = 50      //最多空闲进程数
# /usr/local/sbin/php-fpm
# netstat -anpt | grep php-fpm
3.5 配置Nginx支持PHP解析
# vi /usr/local/nginx/conf/nginx.conf(将一下出现的配置注释去掉并修改如下)
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            include        fastcgi.conf;
        }
3.6 PHP页面访问测试
# vi /usr/local/nginx/html/test.php
<?php
$link=mysql_connect('localhost','root','pwd123');
if($link) echo "<h1>恭喜你,数据库连接成功啦!!!</h1><br /><br /><h2>本文来自:www.linux-me.com</h2>";
mysql_close();
?>
然后是用浏览器打开:http://你的IP或域名/test.php 若能看到成功连接的提示信息则表示PHP解析及数据库连接均正常。
CentOS 6.5 编译安装搭建LNMP网站环境(Nginx+MySQL+PHP)-Linux-me