LNMP的部署

1、簡介php

LNMP表明的就是:Linux系統下Nginx+MySQL+PHP這種網站服務器架構。html

——Linux是一類Unix計算機操做系統的統稱,是目前最流行的免費操做系統。表明版本有:debian、mysql

        centos、ubuntu、fedora、gentoo等。nginx

——Nginx是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP代理服務器。sql

——Mysql是一個小型關係型數據庫管理系統。數據庫

——PHP是一種在服務器端執行的嵌入HTML文檔的腳本語言。ubuntu

這四種軟件均爲免費開源軟件,組合到一塊兒,成爲一個免費、高效、擴展性強的網站服務系統。vim

2、項目環境centos

Linux 6.5api

Nginx-1.8.1.tar.gz     

Mysql-5.6.16.tar.gz

php-5.6.20.tar.gz

nginx源碼包下載地址http://nginx.org/en/download.html

3、項目架構

4、安裝過程

一、nginx服務器安裝配置

(1)首先安裝開發環境,及所需依賴

[root@nginx ~]# yum -y groupinstall  "Development libraries" "Development tools" "X Software Development" 

[root@nginx ~]# yum -y install gcc  pcre pcre-devel

(2)添加nginx使用用戶

[root@nginx ~]#useradd -r www

(3)編譯安裝nginx

[root@nginx ~]# tar -zxvf nginx-1.8.1.tar.gz

[root@nginx ~]# cd nginx-1.8.1

[root@nginx nginx-1.8.1]# ./configure --prefix=/usr/local/nginx  \

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

> --with-http_ssl_module  \  ## 啓用ngx_http_ssl_module支持(需已安裝openssl)

> --with-http_stub_status_module \  ##啓用nginx的NginxStatus功能

> --with-http_gzip_static_module  \  ##啓用ngx_http_gzip_static_module支持

> --with-pcre

[root@nginx nginx-1.8.1]# make && make install

(4)編輯nginx.conf,在server段中如下內容去掉註釋

   location ~ \.php$ {

            fastcgi_pass   192.168.32.130:9000;    ##PHP服務器,及監聽端口

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;

            include        fastcgi_params;

        }

(5)啓動nginx

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

 

(6)測試訪問,訪問成功以下圖:



二、PHP服務器的安裝

(1)PHP所需依賴,及添加用戶

[root@php ~]# yum -y install gcc openssl-devel pcre pcre-devel zlib-devel libxml2-devel curl-devel libjpeg-devel libpng-devel freetype-devel bzip2-devel

[root@php ~]# useradd -r www

 

(2)安裝PHP擴展

[root@php ~ ]# tar -zxvf mhash-0.9.9.9.tar.gz

[root@php mhash-0.9.9.9]# cd mhash-0.9.9.9

[root@php mhash-0.9.9.9]# ./configure

[root@php mhash-0.9.9.9]# make && make install

[root@php ~ ]# tar -zxvf libiconv-1.13.tar.gz

[root@php libiconv-1.13]# cd libiconv-1.13

[root@php libiconv-1.13]# ./configure

[root@php libiconv-1.13]# make && make install



[root@php libmcrypt-2.5.8]# tar -zxvf libmcrypt-2.5.8.tar.gz 

[root@php libmcrypt-2.5.8]# cd libmcrypt-2.5.8

[root@php libmcrypt-2.5.8]# ./configure

[root@php libmcrypt-2.5.8]# make && make install

[root@php libmcrypt-2.5.8]# ldconfig -v

[root@php libmcrypt-2.5.8]# cd libltdl

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

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

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

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

[root@php ~ ] # ldconfig -v

(3)編譯安裝PHP

[root@php ~]#tar -zxvf php-5.6.20.tar.gz 

[root@php ~]#cd php-5.6.20

[root@php php-5.6.20]#./configure --prefix=/usr/local/php5  \

> --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd  \

>--with-mysqli=mysqlnd --with-openssl  \

>--enable-mbstring --with-freetype-dir  \

>--with-jpeg-dir --with-png-dir --with-zlib  \

>--with-libxml-dir=/usr --enable-xml  \

>--enable-sockets --enable-fpm  \

>--with-mcrypt --with-config-file-path=/etc   \

>--with-config-file-scan-dir=/etc/php.d   \

>--with-bz2 --with-mcrypt --with-mhash \

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

configure: error: Cannot find ldap libraries in /usr/lib

解決辦法:

             cp -frp /usr/lib64/libldap* /usr/lib/

若是出現的報錯相似於libmysqlclient.so.18這樣的文件not found,查找以後作個軟鏈接,並ldconfig && make clean 

 

[root@php php-5.6.20]#make && make install

[root@php php-5.6.20]#cp  sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm

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

[root@php php-5.6.20]#chkconfig --add php-fpm

[root@php php-5.6.20]#chkconfig  php-fpm on

[root@php php-5.6.20]# cd /usr/local/php5/etc/

[root@php etc]# cp php-fpm.conf.default php-fpm.conf

[root@php etc]#cat php-fpm.conf   ## 更改如下內容

[global]

pid = run/php-fpm.pid

error_log = log/php-fpm.log

log_level = error

daemonize = yes

[www]

user = www

group = www

listen = 192.168.32.130:9000 

pm = dynamic                         ## 進程管理方式爲dynamic,static爲靜態

pm.max_children = 32            ##子進程最大數根據官方建議,小於2GB內存的服務器,

                                                  ##能夠只開啓64個進程,4GB以上內存的服務器能夠開啓200個進程。

pm.start_servers = 15             ##動態方式下的起始php-fpm進程數量。

pm.min_spare_servers = 5     ##動態方式下的最小php-fpm進程數量

pm.max_spare_servers = 32  ##動態方式下的最大php-fpm進程數量

[root@php etc]# service php-fpm start

[root@php etc]#cd /var/www/html

[root@php html]# cat index.php        ##測試頁面

<!--?php

        $link = mysql_connect('192.168.32.128','root','123456');

        if ($link)

                echo "Success...";

        else

                echo "Failure...";

 

        mysql_close();

        phpinfo();

?>

三、mysql服務器安裝

(1)編譯安裝mysql

[root@mysql ~]# yum -y install gcc cmake

[root@mysql ~]#useradd -s /sbin/nologin -M mysql

[root@mysql ~]#tar -zxvf mysql-5.6.16.tar.gz

[root@mysql ~]# cd mysql-5.6.16

[root@mysql mysql-5.6.16]# 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@mysql mysql-5.6.16]#make &&make install

(2)配置mysql

[root@mysql mysql-5.6.16]#cd /usr/local/mysql

[root@mysql mysql]# chown -R mysql.mysql /usr/local/mysql/

[root@mysql mysql]# ./scripts/mysql_install_db --user=mysql   \

>--datadir=/usr/local/mysql/data                      ##Mysql初始化

[root@mysql mysql]# ls data/

mysql performance_schema test

[root@mysql mysql]#cp support-files/my-medium.cnf /etc/my.cnf

[root@mysql mysql]#cp support-files/mysql.server      /etc/init.d/mysqld

[root@mysql mysql]# chmod +x /etc/init.d/mysqld

[root@mysql mysql]#chkconfig mysqld on

(3)環境變量設置

[root@mysql ~]# vim  /etc/profile

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

[root@mysql ~]# source  /etc/profile 

[root@mysql ~]# cat /etc/ld.so.conf

include ld.so.conf.d/*.conf

/usr/local/mysql/lib/

[root@mysql ~]# ldconfig

(4)數據庫受權

mysql> grant all privileges on *.* to root@% identified by '123456';

mysql> grant all privileges on *.* to root@'localhost' identified by '123456';

mysql> flush privileges;

(5)測試

相關文章
相關標籤/搜索