LNMP搭建

部署lnnp環境

案例要求:在服務器上用源碼包部署lnmp環境,

準備工作:配置固定ip地址,安裝開發工具開發庫軟件包組, 構建yum

準備需要的源碼包 將當前主機中rpm包提供的mysqlhttpd停止並設置開機不啓動。

安裝源碼的nginx軟件包

[root@localhost ~]# useradd -M -s /sbin/nologin www  //生成nginx所有者www是源碼包默認或nginx

[root@localhost ~]# cd /root/Desktop/lnmp+memcached/

[root@localhost nginx-1.2.0]#  yum -y install pcre-devel pcre

[root@localhost lnmp+memcached]# tar -zxvf nginx-1.2.0.tar.gz

  [root@localhost nginx-1.2.0]# ./configure   \

         > --prefix=/usr/local/nginx    \

            > --pid-path=/usr/local/nginx/nginx.pid  \

            > --user=www   --group=www \

            > --with-http_ssl_module   --with-http_flv_module  \

            > --with-http_stub_status_module \

            > --with-http_gzip_static_module \

            > --http-client-body-temp-path=/usr/local/nginx/client \

            > --http-proxy-temp-path=/usr/local/nginx/proxy \

            > --http-fastcgi-temp-path=/usr/local/nginx/fcgi \

            > --http-uwsgi-temp-path=/usr/local/nginx/uwsgi \

            > --http-scgi-temp-path=/usr/local/nginx/scgi \

     > --with-pcre

[root@localhost nginx-1.2.0]# make && make install

 

2、安裝源碼mysql 

 (1) 安裝編譯工具

     [root@localhost lnmp+memcached]# tar -zxvf cmake-2.8.10.2.tar.gz 

   [root@localhost cmake-2.8.10.2]# ./bootstrap   --prefix=/usr/local/cmake 

   [root@localhost cmake-2.8.10.2]#make && make install

   [root@localhost bin]# pwd 

      /usr/local/cmake/bin

[root@localhost bin]# ./cmake  --version

        cmake version 2.8.10.2  //出現版本號說明安裝成功

(2) 安裝源碼mysql

[root@localhost lnmp+memcached]# useradd -M -s /sbin/nologin  mysql //添加進程的所有者

[root@localhost lnmp+memcached]# tar -zxvf  mysql-5.5.13.tar.gz

[root@localhost lnmp+memcached]# cd mysql-5.5.13

   [root@localhost mysql-5.5.13]#  /usr/local/cmake/bin/cmake   \

> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql   \

> -DSYSCONFDIR=/etc   -DMYSQL_DATADIR=/usr/local/mysql/data \

    > -DMYSQL_TCP_PORT=3306  \

    > -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock  \

    > -DMYSQL_USER=mysql   -DEXTRA_CHARSETS=all  \

    > -DWITH_READLINE=1   -DWITH_SSL=system  \

    > -DWITH_EMBEDDED_SERVER=1  \

    > -DENABLED_LOCAL_INFILE=1  \

    > -DWITH_INNOBASE_STORAGE_ENGINE=1

     [root@localhost mysql-5.5.13]# make && make install

   [root@localhost data]# pwd 

     /usr/local/mysql/data

   [root@localhost data]# ls 

    mysql  test

   [root@localhost mysql]# pwd 

    /usr/local/mysql

    [root@localhost mysql]# ./scripts/mysql_install_db --user=mysql  //初始化授權庫

    [root@localhost mysql]# chown -R mysql.mysql .

    [root@localhost mysql]# cd /root/Desktop/lnmp+memcached/mysql-5.5.13

    [root@localhost mysql-5.5.13]# cp support-files/my-medium.cnf /etc/my.cnf  //創建主配置文件

    [root@localhost mysql-5.5.13]# cp support-files/mysql.server /etc/init.d/mysldd  //複製啓動文件

    [root@localhost mysql-5.5.13]# chmod +x /etc/init.d/mysldd

    [root@localhost mysql-5.5.13]# /etc/init.d/mysldd start    //啓動服務

    Starting MySQL..                                           [確定]

    [root@localhost ~]# /usr/local/mysql/bin/mysql -hlocalhost -uroot -p  //登錄服務

     [root@localhost ~]# vim /etc/profile   //將命令的路徑添加到系統環境PATH變量中。

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

     [root@localhost ~]# vim /etc/ld.so.conf   //指定mysql庫文件頭文件的位置

     /usr/local/mysql/lib

   [root@localhost ~]# ldconfig  -v

3、安裝PHP

   (1): 安裝php擴展包

          [root@localhost lnmp+memcached]# tar -zxvf mhash-0.9.9.9.tar.gz   // 函數庫

          [root@localhost mhash-0.9.9.9]# ./configure  && make && make install

[root@localhost libiconv-1.13]# tar -zxvf libiconv-1.13.tar.g z//編碼轉換

[root@localhost libiconv-1.13]# ./configure && make && make install

[root@localhost lnmp+memcached]# tar -zxvf libmcrypt-2.5.8.tar.gz     // 加密

[root@localhost lnmp+memcached]# cd libmcrypt-2.5.8

[root@localhost libmcrypt-2.5.8]# ./configure  && make && make install

[root@localhost libmcrypt-2.5.8]# ldconfig v

[root@localhost libmcrypt-2.5.8]# cd libltdl/

[root@localhost libmcrypt-2.5.8]# cd libltdl/

[root@localhost libltdl]# ./configure --with-gmetad --enable-gexec --enable-ltdl-install  

[root@localhost libltdl]# make  &&  make install

[root@localhost ~]# ln -sv /usr/local/lib/libmcrypt* /usr/local/

[root@localhost ~]# ln -sv /usr/local/lib/libmhash.* /usr/lib/

ln -sv /usr/local/lib/libiconv* /usr/lib/

[root@localhost ~]# ldconfig v

(2) 安裝PHP

    [root@localhost lnmp+memcached]#  tar -zxvf php-5.4.9.tar.gz

    [root@localhost lnmp+memcached]#  cd php-5.4.9

      ./configure \

  --prefix=/usr/local/php5nginx \

  --with-config-file-path=/usr/local/php5nginx/etc  \

  --with-mysql=/usr/local/mysql  \

  --with-myqsli=/usr/local/mysql/bin/mysql_config \

  --with-iconv-dir=/usr/local \

  --with-freetype-dir   --with-jpeg-dir \

  --with-png-dir     --with-zlib    --with-libxml-dir=/usr \

--enable-xml    --disable-rpath   --enable-bcmath \

--enable-shmop  --enable-sysvsem \

--enable-inline-optimization  --with-curl   --with-curlwrappers 

--enable-mbregex   --enable-fpm  --enable-mbstring    

--with-mcrypt   --with-gd   --enable-gd-native-ttf \

--with-openssl   --with-mhash   --enable-pcntl \

--enable-sockets   --with-ldap   --with-ldap-sasl \

--with-xmlrpc    --enable-zip   --enable-soap \

 :%s/\n//   :%s/\\//

[root@localhost ~]# rpm -qa | grep -i ldap   編譯前查看是否安裝着兩個包

[root@localhost ~]# rpm -qa | grep -i ssl

[root@localhost php-5.4.9]# make ZEND_EXTRA_LIBS='-liconv'  &&  make install

[root@localhost php-5.4.9]# cp php.ini-production  /usr/local/php5nginx/etc/php.ini   //配置文件

[root@localhost ~]# vim /usr/local/nginx/html/test.php

<?php

        phpinfo();

?>

http://nginx_ip/test.php

  整合nginxfast-cgi

 什麼是cgi: 公共網關接口common gateway interface

 HTTP服務器與你的或其他機器上的程序進行交談的一種工具

程序必須運行在網絡服務器上

CGI可以用任何一種語言編寫,只要這種語言具有標準輸入、輸出的環境變量如php perl

Fast-cgifastCGI像是一個常駐(long-live)型的cgi,它可以一直執行着,只要激活後,不會每次都要花費時間去fork一次

支持分佈式的運算,可以在網站服務器以外的主機上執行並且接收來自其他網站服務器的qingqiu

CGI解釋器進程保持在內存中,進行維護與調度

FastCGI技術目前支持語言有 PHPC/C++ JAVA、 。。。。。。。。。。

   配置管理fast-cgi進程的服務fpm

[root@localhost ~]# cd /usr/local/php5nginx/etc/

[root@localhost etc]# cp php-fpm.conf.default  php-fpm.conf  //生成主配置文件

[root@localhost etc]# grep -vE '^;|^$' php-fpm.conf

[global]

 [www]

user = nobody

group = nobody

listen = 127.0.0.1:9000

pm = dynamic

pm.max_children = 5   //最大子進程數

pm.start_servers = 2//啓動進程數

pm.min_spare_servers = 1  //最小空閒進程數

pm.max_spare_servers = 3  //最大空閒進程數

啓動fpm服務

[root@localhost fpm]# pwd      

/root/Desktop/lnmp+memcached/php-5.4.9/sapi/fpm

[root@localhost fpm]# cp init.d.php-fpm /etc/rc.d/init.d/php-fpm

[root@localhost fpm]# chmod +x /etc/rc.d/init.d/php-fpm

[root@localhost fpm]# /etc/rc.d/init.d/php-fpm start  | stop  啓動腳本、關閉腳本

整合nginxfast-cgi : 

nginx服務器訪問到.php結尾的文件時,把這樣的請求,發給本機的9000端口。

Location 匹配用戶訪問url路徑

[root@localhost conf]# pwd 

/usr/local/nginx/conf

[root@localhost conf]# vim fastcgi_params

fastcgi_param  SCRIPT_FILENAME     $document_root$fastcgi_script_name;  

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

 在配置文件中搜索9000:/9000) 將那一段註釋(#) 去掉

  重啓nginxphp-fpm

 [root@localhost ~]# pkill  -9 nginx

[root@localhost ~]#  /usr/local/nginx/sbin/nginx

[root@localhost ~]# /etc/init.d/php-fpm stop

 [root@localhost ~]# /etc/init.d/php-fpm start

測試php能否連接到mysql數據庫服務 

 [root@localhost ~]# vim /usr/local/nginx/html/link.php

<?php

$links=mysql_connect("localhost","root","");

if($links){

                                            echo "links ok!!!";

                }

else{

                                            echo "links no!!!";

        }

?>

[root@localhost ~]# elinks -dump http://nginx_ip /link.php

LNMP+MEMCACHED

     在LNMP服務器上部署memcached服務器 (libevent memcached

      [root@localhost ~]# cd /root/Desktop/lnmp+memcached/

[root@localhost lnmp+memcached]# tar -zxvf libevent-2.0.21-stable.tar.gz

[root@localhost lnmp+memcached]# cd libevent-2.0.21-stable

[root@localhost libevent-2.0.21-stable]# ./configure  && make && make install

[root@localhost libevent-2.0.21-stable]# echo /usr/local/lib/ > /etc/ld.so.conf.d/libevent.conf

[root@localhost ~]# ldconfig

[root@localhost ~]# cd /root/Desktop/lnmp+memcached/

[root@localhost lnmp+memcached]# tar -zxvf memcached-1.4.5.tar.gz

[root@localhost lnmp+memcached]# cd memcached-1.4.5

[root@localhost memcached-1.4.5]# ./configure 

[root@localhost memcached-1.4.5]# make && make install

[root@localhost ~]# /usr/local/bin/memcached -u root -m 100 -c 200 -n 10 -f 2 -d –vvv  //啓動服務

安裝php程序連接memcached服務的軟件包

       [root@localhost ~]# cd /root/Desktop/lnmp+memcached/

       [root@localhost lnmp+memcached]# tar -zxvf memcache-2.2.5.tgz

       [root@localhost lnmp+memcached]# cd memcache-2.2.5

 [root@localhost memcache-2.2.5]# /usr/local/php5nginx/bin/phpize  //查看當前安裝php的信息

[[email protected]]#./configure --with-php-config=/usr/local/php5nginx/bin/php-config --enable-memcached

[root@localhost memcache-2.2.5]# make && make install

/usr/local/php5nginx/lib/php/extensions/no-debug-non-zts-20100525/   //顯示模塊安裝路徑

  

   [root@localhost ~]# vim /usr/local/php5nginx/etc/php.ini

   ; extension_dir = "./"

/usr/local/php5nginx/lib/php/extensions/no-debug-non-zts-20100525/

extension=memcache.so

[root@localhost ~]# /etc/init.d/php-fpm restart  //重啓php-fpm服務   [root@localhost ~]# /usr/local/php5nginx/bin/php –m  //查看加載的模塊

[root@localhost ~]# /usr/local/php5nginx/bin/php -m | grep memcache

Memcache

測試php程序能否使用memcached服務器存儲數據

 

[root@localhost ~]# vim /usr/local/nginx/html/lxg.php

<?php

$memcache=new Memcache;//創建memcache對象

$memcache->connect( 'localhost',11211) or die ( 'could not connect!!' );

$memcache->set('key','test');   //定義變量

$get_values=$memcache->get( 'key' );   //獲取變量

echo $get_values;

?>

 讓nginx支持memcached服務 

http {

                upstrea webgrp{

                server 192.168.1.50:80

                                        }

      server {

                        location / {

                                            ……………………………

                                         set $memcached_key $uri;      //uri路徑定義變量

                                         memcached_pass 127.0.0.1:11211;  //把請求發給memcached服務器

                                         default_type text/html;

                                          error_page 404 @fallback;  //請求跳轉標記

                    }

            location @fallback{                  //upstarem服務器

                                            proxy_pass http://webgrp;

                            }

            }

        }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章