浅谈LNMP搭建

Nginx 有三大显著特点:1.稳定性

                      2.低系统资源损耗

                      3.HTTP并发连接的高处理能力(单台30000-50000并发请求)

Nginx 主要是静态网站的解析,和提交动态请求   FPMfastcgi进程管理器)解析动态网站

LNMP平台上可以结合xcache加速PHH解析速度,提高页面生成速度2-5

安装前的准备工作:yum  -y install pcre-devel zlib-devel gcc gcc-c++

Nginx 的配置及运行需要pcre ,zlib 等软件包的支持,以便提供相应的库和头文件,也需要gcc的支持

挂载CentOs系统的YUM时,注意CentOsYUM 配置会首先检查自带的网络配置,也就是Centos-Base.repo,所以要想让本地YUM 生效,就是删除Base.repo或给其改名(Redhat 无需如此)

另:如果我们防火墙规则不是太熟练,可以事先清空防火墙规则及修改/etc/sysconfig/selinux的安全制

一、编译安装Nginx (建议使用nginx_install.sh 脚本

[root@rhel6 ~]# nginx �Ct       //测试是否安装正确

[root@rhel6 ~]# nginx        // 启动服务

[root@rhel6 ~]# netstat -anpt |grep nginx       //查看端口   (或服务器中已装有httpd 等其它Web服务软件,应采取措施(修改端口,停用或卸载),避免冲突

tcp        0      0 0.0.0.0:80    0.0.0.0:*      LISTEN      13440/nginx         

[root@rhel6 ~]# elinks http://192.168.1.226       测试网页wKiom1ZAcIWjV9knAADfIF7_QpE417.png

   Welcome to nginx!

主程序Nginx支持标准的进程信号,通过killkillall命令发送HUP信号表示重载配置,QUIT信号表示退出进程,KILL信号表示杀死进程,例:

#killall -s  HUP nginx   //选项 -s HUP 等同于-1 重载 

#killall -s  QUIT nginx  //选项-s QUIT 等同于-3 杀死

当然为了使Nginx服务的启动,停止,重载方便也可以使用服务脚本。

二、配置文件Nginx.conf

Nginx服务器的主配置文件/usr/local/ngixn/conf/nginx.conf中,包括全局配置,I/O配置和HTTP配置这三大块内容

http{}包括访问日志,HTTP端口,网页目录,默认字符集,连接保持,以及虚拟主机,PHP解析等一系列设置,大部分配置都包含在子界定标记server{}

Nginx内置了HTTP_STUB_STATUS状态统计模块,用来反馈当前的Web访问情况,配置编译参数时可添加--with-http_stub_status_module来启动此模块。当然还要修改nginx.conf配置文件,指定访问位置并打开stub_stauts配置

wKiom1ZAcLCCkhXNAACfUprIBdg723.png 

基于域名的虚拟主机   1.准备网站目录及测试文件

例:#mkdir -p /var/www/benet

#echo <h1>WWW.BENET.COM</h1> >/var/www/benet.com/index.html

2.调整nginx.conf的配置文件  (此处要去掉配置文件中pid log前的注释,还要特别注意http,server开始结束的{}符号)

[root@rhel6 ~]# vim /usr/local/nginx/conf/nginx.conf

     server {

         listen       80;

          server_name  www.benet.com;

         charset utf-8;

         location / {

              root   /var/www/benet;

              index  index.html index.php;

         }wKioL1ZAcRaRnGqSAACb2yzgfFU263.png

用域名访问少不了DNShost文件的修改(略)

二、安装MySQL数据库   (建议使用install_mysql.sh 脚本

yum -y remove mysql-server mysql

yum -y install compat-libtermcap ncurses-devel

1)这里借用的cmake配置编译安装Myqal的源码包

#cd cmake-2.8.6

#./configure

#gmake && gmake install 

#cd mysql-5.5.22

#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc

#make && make install

2)优化调整 

rm -rf /etc/my.cnf

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 --level 35 mysqld on

echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile

. /etc/profile 或者 source /etc/profile

3))初始化数据库

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

4)启动数据库

service mysqld start

mysqladmin -u root password 'pwd123'

mysql -u root -p

 

三、安装PHP环境  建议使用install_php.sh 脚本、install_zend.sh 脚本

yum -y remove php

yum -y install libxml2-devel libpng-devel pcre-devel

yum -y install gd libxml2 libxml2-devel libjpeg-devel libpng-devel

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

 

测试:make test

 

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)安装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/

 

vim /usr/local/php5/php.ini

zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so

zend_loader.enable=1

 

Killall -3 nginx

nginx

 [root@localhost ~]# vi /usr/local/php5/etc/php-fpm.conf

pid = run/php-fpm.pid

user = nginx

group = nginx

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

 

[root@rhel6 ~]# /usr/local/sbin/php-fpm  启动php-fpm进程

[root@rhel6 ~]# vim /usr/local/php5/php.ini

date.timezone ="PRC" 

//PRCPeoples Republic of China,中华人民共和国,也就是日期使用中国的时区。

 

四、配置Nginx 支持PHP环境

1、修改Nginx服务脚本,以便在启动、停止Nginx服务时将php-fpm进程启动、停止

[root@rhel6 ~]# vim /etc/init.d/nginx   (参考脚本nginx.initscript)

#!/bin/bash

# chkconfig: 35 99 20

# description: Nginx Service Control Script

PROG="/usr/local/nginx/sbin/nginx"

PROG_FPM="/usr/local/sbin/php-fpm"

PIDF="/usr/local/nginx/logs/nginx.pid"

PIDF_FPM="/usr/local/php5/var/run/php-fpm.pid"

case "$1" in

  start)

    $PROG

    $PROG_FPM

    ;;

  stop)

    kill -s QUIT $(cat $PIDF)

    kill -s QUIT $(cat $PIDF_FPM)

    ;;

  restart)

    $0 stop

    $0 start

    ;;

  reload)

    kill -s HUP $(cat $PIDF)

    ;;

  *)

        echo "Usage: $0 {start|stop|restart|reload}"

        exit 1

esac

exit 0

[root@rhel6 ~]# chmod a+x /etc/init.d/nginx

 

 

2、配置Nginx支持PHP解析

[root@rhel6 ~]# vim /usr/local/nginx/conf/nginx.conf

            index  index.html index.php;

          location ~ \.php$ {

             root           /var/www/benet;

              fastcgi_pass   127.0.0.1:9000;

              fastcgi_index  index.php;

               include        fastcgi.conf;

         }

 

注意:解析时可能会出现一些常见的错误,比如404找不到文件,5XX就是动态解析的原因了

LNMP 测试:

[root@rhel6 ~]# vim /var/www/benet/test.php

<?php 

$link=mysql_connect('localhost','root','666666');     //单引号

if($link)

echo "congratulation!!!"; 

mysql_close();

?>

 

wKioL1ZAcaLyaAPoAACl62VqvGE716.png 

 

[root@rhel6 ~]# vim /var/www/benet/testphpinfo.php

<?php

phpinfo();

?>

wKioL1ZAccLjWZFOAAIR-sc0FpE413.png 

 

五、安装部署电影服务器

[root@rhel6 benet]# mysql -u root -p

mysql> create database skyucdb;

[root@rhel6 benet]# tar -jxvf SKYUC_3.2.2_Free_For_PHP5.3.tar.bz2

[root@rhel6 ~]# cp -ap  SKYUC_3.2.2_Free_For_PHP5.3/wwwroot/* /var/www/benet/

[root@rhel6 wwwroot]# cd /var/www/benet/

[root@rhel6 benet]# chmod -R 777 data/

[root@rhel6 benet]# chmod -R 777 templates/

[root@rhel6 benet]# chmod -R 777 admincp/

[root@rhel6 benet]# chmod -R 777 upload/

 #mysql -u -p 

 

Mysql> create database skyucdb;

Mysql> grant all on skyucdb.* to runskyuc@localhost identified by sky@uc123;

wKiom1ZAcaLScf_pAAGyMJs78dQ071.png 

 

wKioL1ZAcfyiqo8KAAGeYImE_bE046.png 

wKioL1ZAcg3QXyB_AAFjgN37vBU215.png 


你可能感兴趣的:(LNMP)