VPS侦探论坛

 找回密码
 注册
查看: 200|回复: 2

PHPER 们 来讨论下一些框架的public入口

[复制链接]
发表于 2021-3-2 09:37:25 | 显示全部楼层 |阅读模式




本人是菜鸟级别的,

1,安装LNMP
2,添加vhost 如: www.demo.com
3,选型框架(THINKPHP)

此时默认的防跨目录 是 /home/wwwroot/www.demo.com

跨目录方案:
1,默认不改变,改写入口文件 index.php :也就是将public里的index.php移到上一层(网站根目录),然后调整下框架引用路径.

2,按照这里的设置 https://lnmp.org/faq/lnmp-vhost-add-howto.html#user.ini
LNMP 1.4或更高版本也可以直接使用lnmp安装包 tools/ 目录下的 ./remove_open_basedir_restriction.sh 进行移除,需要输入原网站目录完整路径(注意不是新的网站路径),回车即可。
在Thinkphp、codeigniter、Laravel等框架下,网站目录一般是在public下,但是public下的程序要跨目录调用public上级目录下的文件,因为LNMP默认是不允许跨目录访问的,所以都是必须要将防跨目录访问的设置去掉,有时候这些框架类的程序提示500错误也可能是这个问题引起的。

3, 自定义一个文件夹,将程序主体都移动到里面
比如新建 skdfweb
将 (除了 index.php,uploads) 等不想直接访问到的,都移动到 skdfweb 里,

方案2 和 3 是不是相同的效果(安全上考虑)
哪种回比较好呢,






补充内容 (2021-3-2 09:56):
经测试 还是 方案2 安全点
美国VPS推荐: 遨游主机LinodeLOCVPSKVMLAVPS2EZ搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
 楼主| 发表于 2021-3-2 09:41:14 | 显示全部楼层


网上找来的 为什么要把入口放public

  1. 这个跟服务器环境又关系。无论你用apache还是ngnix的时候,设置root虚拟根目录的时候,如果index.php是public文件夹下面,那么服务器软件只会让外部只能访问到public下面的所有东西,而public外层的所有东西都是不可以在外部访问(这个是linux对apache或者nginx的权限限制问题)。另外有些人喜欢把upload放到public文件下面,其实这个安全性也是不够的,正确的应该是放到项目根目录,然后在public下面创建文件夹的软连接,还有设置upload文件夹不可以执行任何动态语言。
复制代码
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
 楼主| 发表于 2021-3-2 09:55:33 | 显示全部楼层



方案3,  需要编写程序的时候 不能暴露
美国VPS推荐: 遨游主机LinodeLOCVPSKVMLAVPS2EZ搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|VPS侦探 ( 鲁ICP备16040043号-1 )

GMT+8, 2021-4-15 13:51 , Processed in 0.053662 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表