guysolamour / laravel-deploy
基于 ansible & ansistrano 构建的 Laravel 部署系统
v1.3
2024-02-17 09:50 UTC
Requires
- illuminate/support: >=6.0
README
此包允许您通过安装网站运行所需的各种工具并自动化部署过程,在专用服务器或 VPS 上部署网站。
先决条件
- 适用于 Unix 类型系统(MacOs 和 Linux)
- Ubuntu Server 操作系统
- bash 版本 >= 4(您可以通过
bash --version
检查)否则更新 bash shell - 安装 ansible (https://docs.ansible.org.cn/ansible/latest/installation_guide/intro_installation.html)
- 安装 anistrano (https://ansistrano.com)
安装
通过 composer 安装
composer require guysolamour/laravel-deploy
准备服务器
1- 连接到服务器
ssh root@000.000.000.000
# 000.000.000.000 must be changed with your server ip address
2- 创建一个运行任务的用户
sudo useradd user -s /bin/bash -d /home/user -m -G sudo
# user must be changed with your own user
3- 将创建的用户添加到 sudoers 文件中
sudo visudo # Append user ALL=(ALL) NOPASSWD:ALL at the end of line # user must be changed with your own user
4- 在远程服务器上安装 python
sudo apt install -y python-apt
5- 从远程机器断开连接并复制主机机器的 ssh 密钥给创建的用户
ssh-copy-id -i ~/.ssh/id_rsa.pub user@000.000.000.000 # If you dont have generate ssh key before use sshkeygen command to generate newly key # 000.000.000.000 must be changed with your server ip address
脚手架
运行脚手架命令以生成必要的基文件。此命令必须只执行一次,并在最开始时执行。
./vendor/bin/deploy scaffold --host 000.001.002.003 --domain domain.com --application appname
不同步骤
1- 生成包含密码的文件
./vendor/bin/deploy password:create # Enter the password that will be used for decryption # This password must be saved in clear in the .vaultpass file # This file must not be versioned.
2- 添加这些变量并使用正确数据
# The deployement user password. The user created on the server. vault_user_password: "password" # The deployment database password vault_database_password: "password" # The database root user password vault_database_root_password: "password" # The administrator password for admin panel in local vault_admin_local_password: "password" # The administrator password for admin panel in production vault_admin_production_password: "password" # The ftp password for backup. Can be blank. vault_ftp_password: "password" # Copy and paste the output of *php artisan key:generate --show command vault_app_key: "base64:appkey"
3- 修改包含密码的文件
./vendor/bin/deploy password:edit
4- 查看文件内容
./vendor/bin/deploy password:view
4- 删除文件内容
./vendor/bin/deploy password:delete
可用命令
- help
- scaffold
- configure:server
- password:create
- password:view
- password:edit
- password:delete
- run
- rollback
- db:seed
- db:deploy
- db:dump
- db:run
- db:import
- storage:dump
- storage:import
- storage:deploy
- exec
- dkim
- clean
- ssh
- env:deploy
帮助
获取更多信息
./vendor/bin/deploy help
配置服务器
运行 configure:server 命令以在 VPS 上安装 Laravel 项目所需的所有软件(php、mysql、nginx ...)。
./vendor/bin/deploy configure:server
部署
./vendor/bin/deploy run
回滚
./vendor/bin/deploy rollback
数据库初始化
./vendor/bin/deploy db:seed
数据库部署
将本地数据库复制到远程数据库
./vendor/bin/deploy db:deploy
数据库导入
将远程数据库复制到本地数据库
./vendor/bin/deploy db:import
数据库转储
转储本地数据库
./vendor/bin/deploy db:dump
存储部署
将本地存储文件夹复制到远程存储文件夹
./vendor/bin/deploy storage:deploy
存储导入
将远程存储文件夹复制到本地存储文件夹
./vendor/bin/deploy storage:import
执行
在线运行 shell 命令
./vendor/bin/deploy exec "pwd"
Dkim
显示 DKIM 公钥
./vendor/bin/deploy dkim
清理
删除临时文件
./vendor/bin/deploy clean
SSH
SSH 进入远程项目
./vendor/bin/deploy ssh
如果您发现任何安全问题,请通过电子邮件 rolandassale@gmail.com 联系,而不是使用问题跟踪器。
致谢
此包是通过 melihovv/laravel-package-generator 的帮助启动的。