Centos7 LNMP一键安装包环境,部署ThinkPHP5接口站点

 

  找工做须要,急需把一个小项目部署起来展现使用。刚刚接触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啊。搞明白了再整理一篇文章出来。对于没有域名的学生党来讲这个过重要了。

  因为过了一段时间才整理的这篇文章,因此可能有遗漏的地方,欢迎留言,共同窗习。

相关文章
相关标签/搜索