PHP程序員玩轉(zhuǎn)Linux系列 lnmp環(huán)境搭建
PHP程序員玩轉(zhuǎn)Linux系列文章:
1.PHP程序員玩轉(zhuǎn)Linux系列-怎么安裝使用CentOS
在平常的工作中,我作為PHP程序員經(jīng)常要搭建一下環(huán)境,這個(gè)環(huán)境就是Linux系統(tǒng)下安裝nginx,php,mysql這三個(gè)軟件,對(duì)軟件進(jìn)行配置,然后在瀏覽器上能夠正常打開(kāi)運(yùn)行查看項(xiàng)目。CentOS中安裝軟件有好幾種方式,我經(jīng)常用的是包安裝方式,因?yàn)檫@種非常簡(jiǎn)單一句命令就能安裝成功,這也是與windows下安裝軟件最大的不同點(diǎn)。包安裝方式就一個(gè)關(guān)鍵單詞就是yum。
解決找不到nginx包的問(wèn)題
我先安裝一下web服務(wù)器nginx,按好這個(gè)軟件,他就可以監(jiān)聽(tīng)80端口,綁定域名,提供web服務(wù),就能在瀏覽器訪問(wèn)我們的項(xiàng)目。我使用命令 yum install nginx ,此時(shí)報(bào)錯(cuò)No package nginx available,這是沒(méi)有這個(gè)包啊,這個(gè)時(shí)候需要安裝一下企業(yè)Linux擴(kuò)展包epel,使用命令yum install epel-release,然后從新試一下安nginx,這個(gè)時(shí)候就可以安裝了,并且解決了依賴問(wèn)題。使用service nginx start開(kāi)啟nginx
yum install epel-release yum install nginx service nginx start
解決web服務(wù)無(wú)法ip訪問(wèn)的問(wèn)題
此時(shí)我打開(kāi)windows的瀏覽器,訪問(wèn)我上一篇設(shè)置的地址:http://192.168.2.100 ,無(wú)法訪問(wèn)到,遇到這種情況,我先使用ps命令查看一下nginx的進(jìn)程是否開(kāi)啟,然后使用netstat命令查看一下80端口是否監(jiān)聽(tīng)
ps aux|grep nginx netstat -altupn|grep 80
這兩個(gè)命令查看后發(fā)現(xiàn)都是正常的,那應(yīng)該是防火墻給阻攔了,我使用service iptables stop關(guān)閉掉了防火墻,這時(shí)候訪問(wèn)ip,nginx的測(cè)試頁(yè)面就出現(xiàn)了,說(shuō)明確實(shí)是防火墻問(wèn)題,我要開(kāi)放防火墻的80端口,iptables的開(kāi)放端口配置文件是/etc/sysconfig/iptables,我復(fù)制了它自帶的那條22端口的規(guī)則,改成80,保存后,service iptables start,這個(gè)時(shí)候訪問(wèn)也是正常的了。
綁定域名
我想通過(guò)域名來(lái)訪問(wèn)這個(gè)站點(diǎn),比如我訪問(wèn)http://www.qingguow.cn,可以查看到服務(wù)器上的站點(diǎn)目錄,這個(gè)時(shí)候就要配置nginx來(lái)綁定域名了。進(jìn)入目錄/etc/nginx/conf.d,復(fù)制自帶的配置文件virtual.conf,改成了www.qingguow.cn.conf,注意后綴一定要是.conf,編輯這個(gè)配置文件,重啟一下nginx。
server { listen 80; server_name www.qingguow.cn; location / { root /usr/local/web; index index.html index.htm; } }
我在/usr/local/web目錄下新建了個(gè)index.html的文件,里面隨便寫(xiě)了一句話,修改一下windows的host文件,把域名指向到我的虛擬機(jī)ip
192.168.2.100 www.qingguow.cn
此時(shí)我直接訪問(wèn)域名就能看到剛才的那個(gè)index.html的文件了,瀏覽器也會(huì)提示你這個(gè)域名被重定向了
此時(shí)我可以去看下nginx的訪問(wèn)和錯(cuò)誤日志,默認(rèn)是/var/log/nginx/access.log,使用tail -f這個(gè)命令,可以實(shí)時(shí)監(jiān)看這個(gè)日志文件
tail -f /var/log/nginx/access.log ,這個(gè)可以幫助我知道,此時(shí)nginx確實(shí)是運(yùn)行正常的。
安裝并配置PHP
我在剛才的目錄下新建了個(gè)index.php的文件,直接訪問(wèn)這個(gè)文件,瀏覽器會(huì)彈出下載框,文件被直接下載了,這個(gè)時(shí)候就要安裝PHP了
yum install php #查看一下版本 php -v
這個(gè)版本還是PHP 5.3已經(jīng)非常老了,稍后我會(huì)去寫(xiě)升級(jí)PHP。這個(gè)時(shí)候PHP已經(jīng)安裝成功了,但是還沒(méi)有和nginx進(jìn)行搭配起來(lái),還需要安裝php-fpm
yum install php-fpm #開(kāi)啟php-fpm service php-fpm start
此時(shí)php-fpm已經(jīng)開(kāi)啟了,并且默認(rèn)監(jiān)聽(tīng)9000端口,配置nginx來(lái)支持PHP,編輯www.qingguow.cn.conf,改成如下配置文件。配置文件中應(yīng)該注意這樣幾點(diǎn):
1. root指令提到location指令外面來(lái),解決file not found錯(cuò)誤
2.fastcgi_pass指令,nginx連接fastcgi
3.fastcgi_param SCRIPT_FILENAME指定這個(gè)參數(shù),也是解決file not found錯(cuò)誤
4. file not found錯(cuò)誤時(shí),nginx的error.log錯(cuò)誤日志是FastCGI sent in stderr: "Primary script unknown",搜索這個(gè)就能找到解決方法
5. 遇到錯(cuò)誤時(shí),一定要看錯(cuò)誤日志,然后再去對(duì)癥搜索。
server { listen 80; server_name www.qingguow.cn; root /usr/local/web; location / { index index.html index.htm index.php; } location ~ \.php { fastcgi_pass 127.0.0.1:9000;#指定FastCGI服務(wù)器監(jiān)聽(tīng)端口與地址 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#指定腳本的路徑 include fastcgi_params;#加載一些參數(shù),這個(gè)文件已經(jīng)存在了 } }
新建一個(gè)index.php的文件,使用phpinfo()函數(shù)打印看看php的參數(shù)情況,瀏覽器中訪問(wèn),是正常的。
安裝mysql數(shù)據(jù)庫(kù)
接下來(lái)我要再安裝上mysql數(shù)據(jù)庫(kù),這個(gè)我就能使用PHP去連接和使用mysql數(shù)據(jù)庫(kù)了。我要安裝mysql和mysql-server一個(gè)是客戶端,一個(gè)服務(wù)端,默認(rèn)安上的mysql數(shù)據(jù)庫(kù),用戶名是root,密碼是空,這可不怎么安全,當(dāng)然現(xiàn)在這個(gè)數(shù)據(jù)庫(kù)只能我們本地去連,無(wú)法遠(yuǎn)程連接,也沒(méi)啥問(wèn)題,稍后再去處理增加用戶和修密碼的問(wèn)題。
#安裝客戶端 yum install mysql #安裝服務(wù)端 yum install mysql-server #開(kāi)啟mysql服務(wù) service mysqld start #連接數(shù)據(jù)庫(kù) mysql -hlocalhost -uroot -p
這個(gè)時(shí)候,lnmp環(huán)境就搭完了。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Ubuntu使用國(guó)內(nèi)源出現(xiàn)Hash Sum mismatch錯(cuò)誤的解決
這篇文章主要介紹了Ubuntu使用國(guó)內(nèi)源出現(xiàn)Hash Sum mismatch錯(cuò)誤的解決,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04詳解Linux文本文件與WIN文本文件換行格式轉(zhuǎn)換命令
這篇文章主要介紹了詳解Linux文本文件與WIN文本文件換行格式轉(zhuǎn)換命令的相關(guān)資料,需要的朋友可以參考下2017-02-02linux系統(tǒng)刪除文件后,仍占用磁盤空間的問(wèn)題
這篇文章主要介紹了linux系統(tǒng)刪除文件后,仍占用磁盤空間的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09解析Linux內(nèi)核與設(shè)備樹(shù)的編譯和燒寫(xiě)
在內(nèi)核源碼中,存在大量對(duì)板級(jí)細(xì)節(jié)信息描述的代碼。開(kāi)源文檔中對(duì)設(shè)備樹(shù)的描述是,一種描述硬件資源的數(shù)據(jù)結(jié)構(gòu),它通過(guò)bootloader將硬件資源傳給內(nèi)核,使得內(nèi)核和硬件資源描述相對(duì)獨(dú)立2021-06-06