本文主要給大家介紹linux系統(tǒng)的LNMP架構(gòu)、MySQL、PHP安裝講義,希望可以給大家補(bǔ)充和更新些知識(shí),如有其它問題需要了解的可以持續(xù)在創(chuàng)新互聯(lián)行業(yè)資訊里面關(guān)注我的更新文章的。
10年積累的成都網(wǎng)站制作、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有清苑免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
和LAMP唯一不同的是,LNMP中的N指的是Nginx(類似于Apache的一種web服務(wù)軟件)。目前這種環(huán)境的應(yīng)用也非常多。Nginx設(shè)計(jì)的初衷是提供一種快速、高效、多并發(fā)的Web服務(wù)軟件。在靜態(tài)頁面的處理上,Nginx較Apache更勝一籌,但在動(dòng)態(tài)頁面的處理上,Nginx并不比Apache有優(yōu)勢(shì)。但是目前還是有很多愛好者對(duì)Nginx比較熱衷。隨著Nginx技術(shù)的不斷成熟,它在Web服務(wù)軟件領(lǐng)域的地位也會(huì)越來越高。
并且php是作為一個(gè)獨(dú)立服務(wù)存在的,這個(gè)服務(wù)叫做php-fpm。Nginx直接處理靜態(tài)請(qǐng)求,動(dòng)態(tài)請(qǐng)求會(huì)轉(zhuǎn)發(fā)給php-fpm。
[root@gary-tao ~]# ps aux |grep mysql //查看服務(wù)是否啟動(dòng)
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
[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/* //由于之前創(chuàng)建個(gè),刪除
[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 //啟動(dòng)mysql
Starting MySQL.Logging to '/data/mysql/gary-tao.err'.
. SUCCESS!
[root@gary-tao mysql]# ps aux |grep mysql //查看服務(wù)是否啟動(dòng)
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 //把啟動(dòng)腳本加入系統(tǒng)服務(wù)
[root@gary-tao mysql]# chkconfig mysqld on //設(shè)定開機(jī)啟動(dòng)mysql
[root@gary-tao mysql]# service mysqld start //啟動(dòng)服務(wù)
Starting MySQL SUCCESS!
Nginx的PHP安裝和上一章的PHP安裝是有區(qū)別的,因?yàn)镹ginx中的PHP是以fastcgi的方式給合Nginx的,可以理解為Nginx代理了PHP的fastcgi,而httpd是把PHP作為自己的模塊來調(diào)用的。
[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/*
該賬號(hào)用來運(yùn)行php-fpm服務(wù)的,在LNMP環(huán)境中,PHP以一個(gè)服務(wù)php-fpm的形式出現(xiàn),獨(dú)立存在于Linux系統(tǒng)中,方便管理。
[root@gary-tao php-5.6.30]# useradd -s /sbin/nologin php-fpm
[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
編譯參數(shù)和跟之前的文章不同,這里多了一個(gè)--enable-fpm,如果不加該參數(shù),則不會(huì)有php-fpm執(zhí)行文件生成,更不能啟動(dòng)php-fpm服務(wù)。
解決辦法:
yum install -y libcurl-devel
[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
[root@gary-tao php-5.6.30]# make install
[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是生成環(huán)境下用的,development是開發(fā)環(huán)境下用的)
[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
添加如下內(nèi)容:
[global] //定義全局參數(shù)
pid = /usr/local/php-fpm/var/run/php-fpm.pid
error_log = /usr/local/php-fpm/var/log/php-fpm.log
[www] //一個(gè)模塊的名字
listen = /tmp/php-fcgi.sock //監(jiān)聽地址
listen.mode = 666 //監(jiān)聽的是sock時(shí)這行才生效,用來定義sock文件的權(quán)限是666
user = php-fpm //定義服務(wù)的用戶
group = php-fpm //定義服務(wù)的用戶組
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
[root@gary-tao etc]# /usr/local/php-fpm/sbin/php-fpm -t //報(bào)以下是正常的。
[02-Jan-2018 20:02:02] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
[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/ //進(jìn)入到源碼包目錄
[root@gary-tao php-5.6.30]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm //拷貝啟動(dòng)腳本到指定目錄下
[root@gary-tao php-5.6.30]# chmod 755 /etc/init.d/php-fpm //更改權(quán)限 [root@gary-tao php-5.6.30]# chkconfig --add php-fpm // [root@gary-tao php-5.6.30]# chkconfig php-fpm on //設(shè)置開機(jī)啟動(dòng) [root@gary-tao etc]# service php-fpm start //啟動(dòng)php命令 Starting php-fpm done [root@gary-tao etc]# ps aux |grep php-fpm //查看進(jìn)程 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
看了以上關(guān)于linux系統(tǒng)的LNMP架構(gòu)、MySQL、PHP安裝講義,希望能給大家在實(shí)際運(yùn)用中帶來一定的幫助。本文由于篇幅有限,難免會(huì)有不足和需要補(bǔ)充的地方,如有需要更加專業(yè)的解答,可在官網(wǎng)聯(lián)系我們的24小時(shí)售前售后,隨時(shí)幫您解答問題的。