1

我有一个常规的 Linux/Apache 服务器(租用的主机),我在其中托管一个我通过 FTP 定期更新的 PHP 网站。当我将更改推送到其 Bitbucket 存储库时,我想自动将更改部署到服务器。

首先,我通过 SSH 连接到服务器并将存储库克隆到一个目录(例如 myapp):

git clone [myapp GIT URL]

当我去http://mydomain.com/myapp我得到Internal Server Error (500)。我认为这与权限或文件所有权有关。通过 FTP,我chmod将所有文件都发送到 777,它仍然会抛出相同的错误。事实上,我可以删除目录的内容并通过FTP手动上传应用程序,错误仍然存​​在(目录的权限也设置为777)。修复它的唯一方法是删除目录并重新创建它并手动上传应用程序。

就像我说的,这是一项付费托管服务,所以我不拥有服务器或对其进行任何高级控制。

为什么会这样?从我这边可以解决吗?

4

1 回答 1

3

刚刚发现这个问题,因为我有同样的问题,我无法在任何地方找到答案,所以这适用于将来会找到这个问题的每个人。

你必须编辑你的 bashrc 文件

$ vim ~/.bashrc

并将其添加到文件的底部

umask 022

在此之后,您必须注销并登录才能生效(如果您使用 ssh 登录,只需再次连接)或执行文件

.  ~/.bashrc

现在你可以再次 git clone 并且它会工作。

您可以在此处找到umask的文档

于 2015-11-21T21:38:35.693 回答