【问题标题】:Pulling updates from Git on running project在运行项目时从 Git 拉取更新
【发布时间】:2022-01-07 16:24:56
【问题描述】:

我在 ubuntu VM 的 apache2 服务器上部署了一个 laravel 应用程序。 设置花费了很多时间,但我想对网站进行更多更改,例如现在我添加了一个页脚。

在存储库中只使用pull 以便在项目中安装更新然后重新启动 apache 是否安全/可能?

我用谷歌搜索但没有找到任何具体的东西,所以我在这里问。

由于设置需要很长时间,我害怕我会破坏某些东西。

【问题讨论】:

  • 在服务器上拉取完全没问题,实际上您不需要重新启动 apache,只需记住首先合并主分支(或生产分支)上的所有内容,并在服务器中保留生产分支活跃
  • @Chico3001 好吧,完美!我没有更改服务器上的任何内容,所以我认为我不需要合并,但无论如何我都会这样做以确保。

标签: laravel git ubuntu github apache2


【解决方案1】:

确保文件权限和所有权正确无误。如果文件归 www-data 所有,并且您使用自己的用户 git pull,并创建了一个新文件,则新文件将归您自己的用户所有,而不是 www-data。可以创建一个 git 挂钩来为您创建 chown 文件文件,但您也可以在拉取更改后在自己的脚本中执行此操作(例如 chown -R www-data)。

此外,请确保您使用git pull --ff-only。如果由于某种原因服务器上的存储库和上游的存储库由于冲突(例如强制推送)而不同,--ff-only 将拒绝合并。这将防止 git pull 在文件中创建合并冲突标记,这可能会因语法错误而破坏您的代码。

将你的 git 存储库移动到不同的文件夹,在那里执行 git 操作,然后修复文件权限等,然后 rsync 或以其他方式覆盖 Apache 正在使用的目录中的文件,可能会更安全。

对于 Laravel,您需要遵循部署步骤 outlined in the documentation

composer install --no-interaction --optimize-autoloader --no-dev
php artisan config:cache
php artisan route:cache
php artisan view:cache

:cache 命令清除现有缓存并重新缓存配置文件、路由列表和编译的 Blade 模板。如果您以前使用过缓存命令,则需要运行这些命令,否则与配置、路由和视图相关的新代码更改将不会生效。如果您以前没有使用过这些,您可能不需要使用它们。

如果您有新的数据库迁移,您可能还需要运行 php artisan migrate。例如,如果您使用 Laravel Mix,您可能还需要运行 npm installnpm run prod 或其他与 npm 相关的构建命令。

在此之后,您最终需要重新加载 Apache2 实例 (sudo service apache2 reload) 以清除 Apache2 opcache(如果您正在使用 opcache)。

最后,如果您使用队列,则需要重新启动队列工作程序。此处的过程会有所不同,具体取决于您使用什么来保持工人的生命。例如,如果您使用 supervisor 作为记录的 here,您可能会使用 sudo supervisorctl restart laravel-worker:*。在所有之前的操作之后执行此操作,以便工作人员在最新的代码上运行。

【讨论】:

  • 嘿@cbr!谢谢你非常详细的回答!它非常有用,可以让我很好地了解要查找的内容!感谢您花时间写这篇文章 =)
【解决方案2】:

是的,您可以提取代码并运行这些命令来删除旧版本缓存。

php artisan view:clear
php artisan route:clear
php artisan cache:clear
php artisan view:cache
php artisan route:cache

您不需要重新启动 apache 服务。

【讨论】:

  • 非常感谢您的回答!我没有考虑缓存,好你评论它!
  • 不要清除服务器上的缓存存储 (cache:clear),这是您在代码中放入应用程序缓存的所有内容,它不是用于路由或配置或类似内容的缓存...您也可以在那里删除所有clear 命令,因为您正在运行cache 命令(清除然后缓存)
猜你喜欢
  • 2015-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-16
  • 1970-01-01
  • 2016-05-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多