今天抽空将本机开发环境上的FastAdmin网站部署到服务器上:
- 将网站内容上传到服务器上,配置网站根目录指向public目录,后访问网站,出现自动重定向到install.php 查看后台入口文件,检查install.lock文件确实在正常的位置,看来在服务器环境下,php未能正常访问到该文件,可能权限或者其他原因
// 判断是否安装
if (!is_file(APP_PATH . 'admin/command/Install/install.lock')) {
header("location:./install.php");
exit;
}
由于我是通过winscp用root用户登陆将文件上传的,查看权限不是www用户,首先通过宝塔将整个目录及子目录赋权。访问依旧重定向到install.php。 为进一步排查,将上面代码注释掉访问,报错:
require(): open_basedir restriction in effect
这个问题的原因主要是因为 PHP 的 open_basedir 配置限制了脚本可以访问的目录范围。默认情况下,PHP 只允许访问 open_basedir 设置的目录及其子目录,超出范围时就会报错。这种限制通常是服务器出于安全考虑配置的。
由于该网站只是内部的一个小应用,为快速解决,将网站设置->网站目录->防跨站攻击关闭后,访问正常。