使用 Homeboy 让你的 Homestead 更加简便易用
homeboy
是一个 使用 Laravel Homestead
自动化网站的工具。只用一个命令,Homeboy
便将会:
- 使用
Composer
将Laravel
项目安装到一个新的目录 - 更新你的
Hosts
文件,将你的开发域名指向到你的 Homestead IP - 更新你的
homestead.yaml
文件以包含你的新项目 - 更新你的
homestead.yaml
文件为你的项目创建数据库 - 重新准备你的
Vagrant
,以更新配置
目录
要求
在你的(非 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
- 创建一个
alias
从任何目录运行homeboy
:
在 Mac
上(在 〜/.bash_profile
中)添加:
alias homeboy='php ~/homeboy/homeboy'
在 Windows
上,可以使用类似于 Cmder 这样的工具来添加别名
homeboy=php C:\Users\[USER]\homeboy\homeboy $*
Tips: 一定要根据安装homeboy的位置来编辑路径哦~
设置
运行 php homeboy setup
后,你的 homeboy
目录中应该有一个 .env
文件,并且已经生成了一些默认值。
这些选项可能需要根据您的特定设置进行更新,下面列出了每种可用设置的详细信息:
USE_COMPOSER
此选项用来确定是否应该创建一个新的 Composer
项目:
USE_COMPOSER=true
DEFAULT_COMPOSER_PROJECT
创建一个 Composer
项目时使用的默认包
DEFAULT_COMPOSER_PROJECT=laravel/laravel
DEFAULT_FOLDER_SUFFIX
创建一个新项目时,nginx
将定义为站点根目录的默认目录,默认情况下它是 /public
DEFAULT_FOLDER_SUFFIX=/public
DEFAULT_DOMAIN_EXTENSION
生成域名时的后缀,默认是 .app
DEFAULT_DOMAIN_EXTENSION=.app
HOSTS_FILE_PATH
创建新项目时,homeboy
将它添加到本地 hosts
文件的位置
homeboy
需要有权限对这个文件进行更改
HOSTS_FILE_PATH=/etc/hosts
HOMESTEAD_HOST_IP
Homesead
虚拟主机的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将进入该目录。
LOCAL_SITES_PATH=/Users/Username/Code
HOMESTEAD_ACCESS_DIRECTORY_COMMAND
在 Windows
中,如果您在不同的磁盘上运行 Homestead
,则可能需要额外的命令才能在切换到您的目录之前切换磁盘。
这个选项会导致 Homeboy
忽略选项:HOMESTEAD_BOX_PATH
HOMESTEAD_ACCESS_DIRECTORY_COMMAND="cd /d D: && cd /Homestead"
ACCESS_LOCAL_SITES_DIRECTORY_COMMAND
与 HOMESTEAD_ACCESS_DIRECTORY_COMMAND
类似,在 Windows
中,如果您的根项目目录位于不同的磁盘上,则可能需要额外的命令才能在切换到您的目录之前切换驱动器。
这个选项会导致 Homeboy
忽略选项:LOCAL_SITES_PATH
ACCESS_LOCAL_SITES_DIRECTORY_COMMAND="cd /d D: && cd /Code"
Homeboy 命令
Host
homeboy host
因为这是默认命令,所以它可以简化为:
homeboy
运行这个命令会自动创建一个新的 Composer
项目,在配置新项目时更新你的 hosts
文件和 Homestead.yaml
文件
当命令运行时,会提示输入你的站点目录名称,数据库名称和开发域名,然后重载 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
File
通过运行 file
命令可以快速查看文件内容:
homeboy file hosts
或者
homeboy file homestead
Domain
domain
命令可以让你快速添加一个新的域名到你的 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
安装,而不是我定义的 LOCAL_SITES_PATH
在 Windows
上的一个常见原因是当 LOCAL_SITES_PATH
与运行 homeboy
命令的磁盘位于不同的磁盘中时。由于 Windows
必须首先更改磁盘才能进入目录,因此可以使用 ACCESS_LOCAL_SITES_DIRECTORY_COMMAND
来覆盖 homeboy
访问此目录的方式。例如:
ACCESS_LOCAL_SITES_DIRECTORY_COMMAND="cd /d D: && cd /Code"
Vagrant 返回 “A Vagrant environment or target machine is required to run this comman”
这个信息会在 Homeboy
无法在运行 vagrant
命令时进入正确的 vagrant
目录下显示。请验证您的 HOMESTEAD_BOX_PATH
设置以确保它是正确的。
在 Windows
上,如果您的 HOMESTEAD_BOX_PATH
与您运行 homeboy
命令的磁盘位于不同的磁盘中,则可能需要添加 HOMESTEAD_ACCESS_DIRECTORY_COMMAND
以在访问目录时添加其他命令(如切换磁盘)。例如:
HOMESTEAD_ACCESS_DIRECTORY_COMMAND="cd /d D: && cd /Homestead"
Github地址:Homeboy
本作品采用《CC 协议》,转载必须注明作者和本文链接