kilroyweb / homeboy
用于自动化Laravel Homestead网站的工具
Requires
- symfony/console: ^3.3
- vlucas/phpdotenv: ^2.4
Requires (Dev)
- phpunit/phpunit: ^6.1
README
用于自动化Laravel Homestead网站的工具。通过一条命令,Homeboy 就能
- 使用 composer 在新目录中安装 Laravel(或另一个项目包)
- 更新主机文件,将开发域名指向 Homestead IP
- 更新 Homestead.yaml 文件以包含您的项目
- 更新 Homestead.yaml 文件以创建项目的数据库
- 重新配置 Vagrant
您还可以使用 homeboy 配置非 Laravel 网站!
目录
要求
在您的本地(非 Homestead)机器上,Homeboy 需要
- Git
- PHP
- Composer
安装
作为全局 composer 包安装
composer global require "kilroyweb/homeboy" dev-master
请确保将 $HOME/.composer/vendor/bin 目录(或您的操作系统的等效目录)添加到您的 $PATH 中,以便系统可以定位到 laravel 可执行文件。
安装完成后,您可以在系统上的任何位置使用 homeboy
命令。
运行设置命令以生成 .env 文件
php homeboy setup
使用 git clone 安装
- 在您的本地机器上,克隆 Homeboy
cd ~
git clone https://github.com/kilroyweb/homeboy.git homeboy
- 在 homeboy 目录中,运行 composer
cd homeboy
composer install
运行设置命令以生成 .env 文件
php homeboy setup
到此为止,您应该能够在目录中使用命令运行 homeboy
php homeboy
- 创建别名以从任何目录运行 homeboy
在 mac(在 ~/.bash_profile 中)添加
alias homeboy='php ~/homeboy/homeboy'
在 windows 上,可以使用类似 Cmder(http://cmder.net)的工具添加别名
homeboy=php C:\Users\[USER]\homeboy\homeboy $*
请确保根据 homeboy 的安装位置编辑路径
设置配置
运行 homeboy setup
后,您应该在 homeboy 目录中找到一个包含一些默认设置的 .env 文件。
根据您的特定设置,这些选项可能需要更新,以下列出每个可设置项的详细信息
USE_COMPOSER
确定 homeboy 是否应创建新的 composer 项目的默认选项
USE_COMPOSER=true
DEFAULT_COMPOSER_PROJECT
创建 composer 项目时使用的默认包
DEFAULT_COMPOSER_PROJECT=laravel/laravel
DEFAULT_FOLDER_SUFFIX
托管新项目时,nginx 会将其定义为文档根的默认目录。对于 Laravel 项目,默认情况下这是 "/public"
DEFAULT_FOLDER_SUFFIX=/public
DEFAULT_DOMAIN_EXTENSION
创建开发域名时,当生成域名时默认提供的域名后缀
DEFAULT_DOMAIN_EXTENSION=.app
HOSTS_FILE_PATH
homeboy 添加新项目时要使用的本地 hosts 文件的位置
此文件需要调整权限以便 homeboy 可编辑
HOSTS_FILE_PATH=/etc/hosts
HOMESTEAD_HOST_IP
分配给您的 Homestead 虚拟机的 IP 地址。这通常可以在您的 Homestead.yaml 文件中找到
HOMESTEAD_HOST_IP=192.168.10.10
HOMESTEAD_FILE_PATH
您的 Homestead.yaml 文件的位置。当创建新项目时,Homeboy 将更新此文件的站点列表和数据库列表
HOMESTEAD_FILE_PATH=/Users/Username/Homestead/Homestead.yaml
HOMESTEAD_SITES_PATH
您的 Homestead 虚拟机中网站的根路径
HOMESTEAD_SITES_PATH=/home/vagrant/Code/
HOMESTEAD_BOX_PATH
您的 Homestead 目录的路径
HOMESTEAD_BOX_PATH=/Users/Username/Homestead
LOCAL_SITES_PATH
您在本地机器上存储项目的路径。当运行 "composer create-project ... " 时,Homeboy 将 cd 到此目录
LOCAL_SITES_PATH=/Users/Username/Code
家庭宿主访问目录命令
在Windows中,如果您在另一驱动器上运行Homestead,在cd到您的目录之前可能需要额外的命令来切换驱动器。
此选项将导致Homeboy忽略以下选项:家庭宿主盒子路径
HOMESTEAD_ACCESS_DIRECTORY_COMMAND="cd /d D: && cd /Homestead"
本地站点访问目录命令
类似于家庭宿主访问目录命令,在Windows中,如果您的根项目目录在另一个驱动器上,在cd到您的目录之前可能需要额外的命令来切换驱动器。
此选项将导致Homeboy忽略以下选项:本地站点路径
ACCESS_LOCAL_SITES_DIRECTORY_COMMAND="cd /d D: && cd /Code"
Homeboy 命令
主机
homeboy host
因为这是默认命令,您可以通过简单地运行以下命令来运行host
homeboy
运行此命令将自动化创建新composer项目、更新hosts文件和vagrant文件的任务,在为新网站提供时
当命令运行时,它会提示输入站点目录名称、数据库名称和开发url以更新所需文件,然后提供vagrant
已添加一些选项来加快命令。然而,因为“homeboy”命令只是“homeboy host”的快捷方式(允许我们将来添加更多命令),选项仅在调用“homeboy host”时才起作用,而不仅仅是“homeboy”。
一些可用的选项
--use-defaults
:在提供时自动接受默认值--skip-confirmation
:在运行任务之前自动确认--name
:要创建项目的目录名称--database
:要添加到homestead的数据库--domain
:开发域名
以下示例将自动运行所有任务而无需任何提示
homeboy host --name=my-project --use-defaults --skip-confirmation
Vagrant
Homeboy还包含“vagrant:run”命令,允许您快速运行任何vagrant命令而无需cd进入该目录,即
homeboy vagrant:run status
文件
通过运行以下命令快速查看文件内容
homeboy file hosts
或
homeboy file homestead
域名
域名命令允许您快速将新域名记录添加到hosts文件。
homeboy domain
Composer
composer:create-project命令提示您运行“composer create-project [composer-project] [project-name]”命令的详细信息
homeboy composer:create-project
故障排除
hosts文件不可写
您的hosts文件需要由homeboy可写。在许多情况下,可以使用以下命令解决问题
sudo chmod 664 /etc/hosts
这可能会根据您的平台/环境而有所不同
Homeboy在我的当前目录中运行composer install,而不是我定义的LOCAL_SITES_PATH
在Windows中,这是常见原因之一,当LOCAL_SITES_PATH在homeboy命令运行的不同驱动器上时。由于Windows必须首先切换驱动器才能cd进入目录,因此您可以使用“本地站点访问目录命令”来覆盖homeboy访问此目录的方式。例如
ACCESS_LOCAL_SITES_DIRECTORY_COMMAND="cd /d D: && cd /Code"
Vagrant返回“A Vagrant environment or target machine is required to run this command”
当Homeboy在运行vagrant命令时无法cd进入正确的vagrant目录时,将显示此消息。请验证您的“家庭宿主盒子路径”值,以确保其正确。
在Windows中,如果您的家庭宿主盒子路径在您运行homeboy命令的驱动器上,您可能需要添加“家庭宿主访问目录命令”来在访问目录时添加任何额外命令(如切换驱动器)。例如
HOMESTEAD_ACCESS_DIRECTORY_COMMAND="cd /d D: && cd /Homestead"