有人已经能够在 plesk 环境上成功运行 symfony 应用程序了吗?
我是 plesk 管理的新手,到目前为止我一直在使用 Apache / Nginx 自行配置虚拟主机。我刚刚将我的大部分 WordPress 网站转移到了 plesk,没有任何问题,我也能够运行 Laravel 5.7 项目,没有任何问题。但不知何故 symfony 项目给我带来了一些麻烦。
我读到有关 symfony 4 需要 PHP 7.1 的信息。我尝试在从 7.0 到 7.4 (fpm / cgi) 的每个可能的 PHP 版本上运行它。我正在使用 Plesk 18 黑曜石。
我刚刚将项目文件解压到名为 Symfony 的文件夹内的域主目录中,并以 httpdocs 的形式创建了到 PUBLIC 文件夹的符号链接,但它不起作用,它总是显示 403 页面。
编辑:我还尝试直接将其解压到 httpdocs 文件夹中,并在托管设置中将根目录更改为 /httpdocs/public,但随后它不断询问我密码中的用户名,就像它是密码保护区一样。
答案1
就我而言,我使用 Deployer 将 Symfony 部署到 Plesk 环境。它不是添加Options +FollowSymLinks
(没有必要),而是在部署路径的目录结构中正确设置我的文件权限:
find /var/www/vhosts/example.com/httpdocs -type d -exec chmod 0755 {} +
find /var/www/vhosts/example.com/httpdocs -type f -exec chmod 0644 {} +
或者,在 Deployer 任务中:
desc('Change Files And Folder Permissions');
task('deploy:permissions', function () {
run('find {{ deploy_path }} -type d -exec chmod --silent 0755 {} +');
run('find {{ deploy_path }} -type f -exec chmod --silent 0644 {} +');
});
我遇到的错误有点神秘(AH00037: Symbolic link not allowed or link target not accessible: /var/www/vhosts/example.com/httpdocs
)。我被“不允许符号链接”蒙蔽了双眼,但问题是“链接目标不可访问”部分。