是否可以使用 GitHub 操作和 GitHub FTP 部署将 Laravel Web 应用程序部署到共享主机?
Is that possible to deploy Laravel web application to shared hosting using GitHub Action & GitHub FTP Deploy?
是否可以部署 Laravel Web 应用程序到共享主机 使用 GitHub 操作 & GitHub FTP 部署?如果可能我应该如何更改.github\workflows\master.yml?
on:
push:
branches:
- master
name: Deploy website on push
jobs:
web-deploy:
name: Deploy
runs-on: ubuntu-latest
steps:
- name: Get latest code
uses: actions/checkout@v2
- name: Sync files
uses: SamKirkland/FTP-Deploy-Action@4.2.0
with:
server: ${{ secrets.ftp_server }}
username: ${{ secrets.ftp_username }}
password: ${{ secrets.ftp_password }}
server-dir: /
看起来你非常接近,但缺少 2 个重要步骤:设置临时 PHP 环境,并使用该环境安装你的依赖项(Composer)。
GitHub 操作设置
本指南假设您有一个有效的 Laravel 安装、一个 GitHub 帐户和一个共享主机帐户,您可以使用 username/password 通过 FTP 访问该帐户。
我发现此视频 https://www.youtube.com/watch?v=UNWIXYSZfZY 有助于基本了解如何部署简单的应用程序。为了让这个答案对更广泛的人有所帮助,我将简要介绍一下我的设置。确实没有任何 Laravel 具体步骤。
工作流目录设置
在项目的根目录下创建目录 .github\workflows
。在 workflows
目录中,创建一个以您要推送到共享主机帐户的分支命名的 yml 文件。前任。 master.yml
、staging.yml
、development.yml
等。如果您只有一个分支,则只需创建一个文件。名称很重要,应与分支名称匹配。
设计您的工作流程
这在很大程度上取决于您的项目,但假设您有一个基本的 Laravel 应用程序而不需要其他组件,例如 Node,那么这是一个对我有用的基本 GitHub 操作各种项目。
一个基本动作文件由 2 个部分组成,the workflow, and the jobs。工作流触发作业。
工作流程
Lines 1-4 说这将 运行 每次我们 push
到 master
分支。
on:
push:
branches:
- master
Line 5 是此工作流程的名称,将显示在您的“操作”页面上。将其设置为描述性的内容。
name: Deploy website on push (Master)
设置作业
在这个动作中,有 5 个作业。有些接受参数,有些则不接受。我不打算在这里解释所有细节,但如果您需要详细信息,我会链接到相应的存储库。
- 检查您的代码以便工作流可以访问它,
https://github.com/actions/checkout
name: Get latest code
uses: actions/checkout@v2
- 设置一个临时 PHP 环境,这样您就可以 运行 诸如此类的事情
作曲家,https://github.com/shivammathur/setup-php。确保在此处设置您的 PHP 版本,否则您可能 运行 在安装具有意外 PHP 版本的 Composer 软件包时出现问题。
name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.2
- 缓存您的依赖项以加快部署速度,
https://github.com/actions/cache
name: Cache Composer packages
id: composer-cache
uses: actions/cache@v2
with:
path: vendor
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-
- 从
composer.json
和 composer.lock
安装依赖项
文件。
name: Install dependencies
run: composer install --prefer-dist --no-progress
- 将您的代码部署到您的远程共享主机站点,
https://github.com/SamKirkland/FTP-Deploy-Action. Note the use of
${{ secrets.ftp_username }}
and ${{ secrets.ftp_password }}
. These are set up in your repository's secrets section. See https://docs.github.com/en/actions/security-guides/encrypted-secrets
name: Sync files
uses: SamKirkland/FTP-Deploy-Action@4.0.0
with:
server: name_of_server.com
username: ${{ secrets.ftp_username }}
password: ${{ secrets.ftp_password }}
server-dir: public_html/
最终文件
on:
push:
branches:
- master
name: Deploy website on push (Master)
jobs:
web-deploy:
name: Deploy
runs-on: ubuntu-latest
steps:
- name: Get latest code
uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.2
- name: Cache Composer packages
id: composer-cache
uses: actions/cache@v2
with:
path: vendor
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-
- name: Install dependencies
run: composer install --prefer-dist --no-progress
- name: Sync files
uses: SamKirkland/FTP-Deploy-Action@4.0.0
with:
server: name_of_server.com
username: ${{ secrets.ftp_username }}
password: ${{ secrets.ftp_password }}
server-dir: public_html/
运行工作流程
Check-in .github\workflows\master.yml
,以及其他合适的,
进入您的 GitHub 存储库。如果没有这些文件,则什么也没有签入
将更改推送到分支时会发生。
转到“操作”选项卡并确保工作流显示在那里。
-
修复控制台中显示的任何错误。
最后,您在评论中提到了一些关于 NPM 的事情。如果您将 Node 作为项目中的一个组件,您只需 运行 两个额外的步骤即可捆绑您的资产并与其余代码一起部署。
祝你好运!
是否可以部署 Laravel Web 应用程序到共享主机 使用 GitHub 操作 & GitHub FTP 部署?如果可能我应该如何更改.github\workflows\master.yml?
on:
push:
branches:
- master
name: Deploy website on push
jobs:
web-deploy:
name: Deploy
runs-on: ubuntu-latest
steps:
- name: Get latest code
uses: actions/checkout@v2
- name: Sync files
uses: SamKirkland/FTP-Deploy-Action@4.2.0
with:
server: ${{ secrets.ftp_server }}
username: ${{ secrets.ftp_username }}
password: ${{ secrets.ftp_password }}
server-dir: /
看起来你非常接近,但缺少 2 个重要步骤:设置临时 PHP 环境,并使用该环境安装你的依赖项(Composer)。
GitHub 操作设置
本指南假设您有一个有效的 Laravel 安装、一个 GitHub 帐户和一个共享主机帐户,您可以使用 username/password 通过 FTP 访问该帐户。
我发现此视频 https://www.youtube.com/watch?v=UNWIXYSZfZY 有助于基本了解如何部署简单的应用程序。为了让这个答案对更广泛的人有所帮助,我将简要介绍一下我的设置。确实没有任何 Laravel 具体步骤。
工作流目录设置
在项目的根目录下创建目录 .github\workflows
。在 workflows
目录中,创建一个以您要推送到共享主机帐户的分支命名的 yml 文件。前任。 master.yml
、staging.yml
、development.yml
等。如果您只有一个分支,则只需创建一个文件。名称很重要,应与分支名称匹配。
设计您的工作流程
这在很大程度上取决于您的项目,但假设您有一个基本的 Laravel 应用程序而不需要其他组件,例如 Node,那么这是一个对我有用的基本 GitHub 操作各种项目。
一个基本动作文件由 2 个部分组成,the workflow, and the jobs。工作流触发作业。
工作流程
Lines 1-4 说这将 运行 每次我们 push
到 master
分支。
on:
push:
branches:
- master
Line 5 是此工作流程的名称,将显示在您的“操作”页面上。将其设置为描述性的内容。
name: Deploy website on push (Master)
设置作业
在这个动作中,有 5 个作业。有些接受参数,有些则不接受。我不打算在这里解释所有细节,但如果您需要详细信息,我会链接到相应的存储库。
- 检查您的代码以便工作流可以访问它, https://github.com/actions/checkout
name: Get latest code
uses: actions/checkout@v2
- 设置一个临时 PHP 环境,这样您就可以 运行 诸如此类的事情 作曲家,https://github.com/shivammathur/setup-php。确保在此处设置您的 PHP 版本,否则您可能 运行 在安装具有意外 PHP 版本的 Composer 软件包时出现问题。
name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.2
- 缓存您的依赖项以加快部署速度, https://github.com/actions/cache
name: Cache Composer packages
id: composer-cache
uses: actions/cache@v2
with:
path: vendor
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-
- 从
composer.json
和composer.lock
安装依赖项 文件。
name: Install dependencies
run: composer install --prefer-dist --no-progress
- 将您的代码部署到您的远程共享主机站点,
https://github.com/SamKirkland/FTP-Deploy-Action. Note the use of
${{ secrets.ftp_username }}
and${{ secrets.ftp_password }}
. These are set up in your repository's secrets section. See https://docs.github.com/en/actions/security-guides/encrypted-secrets
name: Sync files
uses: SamKirkland/FTP-Deploy-Action@4.0.0
with:
server: name_of_server.com
username: ${{ secrets.ftp_username }}
password: ${{ secrets.ftp_password }}
server-dir: public_html/
最终文件
on:
push:
branches:
- master
name: Deploy website on push (Master)
jobs:
web-deploy:
name: Deploy
runs-on: ubuntu-latest
steps:
- name: Get latest code
uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.2
- name: Cache Composer packages
id: composer-cache
uses: actions/cache@v2
with:
path: vendor
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-
- name: Install dependencies
run: composer install --prefer-dist --no-progress
- name: Sync files
uses: SamKirkland/FTP-Deploy-Action@4.0.0
with:
server: name_of_server.com
username: ${{ secrets.ftp_username }}
password: ${{ secrets.ftp_password }}
server-dir: public_html/
运行工作流程
Check-in
.github\workflows\master.yml
,以及其他合适的, 进入您的 GitHub 存储库。如果没有这些文件,则什么也没有签入 将更改推送到分支时会发生。转到“操作”选项卡并确保工作流显示在那里。
修复控制台中显示的任何错误。
最后,您在评论中提到了一些关于 NPM 的事情。如果您将 Node 作为项目中的一个组件,您只需 运行 两个额外的步骤即可捆绑您的资产并与其余代码一起部署。
祝你好运!