linux的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。php

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做爲本身的模塊來調用的。mysql

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/* 
備註,若是是第一次安裝的話按以下操做便可:
2.建立帳號

該帳號用來運行php-fpm服務的,在LNMP環境中,PHP以一個服務php-fpm的形式出現,獨立存在於Linux系統中,方便管理。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服務。web

報錯:

解決辦法:redis

yum install -y libcurl-develsql

注意:若是是第一次安裝PHP,會有不少依賴包須要安裝,這時你看錯誤提示,缺乏什麼包就安裝什麼包。
4.編譯PHP
[root@gary-tao php-5.6.30]# make [root@gary-tao php-5.6.30]# make clean && make 
報錯以下圖:

解決辦法:vim

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

解決辦法:ruby

#make clean && makebash

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
相關文章
相關標籤/搜索