找工做須要,急需把一個小項目部署起來展現使用。剛剛接觸Linux,研究編譯安裝的話有點來不及。而後就接觸到了LNMP一鍵安裝包這個神器。php
官網:https://lnmp.org/ (裏面的各類內容仍是很齊全的哦)html
第一部分:LNMP一鍵包安裝前端
參考官方教程:https://lnmp.org/install.htmlnginx
基本沒什麼問題。thinkphp
第二部分:添加虛擬主機安全
參考官方教程:https://lnmp.org/faq/lnmp-vhost-add-howto.html框架
第二部分:配置codeigniter
#pathinfo及url重寫配置#學習
個人作法是,在/usr/local/nginx/conf/vhost下的對應虛擬主機配置文件中,將include enable-php.conf;替換爲include enable-php-pathinfo.conf;實現path。而後在下一行添加include thinkphp.conf;(較低版本可能沒有這個文件)實現url重寫隱藏index.php。網站
#跨目錄設置#(重要)
這是最容易錯的地方,通常爲了安全起見,咱們會禁止應用跨目錄訪問。
LNMP 1.2及更高版本防跨目錄功能使用.user.ini,該文件在網站根目錄下,能夠修改.user.ini 裏面的open_basedir的值來設置限制訪問的目錄或刪除來移除防跨目錄的設置。
.user.ini文件沒法直接修改,如要修或刪除須要先執行:chattr -i /網站目錄/.user.ini。
修改完成後再執行:chattr +i /網站目錄/.user.ini
刪除的話rm -f /網站目錄/.user.ini 就能夠。
若是要更改網站目錄必需要按上述方法修改防跨目錄的設置,不然確定報錯!!
LNMP 1.4上若是不想用防跨目錄或者修改.user.ini的防跨目錄的目錄還須要將 /usr/local/nginx/conf/fastcgi.conf 裏面的fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/"; 在該行行前添加 # 或刪除改行,須要重啓nginx。
LNMP 1.4上也能夠直接使用lnmp1.4/tools/ 目錄下的 ./remove_open_basedir_restriction.sh 進行移除。
在Thinkphp、codeigniter、Laravel等框架下,網站目錄通常是在public下,可是public下的程序要跨目錄調用public上級目錄下的文件,由於LNMP默認是不容許跨目錄訪問的,因此都是必需要將防跨目錄訪問的設置去掉,有時候這些框架類的程序提示500錯誤也多是這個問題引發的。
個人解決方法是,例如你的虛擬主機配置中網站根目錄設置在項目目錄(通常爲域名www.xxxx.com)下的public文件夾,則目錄下的.user.ini設置爲
open_basedir=/home/wwwroot/www.xxxx.com/:/tmp/:/proc/ 去掉public。
因爲域名的緣由(沒錢),想把項目直接放在/home/wwwroot/default目錄下直接經過IP訪問。如今前端站點放裏面訪問沒問題。PHP接口站點還在報錯中,沒有搞清楚裏面的配置原理。有時間仍是要好好學一下nginx啊。搞明白了再整理一篇文章出來。對於沒有域名的學生黨來講這個過重要了。
因爲過了一段時間才整理的這篇文章,因此可能有遺漏的地方,歡迎留言,共同窗習。