Linux Plesk服务器Laravel执行storage:link生成软链接失效问题
Laravel在Plesk+CentOS环境下storage软链接失效的常见原因
- 执行命令的用户与站点用户不匹配:Plesk为每个站点分配了独立的系统用户,若你执行
php artisan storage:link时使用root或其他非站点归属用户,生成的软链接指向的storage/app/public目录权限不满足站点用户的读取要求,就会显示为无效链接。 - open_basedir配置限制:Plesk默认会为站点开启open_basedir安全限制,禁止程序访问站点根目录以外的路径。如果Laravel的storage目录未被加入open_basedir允许列表,Web服务无法读取软链接指向的目标路径,链接就会失效。
- 软链接路径不匹配:
storage:link命令默认生成绝对路径的软链接,若你执行命令时的工作目录、Laravel配置的根路径与Plesk站点实际配置的Web根目录不一致,生成的软链接指向的绝对路径不存在,自然会显示为无效。 - SELinux策略拦截:CentOS默认开启SELinux安全模块,若storage目录、软链接的SELinux上下文没有配置为Web服务可访问的类型,即使文件权限正常,SELinux也会拦截访问请求,导致软链接显示为无效状态。
内容的提问来源于stack exchange,提问作者FabricioG
相关产品推荐
相关产品推荐

