環(huán)境:Ubuntu16.04(阿里云)
Lnmp需要安裝的3個(gè)軟件:Nginx存崖、Mysql了罪、PHP(python或者perl)
源中已經(jīng)都有這些軟件,所以直接apt-get安裝即可拇勃。
1熏矿、安裝Nginx Web服務(wù)器
apt-get install nginx
此時(shí)你會看到一堆文字說已骇,某些依賴會被安裝,我們輸入y即可曲掰。
PS:我們安裝完Nginx即可在瀏覽器輸入你的IP疾捍,然后回車看看你的成果,哈哈哈
2栏妖、安裝Mysql 數(shù)據(jù)庫
apt-get install mysql-server
此時(shí)還是有一堆文字說明乱豆,某些依賴會被安裝,以來中看到了mysql-client-5.7吊趾,又可以偷懶了宛裕,我們輸入y安裝即可。
PS:安裝過程會彈窗提示輸入數(shù)據(jù)庫的root用戶的密碼论泛,輸入你的密碼即可(沒出現(xiàn)揩尸?那說明出了點(diǎn)問題)。
安裝完畢你可以使用一下命令登錄mysql屁奏,試試能不能用:
mysql -u root -p
接著輸入你的密碼岩榆。(可以使用命令show databases;查看現(xiàn)有數(shù)據(jù)庫)
輸入exit即可退出坟瓢。
3勇边、安裝PHP
apt-get install php
下面是出現(xiàn)的一堆文字之一:
The following NEW packages will be installed:
php php-common php7.0 php7.0-cli php7.0-common php7.0-fpm php7.0-json
php7.0-opcache php7.0-readline
耶php7.0,用16.04就是要用你啊折联,按y確認(rèn)安裝即可粒褒。
PS:沒看到php-mysql,不知道會怎樣呢诚镰,菜雞一枚不要見面怪啊
4奕坟、Nginx配置PHP
cd /etc/nginx/sites-available/
cp default default.bak
nano defualt
這里圖片引用的是ubuntu16.04安裝LNMP
上圖的特別說明:其root配置為/var/www/html(想使用默認(rèn)的nginx目錄請用root /usr/share/nginx/html)
不然你去nginx目錄各種404就尷尬了祥款。
這里說明一下:
Nginx與php5一般通過fastcgi集成,而fastcgi一般使用php-fpm
Php-fpm與nginx一般有兩種通信方式月杉,tcp與unix socket
TCP方式就是使用TCP端口連接刃跛,一般是127.0.0.1:9000
Socket是使用unix domain socket連接套接字/dev/shm/php-cgi.sock(很多教程使用路徑/tmp,而路徑/dev/shm是個(gè)tmpfs苛萎,速度比磁盤快得多)奠伪,在服務(wù)器壓力不大的情況下,tcp和socket差別不大首懈,但是在壓力比較滿的時(shí)候,使用套接字方式谨敛,效果比較好
php7也是同理的(文字引用的是linux:ubuntu下搭建LNMP環(huán)境)
PS:如果你看下/etc/nginx/sites-available/default這個(gè)配置文件你會發(fā)現(xiàn)里面的解釋已經(jīng)引導(dǎo)你去寫出上圖的配置了究履。
檢測nginx配置文件的正確性:
/usr/sbin/nginx -t
重啟nginx:
/etc/init.d/nginx restart
環(huán)境搭建完畢,哈哈哈
5脸狸、配置文件解釋(上面已經(jīng)可以了最仑,想了解的話繼續(xù)看)
# Add index.php to the list if you are using PHP ?添加index.php到你的默認(rèn)查找索引列表,如果你要用PHP的話
index index.html index.htm index.nginx-debian.html;
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 通過FastCGI服務(wù)去監(jiān)聽本地的9000端口去解析php腳本的話使用下面的配置
#像上圖的文字引用解釋炊甲,可以使用tcp和unix的socket
#location ~ \.php$ {
#? ? ? include snippets/fastcgi-php.conf;這行注釋去掉
#
#? ? ? # With php7.0-cgi alone: 單獨(dú)使用php7.0-cgi的將下面一行去掉的意思
#? ? ? fastcgi_pass 127.0.0.1:9000;//這行不要去掉泥彤,去掉了nginx的配置文件就出錯了,小白不懂原因卿啡,應(yīng)該是個(gè)沒這個(gè)依賴吧吟吝。
#? ? ? # With php7.0-fpm: 使用php7.0-fpm的將下面一行的注釋去掉的意思
#? ? ? fastcgi_pass unix:/run/php/php7.0-fpm.sock;這行注釋去掉
#}這個(gè)#也記得去掉耶