淺談LNMP搭建

Nginx 有三大顯著特色:1.穩定性php

                      2.低系統資源損耗html

                      3.HTTP併發鏈接的高處理能力(單臺30000-50000併發請求)mysql

Nginx 主要是靜態網站的解析,和提交動態請求   FPMfastcgi進程管理器)解析動態網站linux

LNMP平臺上能夠結合xcache加速PHH解析速度,提升頁面生成速度2-5nginx

安裝前的準備工做:yum  -y install pcre-devel zlib-devel gcc gcc-c++c++

Nginx 的配置及運行須要pcre ,zlib 等軟件包的支持,以便提供相應的庫和頭文件,也須要gcc的支持sql

掛載CentOs系統的YUM時,注意CentOsYUM 配置會首先檢查自帶的網絡配置,也就是Centos-Base.repo,因此要想讓本地YUM 生效,就是刪除Base.repo或給其更名(Redhat 無需如此)數據庫

另:若是咱們防火牆規則不是太熟練,能夠事先清空防火牆規則及修改/etc/sysconfig/selinux的安全制vim

1、編譯安裝Nginx (建議使用nginx_install.sh 腳本安全

[root@rhel6 ~]# nginx –t       //測試是否安裝正確

[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服務的啓動,中止,重載方便也可使用服務腳本。

2、配置文件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文件的修改(略)

2、安裝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

 

3、安裝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,×××,也就是日期使用中國的時區。

 

4、配置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 

 

5、安裝部署電影服務器

[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

相關文章
相關標籤/搜索