LNMP架構介紹、MySQL安裝、PHP安裝

LNMP架構介紹

和LAMP唯一不同的是,LNMP中的N指的是Nginx(類似於Apache的一種web服務軟件)。目前這種環境的應用也非常多。Nginx設計的初衷是提供一種快速、高效、多併發的Web服務軟件。在靜態頁面的處理上,Nginx較Apache更勝一籌,但在動態頁面的處理上,Nginx並不比Apache有優勢。但是目前還是有很多愛好者對Nginx比較熱衷。隨着Nginx技術的不斷成熟,它在Web服務軟件領域的地位也會越來越高。

並且php是作爲一個獨立服務存在的,這個服務叫做php-fpm。Nginx直接處理靜態請求,動態請求會轉發給php-fpm。



MySQL安裝

1. 刪除之前安裝的mysql

[root@gary-tao ~]# ps aux |grep mysql  //查看服務是否啓動

root       2233  0.0  0.0 112680   972 pts/0    R+   19:16   0:00 grep --color=auto mysql

[root@gary-tao ~]# rm -rf /usr/local/mysql  

[root@gary-tao ~]# rm -rf /etc/init.d/mysqld


2.安裝mysql過程

[root@gary-tao ~]# cd /usr/local/src/

[root@gary-tao ~]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz 

[root@gary-tao src]# tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

[root@gary-tao src]# mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql

[root@gary-tao src]# cd /usr/local/mysql/

[root@gary-tao mysql]# ls

bin  COPYING  data  docs  include  lib  man  mysql-test  README  scripts  share  sql-bench  support-files

[root@gary-tao mysql]# ls /data/

mariadb  mydata  mysql  wwwroot

[root@gary-tao mysql]# id mysql

uid=1000(mysql) gid=1000(mysql) 組=1000(mysql)

[root@gary-tao mysql]# rm -rf /data/mysql/*  //由於之前創建個,刪除

[root@gary-tao mysql]# useradd mysql

[root@gary-tao mysql]# mkdir /data/

[root@gary-tao mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

[root@gary-tao mysql]# echo $?

0

[root@gary-tao mysql]# cp support-files/my-default.cnf  /etc/my.cnf 

[root@gary-tao mysql]# vim /etc/my.cnf


定義如下:

datadir=/data/mysql

socket=/tmp/mysql.sock


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

[root@gary-tao mysql]# vim /etc/init.d/mysqld


定義如下:

basedir=/usr/local/mysql

datadir=/data/mysql


[root@gary-tao mysql]# /etc/init.d/mysqld start //啓動mysql

Starting MySQL.Logging to '/data/mysql/gary-tao.err'.

. SUCCESS! 

[root@gary-tao mysql]# ps aux |grep mysql  //查看服務是否啓動

root       2317  0.1  0.1 113268  1592 pts/0    S    19:40   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/gary-tao.pid

mysql      2452  4.1 45.1 973060 451828 pts/0   Sl   19:40   0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/gary-tao.err --pid-file=/data/mysql/gary-tao.pid --socket=/tmp/mysql.sock

root       2480  0.0  0.0 112680   976 pts/0    R+   19:41   0:00 grep --color=auto mysql

[root@gary-tao mysql]# chkconfig --add mysqld //把啓動腳本加入系統服務

[root@gary-tao mysql]# chkconfig mysqld on  //設定開機啓動mysql

[root@gary-tao mysql]# service mysqld start  //啓動服務

Starting MySQL SUCCESS! 



PHP安裝

Nginx的PHP安裝和上一章的PHP安裝是有區別的,因爲Nginx中的PHP是以fastcgi的方式給合Nginx的,可以理解爲Nginx代理了PHP的fastcgi,而httpd是把PHP作爲自己的模塊來調用的。


1. 因爲之前安裝過php,這次重新安裝的話直接在源碼包目錄下執行命令:make clean,刪除之前編譯過的文件內容,回到之前的解壓的狀態。

[root@gary-tao ~]# cd /usr/local/src/

[root@gary-tao src]# ls

apr-1.6.3         apr-util-1.6.1.tar.gz  mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz  php-5.6.30.tar.gz  phpredis-develop

apr-1.6.3.tar.gz  httpd-2.4.29           mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz     php-7.1.6          phpredis-develop.zip

apr-util-1.6.1    httpd-2.4.29.tar.gz    php-5.6.30                                    php-7.1.6.tar.bz2

[root@gary-tao src]# cd php-5.6.30

[root@gary-tao php-5.6.30]# ls

acinclude.m4      configure.in     libs                makerpm              php.ini-production                README.STREAMS             stamp-h.in

aclocal.m4        CREDITS          libtool             meta_ccld            README.EXT_SKEL                   README.SUBMITTING_PATCH    stub.c

build             ext              LICENSE             missing              README.GIT-RULES                  README.TESTING             tests

buildconf         EXTENSIONS       ltmain.sh           mkinstalldirs        README.input_filter               README.TESTING2            travis

buildconf.bat     footer           main                modules              README.MAILINGLIST_RULES          README.UNIX-BUILD-SYSTEM   TSRM

CODING_STANDARDS  generated_lists  makedist            netware              README.md                         README.WIN32-BUILD-SYSTEM  UPGRADING

config.guess      genfiles         Makefile            NEWS                 README.namespaces                 run-tests.php              UPGRADING.INTERNALS

config.log        header           Makefile.frag       pear                 README.NEW-OUTPUT-API             sapi                       vcsclean

config.nice       include          Makefile.fragments  php5.spec            README.PARAMETER_PARSING_API      scripts                    win32

config.status     INSTALL          Makefile.gcov       php5.spec.in         README.REDIST.BINS                server-tests-config.php    Zend

config.sub        install-sh       Makefile.global     php.gif              README.RELEASE_PROCESS            server-tests.php

configure         libphp5.la       Makefile.objects    php.ini-development  README.SELF-CONTAINED-EXTENSIONS  snapshot

[root@gary-tao php-5.6.30]# make clean

find . -name \*.gcno -o -name \*.gcda | xargs rm -f

find . -name \*.lo -o -name \*.o | xargs rm -f

find . -name \*.la -o -name \*.a | xargs rm -f 

find . -name \*.so | xargs rm -f

find . -name .libs -a -type d|xargs rm -rf

rm -f libphp5.la sapi/cli/php sapi/cgi/php-cgi    libphp5.la modules/* libs/*

備註,如果是第一次安裝的話按如下操作即可:


安裝到指定目錄 cd /usr/local/src/

下載源碼包 wget http://cn2.php.net/distributions/php-5.6.30.tar.gz

解壓源碼包 tar zxf php-5.6.30.tar.gz


2.創建賬號

該賬號用來運行php-fpm服務的,在LNMP環境中,PHP以一個服務php-fpm的形式出現,獨立存在於Linux系統中,方便管理。

[root@gary-tao php-5.6.30]# useradd -s /sbin/nologin php-fpm


3.安裝PHP

[root@gary-tao php-5.6.30]# ./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl  --with-openssl

編譯參數和跟之前的文章不同,這裏多了一個--enable-fpm,如果不加該參數,則不會有php-fpm執行文件生成,更不能啓動php-fpm服務。


報錯:


解決辦法:

yum install -y libcurl-devel

注意:如果是第一次安裝PHP,會有很多依賴包需要安裝,這時你看錯誤提示,缺少什麼包就安裝什麼包。



4.編譯PHP

[root@gary-tao php-5.6.30]# make

[root@gary-tao php-5.6.30]# make clean && make

報錯如下圖:


解決辦法:

#vim Makefile //在大概105行,-lcrypt後面加“-lpthread"


解決辦法:


#make clean && make


5.安裝PHP

[root@gary-tao php-5.6.30]# make install


6.修改配置文件:

[root@gary-tao php-5.6.30]# ls /usr/local/php-fpm/etc/

pear.conf  php-fpm.conf.default  

[root@gary-tao php-5.6.30]# cp php.ini-production /usr/local/php-fpm/etc/php.ini  //拷貝配置文件  (production是生成環境下用的,development是開發環境下用的)

[root@gary-tao php-5.6.30]# ls /usr/local/php-fpm/etc/

pear.conf  php-fpm.conf.default  php.ini

[root@gary-tao etc]# vim /usr/local/php-fpm/etc/php-fpm.conf


添加如下內容:


[global]    //定義全局參數 

pid = /usr/local/php-fpm/var/run/php-fpm.pid

error_log = /usr/local/php-fpm/var/log/php-fpm.log

[www]                      //一個模塊的名字

listen = /tmp/php-fcgi.sock   //監聽地址

listen.mode = 666     //監聽的是sock時這行才生效,用來定義sock文件的權限是666

user = php-fpm    //定義服務的用戶

group = php-fpm   //定義服務的用戶組

pm = dynamic

pm.max_children = 50

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

pm.max_requests = 500

rlimit_files = 1024


7.檢測配置

[root@gary-tao etc]# /usr/local/php-fpm/sbin/php-fpm -t //報以下是正常的。

[02-Jan-2018 20:02:02] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful


8.拷貝啓動腳本

[root@gary-tao etc]# cd /usr/local/src/php-

php-5.6.30/        php-5.6.30.tar.gz  php-7.1.6/         php-7.1.6.tar.bz2  

[root@gary-tao etc]# cd /usr/local/src/php-5.6.30/ //進入到源碼包目錄

[root@gary-tao php-5.6.30]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm  //拷貝啓動腳本到指定目錄下


9.修改啓動腳本權限及添加服務到開機啓動

[root@gary-tao php-5.6.30]# chmod 755 /etc/init.d/php-fpm //更改權限

[root@gary-tao php-5.6.30]# chkconfig --add php-fpm  //

[root@gary-tao php-5.6.30]# chkconfig php-fpm on  //設置開機啓動

[root@gary-tao etc]# service php-fpm start  //啓動php命令

Starting php-fpm  done

[root@gary-tao etc]# ps aux |grep php-fpm  //查看進程

root      58306  0.1  0.4 123560  4968 ?        Ss   20:38   0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)

php-fpm   58307  0.0  0.4 123560  4704 ?        S    20:38   0:00 php-fpm: pool www

php-fpm   58308  0.0  0.4 123560  4704 ?        S    20:38   0:00 php-fpm: pool www

php-fpm   58309  0.0  0.4 123560  4704 ?        S    20:38   0:00 php-fpm: pool www

php-fpm   58310  0.0  0.4 123560  4704 ?        S    20:38   0:00 php-fpm: pool www

php-fpm   58311  0.0  0.4 123560  4708 ?        S    20:38   0:00 php-fpm: pool www

php-fpm   58312  0.0  0.4 123560  4708 ?        S    20:38   0:00 php-fpm: pool www

php-fpm   58313  0.0  0.4 123560  4708 ?        S    20:38   0:00 php-fpm: pool www

php-fpm   58314  0.0  0.4 123560  4708 ?        S    20:38   0:00 php-fpm: pool www

php-fpm   58315  0.0  0.4 123560  4708 ?        S    20:38   0:00 php-fpm: pool www

php-fpm   58316  0.0  0.4 123560  4708 ?        S    20:38   0:00 php-fpm: pool www

php-fpm   58317  0.0  0.4 123560  4708 ?        S    20:38   0:00 php-fpm: pool www

php-fpm   58318  0.0  0.4 123560  4708 ?        S    20:38   0:00 php-fpm: pool www

php-fpm   58319  0.0  0.4 123560  4712 ?        S    20:38   0:00 php-fpm: pool www

php-fpm   58320  0.0  0.4 123560  4712 ?        S    20:38   0:00 php-fpm: pool www

php-fpm   58321  0.0  0.4 123560  4712 ?        S    20:38   0:00 php-fpm: pool www

php-fpm   58322  0.0  0.4 123560  4712 ?        S    20:38   0:00 php-fpm: pool www

php-fpm   58323  0.0  0.4 123560  4712 ?        S    20:38   0:00 php-fpm: pool www

php-fpm   58324  0.0  0.4 123560  4712 ?        S    20:38   0:00 php-fpm: pool www

php-fpm   58325  0.0  0.4 123560  4712 ?        S    20:38   0:00 php-fpm: pool www

php-fpm   58326  0.0  0.4 123560  4712 ?        S    20:38   0:00 php-fpm: pool www

root      58329  0.0  0.0 112680   976 pts/0    R+   20:38   0:00 grep --color=auto php-fpm


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