作為本入門系列最后一篇文章,將演示如何在CentOS7環(huán)境下搭建LNMP環(huán)境來構(gòu)建個(gè)人博客網(wǎng)站。
常見搭建網(wǎng)站的方式有LAMP、LNMP、IIS、Nginx、Tomcat等等,本文演示比較流行的基于LNMP方式來搭建動(dòng)態(tài)WEB網(wǎng)站。
正如前文“l(fā)inux入門系列6--軟件包管理之rpm和yum倉庫”所述,在Linux上安裝軟件通常有幾種方式:通過編譯源碼安裝、通過RPM安裝、通過YUM倉庫安裝。截至目前,前面的文章都是通過yum或rpm方式進(jìn)行安裝,本文演示通過源碼包方式進(jìn)行安裝。
一、LNMP環(huán)境概述
先來看兩個(gè)比較常見的概念:LAMP、LNMP。
1.1 LAMP
LAMP指的是在Linux操作系統(tǒng)中分別安裝 Apache網(wǎng)頁服務(wù)器、MySQL數(shù)據(jù)庫服務(wù)器和PHP開發(fā)服務(wù)器,以及一些對(duì)應(yīng)的擴(kuò)展軟件。
LAMP簡單說就是:Linux+Apache+MySQL+PHP。
LAMP是當(dāng)前極為流行的搭建動(dòng)態(tài)網(wǎng)站的開源軟件系統(tǒng),擁有良好的穩(wěn)定性及兼容性。很多企業(yè)和個(gè)人都選擇在LAMP開發(fā)平臺(tái)上搭建自己的網(wǎng)站。
1.2 LNMP
LNMP指的是在Linux 操作系統(tǒng)中分別安裝Nginx網(wǎng)頁服務(wù)器、MySQL數(shù)據(jù)庫服務(wù)器和PHP開發(fā)服務(wù)器,以及一些對(duì)應(yīng)的擴(kuò)展軟件。
LNMP簡單說就是:Linux+Nginx+MySQL+PHP。
相較于LAMP,LNMP使用Nginx 網(wǎng)頁服務(wù)器取代了Apache網(wǎng)頁服務(wù)器。Nginx是一款高性能的HTTP網(wǎng)頁服務(wù)器和反向代理服務(wù)器,它的執(zhí)行效率極高,配置相比Apache也較為簡單,所以在短時(shí)間內(nèi)被國內(nèi)外很多大型公司所采用,大有取代 Apache 的勢(shì)頭(目前Apache和Ngnix使用量基本持平),這也是本文采用LNMP的原因。
二、Linux軟件安裝方式
正如前文所述,Linux中安裝軟件的方式主要有:通過編譯源碼安裝、通過RPM安裝、通過YUM倉庫安裝、第三方或自制一鍵式安裝包。
下面分別介紹幾種安裝方式的區(qū)別。
2.1 RPM方式安裝
RPM即紅帽軟件包管理器,他是為了解決安裝服務(wù)程序時(shí)的一些依賴問題而設(shè)計(jì),類似Windows系統(tǒng)中的控制面板,會(huì)建立統(tǒng)一的數(shù)據(jù)庫文件,詳細(xì)記錄軟件信息并能夠自動(dòng)分析依賴關(guān)系,當(dāng)確實(shí)依賴是給出提示信息,從而降低安裝的難度,安裝人員只需要安裝提示安裝指定的依賴即可。
RPM最開始專為為RedHat設(shè)計(jì),它的優(yōu)勢(shì)已經(jīng)被公眾所認(rèn)可,使用范圍也已不局限在紅帽系統(tǒng)中了。目前基本上大部分的軟件在發(fā)行時(shí)都提供了RPM安裝包可以直接使用。
2.2 YUM倉庫方式安裝
盡管RPM自動(dòng)解決了軟件服務(wù)之間的一些依賴關(guān)系,但仍然需要安裝人員自行安裝相應(yīng)的依賴服務(wù)。隨著軟件技術(shù)的發(fā)展,一些大型軟件可能依賴非常多的一些其他服務(wù),而如果要手動(dòng)解決這些問題,依然效率非常低。
因此為了解決這個(gè)問題,進(jìn)一步降低軟件安裝的難度,YUM軟件倉庫就誕生了。Yum軟件倉庫可以根據(jù)用戶的要求自動(dòng)分析出所需軟件包及其相關(guān)的依賴關(guān)系,然后自動(dòng)從服務(wù)器下載軟件包并安裝到系統(tǒng)。
Yum軟件倉庫中的RPM軟件包可以是由紅帽官方發(fā)布的,也可以是第三方發(fā)布的,當(dāng) 然也可以是自己編寫的。這種方式非常方便,推薦使用。
2.3 源碼方式安裝
在RPM公布之前,要想在 Linux 系統(tǒng)中安裝軟件只能采取源碼包的方式安裝。需要安裝人員自行編譯代碼并解決許多的軟件依賴關(guān)系,在安裝、升級(jí)、卸載服務(wù)程序時(shí)還要考慮到其他程序、庫的依賴關(guān)系,所以在進(jìn)行校驗(yàn)、安裝、 卸載、查詢、升級(jí)等管理軟件操作時(shí)難度都比較大。
一般當(dāng)軟件服務(wù)程序只提供了源代碼的方式時(shí),才采用此方式進(jìn)行安裝。
2.4 第三方一鍵式安裝包
這種方式最為簡單,一些第三方公司為了更進(jìn)一步簡化安裝過程,已經(jīng)寫好了寫成的安裝腳本,只需要安裝腳本即可完成復(fù)雜環(huán)境的部署。
LNMP一鍵集成環(huán)境安裝包非常多,熟知的有l(wèi)nmp一鍵安裝包,不過我沒有用過,大家可以自行去官網(wǎng)了解。
官網(wǎng)為:https:///
2.5 如何選擇
我們?cè)趯?shí)際生產(chǎn)環(huán)境中安裝軟件應(yīng)該考慮的順序一般是:YUM--RPM--源碼--其他方式。通常先考慮使用YUM倉庫方式安裝,如果YUM倉庫中沒有我們?cè)诳紤]RPM安裝包的形式進(jìn)行安裝,如果RPM也沒有,我們?cè)诳紤]通過編譯源碼的形式進(jìn)行安裝。
本文演示通過源碼的方式來進(jìn)行安裝LNMP環(huán)境。
三、編譯源碼方式安裝LNMP
3.1 環(huán)境準(zhǔn)備
先克隆準(zhǔn)備一臺(tái)虛擬機(jī),并做一個(gè)快照,防止安裝過程中萬一有問題可以快速恢復(fù)到初始狀態(tài),節(jié)約時(shí)間。
3.1.1 防火墻及SELinux設(shè)置
為了簡化安裝難度,先關(guān)閉防火墻和SELinux。
生產(chǎn)環(huán)境中有的企業(yè)是通過硬件防火墻來防護(hù),有的則是通過軟件防火墻來防護(hù),根據(jù)實(shí)際需要進(jìn)行設(shè)置即可。
[root@lnmp ~]# firewall-cmd --state
running
[root@lnmp ~]# systemctl stop firewalld.service
[root@lnmp ~]# systemctl disable firewalld
[root@lnmp ~]# firewall-cmd --state
not running
[root@lnmp ~]# getenforce
Enforcing
[root@lnmp ~]# setenforce 0
[root@lnmp ~]# vim /etc/selinux/config
...省略部分內(nèi)容
SELINUX=disabled
...省略部分內(nèi)容
[root@lnmp ~]# getenforce
Disabled
修改/etc/selinux/config文件,禁用selinux保存退出。
每步的含義就不再多說了,忘記的返回去看前面的文章即可。
3.1.2 設(shè)置網(wǎng)絡(luò)YUM
由于CentOS自帶的yum下載會(huì)表較慢,因此把yum換為阿里的。
阿里centos7的yum為:http://mirrors.aliyun.com/repo/Centos-7.repo
還需要安裝擴(kuò)展yum:http://mirrors.aliyun.com/repo/epel-7.repo
[root@lnmp ~]# cd /etc/yum.repos.d/
[root@lnmp yum.repos.d]# rm -rf *
[root@lnmp yum.repos.d]# wget http://mirrors.aliyun.com/repo/Centos-7.repo
...省略顯示內(nèi)容
[root@lnmp yum.repos.d]# wget http://mirrors.aliyun.com/repo/epel-7.repo
...省略顯示內(nèi)容
[root@lnmp yum.repos.d]# ls
Centos-7.repo epel-7.repo
[root@lnmp yum.repos.d]# yum clean all
...省略顯示內(nèi)容
[root@lnmp yum.repos.d]# yum makecache
...省略顯示內(nèi)容
3.1.3 安裝編譯工具和依賴軟件包
要編譯源碼,需要安裝cmake、gcc等如下一些工具和依賴包:gcc gcc-c++ pcre-devel openssl openssl-devel zlib-devel ncurses-devel cmake bison libxml2-devel
[root@lnmp yum.repos.d]# yum -y install gcc gcc-c++ pcre-devel openssl openssl-devel zlib-devel ncurses-devel cmake bison libxml2-devel libpng-devel
...省略顯示內(nèi)容
3.1.4 下載各個(gè)組件的源碼包
本例采用的源碼版本分別為:
組件 |
版本及包名 |
nginx |
nginx-1.12.2.tar.gz |
mysql |
mysql-5.5.62.tar.gz |
php |
php-7.1.29.tar.gz |
由于考慮到下載包有時(shí)候會(huì)比較慢,我上傳到了網(wǎng)盤,公眾號(hào)回復(fù):lnmp即可下載相關(guān)包。
如果需要不同版本的源碼包的,去對(duì)應(yīng)官網(wǎng)下載即可
mysql官網(wǎng):https://www./
nginx官網(wǎng):http:///
php官網(wǎng):https://www./
在官網(wǎng)找到對(duì)應(yīng)的版本包地址后,可以直接在虛擬機(jī)內(nèi)通過wget命令下載,也可以直接用我準(zhǔn)備好的包上傳到虛擬機(jī)內(nèi)。
本演示直接將以上幾個(gè)包上傳到虛擬機(jī)內(nèi),先在root家目錄創(chuàng)建lnmp目錄,然后將源碼上上傳到此目錄下
[root@lnmp ~]# pwd
/root
[root@lnmp ~]# mkdir lnmp
[root@lnmp ~]# cd lnmp
[root@lnmp lnmp]# pwd
/root/lnmp
[root@lnmp lnmp]# ls
mysql-5.5.62.tar.gz nginx-1.12.2.tar.gz php-7.1.29.tar.gz
這樣就準(zhǔn)備好了源碼包,接下來一個(gè)個(gè)進(jìn)行安裝。
3.2 Nginx安裝
以前采用rpm或yum安裝程序的時(shí)候,會(huì)幫我們做很多自動(dòng)化的操作,由于現(xiàn)在是自己通過編譯源碼安裝,因此急需要自己做編譯、創(chuàng)建用戶等工作。
3.2.1 創(chuàng)建nginx用戶
[root@lnmp lnmp]# useradd -r -s /sbin/nologin nginx
3.2.2 解壓源碼包
[root@lnmp lnmp]# pwd
/root/lnmp
[root@lnmp lnmp]# tar -zxvf nginx-1.12.2.tar.gz
...省略顯示內(nèi)容
3.2.3 編譯源碼
[root@lnmp lnmp]# cd nginx-1.12.2/
[root@lnmp nginx-1.12.2]# pwd
/root/lnmp/nginx-1.12.2
[root@lnmp nginx-1.12.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
...省略顯示內(nèi)容
[root@lnmp nginx-1.12.2]# echo $?
0
[root@lnmp nginx-1.12.2]#
$? 如果為0說明沒有問題,如果為1就要根據(jù)錯(cuò)誤,解決相關(guān)依賴問題
3.2.4 生成安裝文件
[root@lnmp nginx-1.12.2]# make
...省略顯示內(nèi)容
3.2.5 執(zhí)行安裝
[root@lnmp nginx-1.12.2]# make install
...省略顯示內(nèi)容
3.2.6 編寫啟動(dòng)shell腳本
nginx官方?jīng)]有提供啟動(dòng)腳本,因此如果要想讓nginx隨開機(jī)啟動(dòng),需要自己編寫shell腳本。
在/etc/init.d/目錄下創(chuàng)建nginx自定義shell腳本文件并輸入一下內(nèi)容
[root@lnmp nginx-1.12.2]# vim /etc/init.d/nginx
#!/bin/bash
#author:heimatengyun
#chkconfig:2345 99 33
#description:nginx server tools
ngxc="/usr/local/nginx/sbin/nginx"
pidf="/usr/local/nginx/logs/nginx.pid"
ngxc_fpm="/usr/local/php/sbin/php-fpm"
pidf_fpm="/usr/local/php/var/run/php-fpm.pid"
case "$1" in
start)
$ngxc -t &> /dev/null
if [ $? -eq 0 ];then
$ngxc
$ngxc_fpm
echo "nginx service start sucess!"
else
$ngxc -t
fi
;;
stop)
kill -s QUIT $(cat $pidf)
kill -s QUIT $(cat $pidf_fpm)
echo "nginx service stop sucess!"
;;
restart)
$0 stop
$0 start
;;
reload)
$ngxc -t &> /dev/null
if [ $? -eq 0 ];then
kill -s HUP $(cat $pidf)
kill -s HUP $(cat $pidf_fpm)
echo "reload nginx config success!"
else
$ngxc -t
fi
;;
*)
echo "please input stop|start|restart|reload."
exit 1
esac
保存并退出。
該文件也隨安裝包一起提供,公號(hào)回復(fù)lnmp即可。如果shell腳本相關(guān)語法忘記了,可以返回去查看文章:“l(fā)inux入門系列8--shell編程”
剛創(chuàng)建的腳本沒有執(zhí)行權(quán)限,為其添加執(zhí)行權(quán)限
[root@lnmp nginx-1.12.2]# ll /etc/init.d/nginx
-rw-r--r-- 1 root root 1082 Feb 16 13:55 /etc/init.d/nginx
[root@lnmp nginx-1.12.2]# chmod +x /etc/init.d/nginx
[root@lnmp nginx-1.12.2]# ll /etc/init.d/nginx
-rwxr-xr-x 1 root root 1082 Feb 16 13:55 /etc/init.d/nginx
[root@lnmp nginx-1.12.2]#
將該腳本加入開機(jī)啟動(dòng)項(xiàng)
[root@lnmp nginx-1.12.2]# chkconfig --add nginx
3.2.7 測(cè)試nginx
[root@lnmp nginx-1.12.2]# systemctl start nginx
[root@lnmp nginx-1.12.2]# netstat -antp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 19501/nginx: master
...省略部分內(nèi)容
看到有80端口啟動(dòng)了,這些妥了
在瀏覽器進(jìn)行訪問,可以看到歡迎界面,說明nginx安裝成功。
3.3 MySQL安裝
接下來開始安裝mysql
3.3.1 創(chuàng)建mysql用戶
[root@lnmp lnmp]# useradd -r -s /sbin/nologin mysql
3.3.2 解壓源碼包
[root@lnmp lnmp]# cd /root/lnmp/
[root@lnmp lnmp]# ls
mysql-5.5.62.tar.gz nginx-1.12.2 php-7.1.29.tar.gz
nginx nginx-1.12.2.tar.gz
[root@lnmp lnmp]# tar -zxvf mysql-5.5.62.tar.gz
...省略顯示內(nèi)容
[root@lnmp lnmp]# cd mysql-5.5.62/
3.3.3 編譯源碼
[root@lnmp mysql-5.5.62]# pwd
/root/lnmp/mysql-5.5.62
[root@lnmp mysql-5.5.62]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306
...省略顯示內(nèi)容
3.3.4 生成安裝文件
[root@lnmp mysql-5.5.62]# make
...省略顯示內(nèi)容
生成過程大概10分鐘
3.3.5 執(zhí)行安裝
[root@lnmp mysql-5.5.62]# make install
...省略顯示內(nèi)容
安裝完成后為了方便執(zhí)行命令,添加軟連接
[root@lnmp mysql-5.5.62]# ln -s /usr/local/mysql/bin/* /usr/local/bin
3.3.6 初始配置
(1)修改數(shù)據(jù)目錄權(quán)限
切換到mysql安裝目錄,修改目錄權(quán)限,把data目錄屬主權(quán)限改為mysql
[root@lnmp mysql-5.5.62]# cd /usr/local/mysql/
[root@lnmp mysql]# ll
total 56
drwxr-xr-x 2 root root 4096 Feb 16 14:23 bin
-rw-r--r-- 1 root root 17987 Aug 29 2018 COPYING
drwxr-xr-x 3 root root 17 Feb 16 14:23 data
drwxr-xr-x 2 root root 52 Feb 16 14:23 docs
drwxr-xr-x 3 root root 4096 Feb 16 14:23 include
-rw-r--r-- 1 root root 301 Aug 29 2018 INSTALL-BINARY
drwxr-xr-x 3 root root 4096 Feb 16 14:23 lib
drwxr-xr-x 4 root root 28 Feb 16 14:23 man
drwxr-xr-x 10 root root 4096 Feb 16 14:23 mysql-test
-rw-r--r-- 1 root root 2496 Aug 29 2018 README
drwxr-xr-x 2 root root 29 Feb 16 14:23 scripts
drwxr-xr-x 27 root root 4096 Feb 16 14:23 share
drwxr-xr-x 4 root root 4096 Feb 16 14:23 sql-bench
drwxr-xr-x 2 root root 4096 Feb 16 14:23 support-files
[root@lnmp mysql]# chown -R root .
[root@lnmp mysql]# chown -R mysql data
[root@lnmp mysql]# ll
total 56
drwxr-xr-x 2 root root 4096 Feb 16 14:23 bin
-rw-r--r-- 1 root root 17987 Aug 29 2018 COPYING
drwxr-xr-x 3 mysql root 17 Feb 16 14:23 data
drwxr-xr-x 2 root root 52 Feb 16 14:23 docs
drwxr-xr-x 3 root root 4096 Feb 16 14:23 include
-rw-r--r-- 1 root root 301 Aug 29 2018 INSTALL-BINARY
drwxr-xr-x 3 root root 4096 Feb 16 14:23 lib
drwxr-xr-x 4 root root 28 Feb 16 14:23 man
drwxr-xr-x 10 root root 4096 Feb 16 14:23 mysql-test
-rw-r--r-- 1 root root 2496 Aug 29 2018 README
drwxr-xr-x 2 root root 29 Feb 16 14:23 scripts
drwxr-xr-x 27 root root 4096 Feb 16 14:23 share
drwxr-xr-x 4 root root 4096 Feb 16 14:23 sql-bench
drwxr-xr-x 2 root root 4096 Feb 16 14:23 support-files
[root@lnmp mysql]#
(2)生成mysql配置文件
原來/etc/my.cnf文件默認(rèn)存在,直接將安裝后my-medium.cnf 文件拷貝并覆蓋即可
[root@lnmp mysql]# cp -a /root/lnmp/mysql-5.5.62/support-files/my-medium.cnf /etc/my.cnf
cp: overwrite '/etc/my.cnf’? y
[root@lnmp mysql]#
(3)mysql初始化
利用官方自帶的mysql_install_db腳本初始化,生成授權(quán)表
[root@lnmp mysql]# cd /usr/local/mysql
[root@lnmp mysql]# ./scripts/mysql_install_db --user=mysql
...省略顯示內(nèi)容
3.3.7 msyql設(shè)置開機(jī)啟動(dòng)
不像nginx要自己編寫開機(jī)啟動(dòng)shell腳本,msyql官方已經(jīng)提供好了,文件mysql-5.5.62/support-files/mysql.server即為啟動(dòng)腳本,該腳本默認(rèn)沒有執(zhí)行權(quán)限,需要手動(dòng)添加。
[root@lnmp mysql]# ll /etc/init.d/mysqld #該文件事先是不存在的
ls: cannot access /etc/init.d/mysqld: No such file or directory
[root@lnmp mysql]# cd /root/lnmp/mysql-5.5.62/support-files/
[root@lnmp support-files]# cp -a mysql.server /etc/init.d/mysqld
[root@lnmp support-files]# ll /etc/init.d/mysqld
-rw-r--r-- 1 root root 10565 Feb 16 14:17 /etc/init.d/mysqld
[root@lnmp support-files]# chmod +x /etc/init.d/mysqld
[root@lnmp support-files]# chkconfig --add mysqld #加入開機(jī)啟動(dòng)項(xiàng)
[root@lnmp support-files]# chkconfig mysqld on #允許服務(wù)自啟動(dòng)
3.3.8 啟動(dòng)并測(cè)試mysql
[root@lnmp support-files]# systemctl start mysqld
[root@lnmp support-files]# netstat -antp
...省略輸出內(nèi)容
如果看到有3306端口,表示mysql啟動(dòng)成功。啟動(dòng)成功后,此時(shí)root沒有密碼,直接可以登錄。
[root@lnmp support-files]# mysql -uroot -p
Enter password: #初始沒有密碼,回車即可
...省略部分內(nèi)容
mysql> exit
Bye
[root@lnmp support-files]#
為root管理員設(shè)置登錄密碼
[root@lnmp support-files]# mysqladmin -uroot password 123456
[root@lnmp support-files]# mysql -uroot -p123456
...省略部分內(nèi)容
mysql> exit
Bye
[root@lnmp support-files]#
通過mysqladmin命令修改密碼后再次登錄就需要密碼了。
至此,msyql安裝成功。
3.4 PHP7安裝
3.4.1 解壓縮并安裝
[root@lnmp support-files]# cd /root/lnmp/
[root@lnmp lnmp]# tar -zxvf php-7.1.29.tar.gz
...省略部分內(nèi)容
[root@lnmp lnmp]# cd php-7.1.29/
3.4.2 編譯源碼
[root@lnmp lnmp]# cd php-7.1.29/
[root@lnmp php-7.1.29]# ./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets --with-pdo-mysql=/usr/local/mysql --with-gd --without-pear --enable-fpm
...省略部分內(nèi)容
3.4.3 生成文件
[root@lnmp php-7.1.29]# make
...省略輸出內(nèi)容
生成過程大概10分鐘左右
3.4.5 執(zhí)行安裝
[root@lnmp php-7.1.29]# make install
...省略輸出內(nèi)容
3.4.6 生成配置文件
將源碼包的php.ini-production文件拷貝到/usr/local/php/etc/并改名為php.ini
[root@lnmp php-7.1.29]# ll /usr/local/php/etc/php.ini
ls: cannot access /usr/local/php/etc/php.ini: No such file or directory
[root@lnmp php-7.1.29]# cp -a /root/lnmp/php-7.1.29/php.ini-production /usr/local/php/etc/php.ini
[root@lnmp php-7.1.29]#
創(chuàng)建軟連接,方便使用php命令
[root@lnmp php-7.1.29]# ln -s /usr/local/php/bin/* /usr/local/bin/
[root@lnmp php-7.1.29]# ln -s /usr/local/php/sbin/* /usr/local/sbin/
php安裝完成后,還需要通過配置使得Nginx能夠連接到PHP,從而能夠解析php文件。
3.5 配置Nginx連接PHP
3.5.1 配置php
針對(duì)php7,主要涉及2個(gè)文件需要修改:/usr/local/php/etc/php-fpm.conf和/usr/local/php/etc/php-fpm.d/www.conf。注意初始時(shí)這2個(gè)文件不存在,都需要通過官方提供的模板文件來進(jìn)行修改。
php-fpm.conf文件,在17行,將;pid = run/php-fpm.pid前面的的注釋取消
[root@lnmp php-7.1.29]# cd /usr/local/php/etc/
[root@lnmp etc]# cp -a php-fpm.conf.default php-fpm.conf
[root@lnmp etc]# vim php-fpm.conf
...省略部分內(nèi)容
pid = run/php-fpm.pid
...省略部分內(nèi)容
保存并退出。
www.conf文件,默認(rèn)不存在,需要將/usr/local/php/etc/php-fpm.d/www.conf.default改為名www.conf,然后進(jìn)行修改。在23-24行,將用戶名由默認(rèn)的nobody改為nginx
[root@lnmp etc]# cd /usr/local/php/etc/php-fpm.d/
[root@lnmp php-fpm.d]# cp -a www.conf.default www.conf
[root@lnmp php-fpm.d]# vim www.conf
...省略部分內(nèi)容
user = nginx
group = nginx
...省略部分內(nèi)容
3.5.2 配置nginx
為了讓能nginx能處理php文件,還需要對(duì)之前裝好的nginx進(jìn)行配置。對(duì)/usr/local/nginx/conf/nginx.conf進(jìn)行配置,主要修改兩個(gè)地方,一是取消第2行注釋,并把user 改為nginx;二是65-71行取消注釋,并將70行include 后的fastcgi_params
改為fastcgi.conf。
[root@lnmp php-fpm.d]# vim /usr/local/nginx/conf/nginx.conf
...省略部分內(nèi)容
user nginx;
...省略部分內(nèi)容
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi.conf;
}
...省略部分內(nèi)容
通過以上配置nginx就能識(shí)別.php后綴文件
還需要設(shè)置默認(rèn)加載的頁面及優(yōu)先級(jí),使其自動(dòng)加載php文件
[root@lnmp html]# vim /usr/local/nginx/conf/nginx.conf
...省略部分內(nèi)容
location / {
root html;
index index.php index.html;
}
...省略部分內(nèi)容
修改完成之后,重啟配置,重啟nginx服務(wù)
[root@lnmp php-fpm.d]# systemctl daemon-reload
[root@lnmp php-fpm.d]# systemctl restart nginx
至此lnmp環(huán)境各個(gè)組件都搭建完了,下面進(jìn)行測(cè)試是否已經(jīng)安裝完成
3.6 安裝測(cè)試
在網(wǎng)站目錄 /usr/local/nginx/html/下創(chuàng)建一個(gè)php文件進(jìn)行測(cè)試
[root@lnmp php-fpm.d]# cd /usr/local/nginx/html/
[root@lnmp html]# ls
50x.html index.html
[root@lnmp html]# vim index.php
<?php
phpinof();
保存并退出,在瀏覽器中進(jìn)行測(cè)試訪問此文件,如果能出現(xiàn)如下界面就說明環(huán)境全部配好了
至此,LNMP環(huán)境搭建就緒。
四、個(gè)人博客網(wǎng)站搭建
現(xiàn)在開源的CMS、博客、個(gè)人網(wǎng)站非常多,甚至都無須編寫一行代碼即可輕松擁有一個(gè)專屬的個(gè)人網(wǎng)站。其中Discuz! X是國內(nèi)非常成熟的老牌社區(qū)論壇系統(tǒng),它基于PHP+MySQL開發(fā),經(jīng)過十多年的研發(fā)后已經(jīng)成為了全球成熟度最高、覆蓋率最廣的論壇網(wǎng)站系統(tǒng)之一。
本例基于Discuz_X3.4進(jìn)行演示,同時(shí)也檢測(cè)前面搭建的LNMP環(huán)境是否正常。我已將Discuz_X3.4壓縮包和LNMP環(huán)境源碼包放一起了,需要的在公號(hào)恢復(fù)lnm即可獲取本文所有的包和腳本。你也可以根據(jù)需要自行在官網(wǎng)下載對(duì)應(yīng)的版本。
官方下載地址
https:///3dming/DiscuzL/attach_files
4.1 上傳并解壓
繼續(xù)之前的實(shí)驗(yàn),將dz源碼上傳至/root/lnmp/dz文件夾下,解壓后將upload目錄下的內(nèi)容拷貝到nginx的網(wǎng)站數(shù)據(jù)目錄/usr/local/nginx/html下
[root@lnmp lnmp]# pwd
/root/lnmp
[root@lnmp lnmp]# mkdir dz
[root@lnmp lnmp]# cd dz/
[root@lnmp dz]# ls
Discuz_X3.4_SC_UTF8.zip
[root@lnmp lnmp]# unzip Discuz_X3.4_SC_UTF8.zip
...省略顯示內(nèi)容
[root@lnmp dz]# ls
Discuz_X3.4_SC_UTF8.zip qqqun.png readme readme.html upload utility
[root@lnmp dz]# ll /usr/local/nginx/html/
total 12
-rw-r--r-- 1 root root 537 Feb 16 13:51 50x.html
-rw-r--r-- 1 root root 612 Feb 16 13:51 index.html
-rw-r--r-- 1 root root 19 Feb 16 15:39 index.php
[root@lnmp dz]# rm -rf /usr/local/nginx/html/*
[root@lnmp dz]# ll /usr/local/nginx/html/
total 0
[root@lnmp dz]# cp -r upload/* /usr/local/nginx/html/
[root@lnmp html]# chown -Rf nginx:nginx /usr/local/nginx/html
[root@lnmp html]# chmod -Rf 755 /usr/local/nginx/html/
拷貝網(wǎng)站內(nèi)容后將其目錄權(quán)限用戶修改為之前創(chuàng)建的nginx用戶,讀寫權(quán)限為755。
權(quán)限設(shè)置務(wù)必正確,否則4.3檢測(cè)不會(huì)通過。
4.2 接受許可開始安裝
瀏覽器輸入ip地址,自動(dòng)進(jìn)入安裝界面,同意協(xié)議進(jìn)入下一步
4.3 檢查安裝環(huán)境及目錄權(quán)限
目錄權(quán)限檢測(cè)通過后,點(diǎn)擊下一步
4.4 選擇安裝模式
保持默認(rèn)選擇,點(diǎn)擊下一步。UCenter Server是站點(diǎn)的管理平臺(tái),能夠在多個(gè)站點(diǎn)之間同步會(huì)員賬戶及密碼信息。
4.5 配置數(shù)據(jù)庫信息
配置之前創(chuàng)建的mysql數(shù)據(jù)庫連接信息,數(shù)據(jù)庫會(huì)自動(dòng)創(chuàng)建。填寫完成后點(diǎn)擊下一步
4.6 安裝完成并訪問
以上步驟填寫無誤,會(huì)自動(dòng)創(chuàng)建數(shù)據(jù)、初始化網(wǎng)站。完成后自動(dòng)進(jìn)入網(wǎng)站首頁
首頁
通過4.5中設(shè)置的網(wǎng)站賬戶和密碼即可登錄。
這樣就很簡單的搭建了一個(gè)個(gè)人論壇。其他個(gè)人博客搭建也是一樣的方法。so easy!
結(jié)語
到此,本套Linux入門系列文章就結(jié)束了,相信大家通過本入門系列的學(xué)習(xí)已經(jīng)初步入門了Linux系統(tǒng)的基本管理以及常用服務(wù)的配置和使用。
作為最基礎(chǔ)的入門知識(shí),是一定要掌握的,只要多敲幾遍,多照著步驟做幾遍,自然而然就熟悉了。掌握這些基本知識(shí)后,在企業(yè)中已可以勝任常規(guī)的管理工作。
Linux用途非常廣泛,針對(duì)不同的角色和崗位要求掌握的技能也有所不同。如果你是大數(shù)據(jù)開發(fā)者,有了這些知識(shí)儲(chǔ)備就繼續(xù)后邊大數(shù)據(jù)之旅了;如果你是運(yùn)維人員,這些知識(shí)還遠(yuǎn)遠(yuǎn)不夠,后續(xù)如果有時(shí)間我會(huì)推出完整的Linux運(yùn)維和進(jìn)階系列。歡迎大家關(guān)注公號(hào)自學(xué)幫了解實(shí)時(shí)動(dòng)態(tài)。
|