Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用github操作部署laravel应用程序_Php_Laravel_Deployment_Github Actions - Fatal编程技术网

Php 如何使用github操作部署laravel应用程序

Php 如何使用github操作部署laravel应用程序,php,laravel,deployment,github-actions,Php,Laravel,Deployment,Github Actions,我正在尝试使用Github操作将我的laravel应用程序部署到服务器上进行构建和测试,然后通过ssh进行部署 我有一个用于开发的主存储库,然后我有一个附加到操作脚本的生产回购 我尝试了以下github操作部署 我的构建工作正常,但在部署时,它无法找到我的部署脚本,即server_deploy.sh #!/bin/sh set -e echo "Deploying application ..." # Enter maintenance mode (php artisan

我正在尝试使用Github操作将我的laravel应用程序部署到服务器上进行构建和测试,然后通过ssh进行部署

我有一个用于开发的主存储库,然后我有一个附加到操作脚本的生产回购

我尝试了以下github操作部署

我的构建工作正常,但在部署时,它无法找到我的部署脚本,即server_deploy.sh

#!/bin/sh
set -e

echo "Deploying application ..."

# Enter maintenance mode
(php artisan down --message 'The app is being (quickly!) updated. Please try again in a minute.') || true
    # Update codebase
    git fetch origin deploy
    git reset --hard origin/deploy

    # Install dependencies based on lock file
    composer install --no-interaction --prefer-dist --optimize-autoloader

# Exit maintenance mode
php artisan up

echo "Application deployed!"
这是我的main.yml文件

name: CD

on:
  push:
    branches: [ production ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
      with:
        token: ${{ secrets.PUSH_TOKEN }}
    - name: Set up Node
      uses: actions/setup-node@v1
      with:
        node-version: '12.x'
    - run: npm install
    - run: npm run production
    - name: Commit built assets
      run: |
        git config --local user.email "action@github.com"
        git config --local user.name "GitHub Action"
        git checkout -B deploy
        git add -f public/
        git commit -m "Build front-end assets"
        git push -f origin deploy
    - name: Deploy to production
      uses: appleboy/ssh-action@master
      with:
        username: ${{ secrets.SSH_USERNAME }}
        host: ${{ secrets.SSH_HOST }}
        password: ${{ secrets.SSH_PASSWORD }}
        script: 'cd /home/admin/web/case4.example.co/public_html/ && ls && sh server_deploy.sh'
这是我的server_deploy.sh

#!/bin/sh
set -e

echo "Deploying application ..."

# Enter maintenance mode
(php artisan down --message 'The app is being (quickly!) updated. Please try again in a minute.') || true
    # Update codebase
    git fetch origin deploy
    git reset --hard origin/deploy

    # Install dependencies based on lock file
    composer install --no-interaction --prefer-dist --optimize-autoloader

# Exit maintenance mode
php artisan up

echo "Application deployed!"
但是,当我执行此工作流时,它找不到server_deploy.sh文件。

我试着
ls
看看我的回购协议是否有效,但没有


请帮助。

您没有根据教程设置服务器

请注意,服务器始终位于部署分支上

完成所有这些设置后,将Laravel应用程序安装到
/var/www/html
并签出
deploy
分支。如果它还不存在,您可以执行
git checkout production&&git checkout-b deploy
来创建它


您必须在服务器上运行一次,并签出包含部署脚本的部署分支
server\u deploy.sh

您需要首先登录到服务器,然后将
server\u deploy.sh
上载到根文件夹;e、 g:
/var/www/html

那么我应该在public\u html目录中克隆存储库,然后签出部署分支吗?我认为它会自动创建,如果我将
.git
目录放在公共html中,它不会成为一个安全问题吗?您必须设置服务器,使
.git
目录不能从外部提供/访问。部署脚本取决于您是否有git存储库,因为它使用的git命令需要现有的签出存储库。