AWS Lightsail Plesk中.htaccess配置引发500及文件找不到错误求助
解决AWS Lightsail Plesk环境下.htaccess相关的500错误与文件找不到问题
一、分析500 Internal Server Error的原因及解决
你添加的三行代码里有两个可能触发500错误的点:
1. Options +FollowSymLinks 触发报错
Plesk默认可能限制了.htaccess中使用Options指令,或者当前虚拟主机的AllowOverride配置未包含Options权限,导致这行代码被拒绝。
解决办法:
- 登录Plesk控制面板,进入对应域名的「Apache & Nginx Settings」
- 在「Additional Apache directives」(额外Apache指令)中添加:
Options +FollowSymLinks,然后保存 - 移除.htaccess中的这行代码,避免重复配置冲突
2. php_value 指令不兼容FastCGI模式
Plesk中PHP通常以FastCGI或FPM模式运行,这种模式下.htaccess不支持php_value指令,强行添加会触发500错误。
解决办法(二选一):
- 方法1:用user.ini替代:在网站根目录创建
user.ini文件,添加以下内容:session.cookie_httponly = 1 session.cookie_secure = 1 - 方法2:通过Plesk PHP设置配置:进入域名的「PHP Settings」,找到Session相关选项,直接开启
session.cookie_httponly和session.cookie_secure,保存即可生效。
二、解决移除代码后的「failed to open stream: No such file or directory」错误
这个错误本质是缺少FollowSymLinks导致符号链接或相对路径解析失败,结合上面的配置,确保FollowSymLinks已通过Plesk的Apache指令开启,同时可以优化PHP代码的路径写法:
- 避免在PHP中使用依赖符号链接的相对路径,改用绝对路径。比如:
把include('libs/xxx.php');改成include(__DIR__ . '/libs/xxx.php');,或者include($_SERVER['DOCUMENT_ROOT'] . '/libs/xxx.php'); - 检查网站目录下的符号链接是否正确,确保链接指向的目标文件/目录确实存在。
内容的提问来源于stack exchange,提问作者Foisal Hossain
相关产品推荐
相关产品推荐

