Laravel - Envoyer 目录结构的一般 Apache 500 错误

Laravel - Generic Apache 500 error with Envoyer directory structure

我正在尝试使用 Envoyer 将我的 Laravel 5 站点部署到我的 VPS。我将站点的 Apache 设置中的文档根目录更改为 /current/public(设置如下),当我这样做时,我收到了一个通用的 Apache 500 错误。如果我使用旧的 public 目录,一切都会正确加载。

我也试过chmod 777 -R storage,没有成功。 Laravel 日志中没有日志条目,一切部署正常,没有错误。

我确实注意到,如果我创建一个普通的 HTML 文档并通过 Envoyer 部署它,我可以使用 /current/public 文档根目录直接访问它,任何与 Laravel(并且仅使用 current/public),结果为 500.

想法?符号链接是一个可能的解决方案吗?奇怪的是,我在其他 Envoyer 站点上的 Forge 配置将文档根目录设置为 public,但我看不到指向 current/public 的符号链接。它可能设置为 current/public 并且由于某种原因没有显示它。

customlog:
  -
    format: combined
    target: /usr/local/apache/domlogs/mydomain.org
  -
    format: "\"%{%s}t %I .\n%{%s}t %O .\""
    target: /usr/local/apache/domlogs/mydomain.org-bytes_log
documentroot: /home/eyf/current/public
group: eyf
hascgi: 1
homedir: /home/eyf
ifmoduleconcurrentphpc: {}

ifmodulemodsuphpc:
  group: eyf
ip: MY.IP.ADDR
owner: root
phpopenbasedirprotect: 1
port: 80
scriptalias:
  -
    path: /home/eyf/public/cgi-bin
    url: /cgi-bin/
  -
    path: /home/eyf/public/cgi-bin/
    url: /cgi-bin/
serveradmin: webmaster@mydomain.org
serveralias: www.mydomain.org
servername: mydomain.org
usecanonicalname: 'Off'
user: eyf
userdirprotect: ''

好的,所以我在这里遇到了两个不同的问题。

第一个问题是我将代码部署为 root 并尝试访问 cPanel 用户拥有的站点(在本例中为 eyf)。因为 files/directories 部署为 root,所有权问题导致了通用 500 错误页面。

然后我尝试通过 Envoyer 与 eyf 连接,但出现了某种 SSH 密钥问题 - 尽管我通过 cPanel 将密钥添加到 eyf,但它似乎并没有成功。反复尝试从 Envoyer 连接最终导致 IP 地址被列入黑名单。

对此,Envoyer 在尝试连接服务器时简单地说了 "Failed"。在输入 "Failed," 之后,会立即出现一条警告消息,指出 PHP-FPM 存在问题。

Taylor 说出现此 PHP-FPM 警告消息是因为连接不成功,Envoyer 无法连接到 PHP-FPM。好吧,这完全是误导,因为我没有在此服务器上安装 PHP-FPM,而且它与连接失败的原因完全无关(这是 SSH 身份验证问题)。

我请他 改进 warnings/errors 这样的事情,它把本来应该是一个快速修复的问题延伸到几个小时的长尾追逐会话中。 Dploy.io,一个竞争对手,清楚地 在我第一次尝试连接并且忘记了 SSH 密钥时显示了 SSH 连接问题 - "d'oh! Let me fix that," 问题在不到一分钟内解决了.

无论如何,回到特使的幸福 - 只是有点小麻烦。 ;) IP 地址已列入白名单,我为 cPanel 用户 (/.ssh/id_rsa) 手动添加了 SSH 密钥,现在一切正常。