Centos7 LNMP一鍵安裝包環境,部署ThinkPHP5接口站點


 

  找工作需要,急需把一個小項目部署起來展示使用。剛剛接觸Linux,研究編譯安裝的話有點來不及。然后就接觸到了LNMP一鍵安裝包這個神器。

  官網:https://lnmp.org/  (里面的各種內容還是很齊全的哦)

 

  第一部分:LNMP一鍵包安裝

    參考官方教程:https://lnmp.org/install.html

    基本沒什么問題。

  第二部分:添加虛擬主機

    參考官方教程:https://lnmp.org/faq/lnmp-vhost-add-howto.html

  第二部分:配置

 

  #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啊。搞明白了再整理一篇文章出來。對於沒有域名的學生黨來說這個太重要了。

  由於過了一段時間才整理的這篇文章,所以可能有遺漏的地方,歡迎留言,共同學習。

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM