ashleydawson / deskpro-hab
Requires
- php: ^7.1
- ext-json: *
- padraic/phar-updater: ^1.0
- symfony/console: ^4.2
- symfony/filesystem: ^4.2
Requires (Dev)
- humbug/box: ^3.7
- phpunit/phpunit: ^8.1
README
Hab(栖息地)是一个虚拟开发环境启动器,用于设置和配置一个 guest Vagrant 实例。Vagrant 实例包括运行 Deskpro 和针对其进行开发的全部开发依赖项。Hab 为 Linux 和 MacOS 主机机器而设计。
安装
在安装 Hab 之前,请先安装 Vagrant 和 VirtualBox。
Hab 以 .phar 格式打包,并用于从 Deskpro 项目内部启动虚拟开发基础设施。
下载最新版本的 hab.phar (下载链接) 并将其放置在您的 Deskpro 项目目录根目录下。
"快速" 开始指南(Linux & MacOS)
- 在您的计算机上安装 Vagrant 和 VirtualBox
- 克隆 Deskpro 仓库
- 转到 Deskpro 项目根目录,并 下载 Hab 到此位置
- 通过运行
git submodule init && git submodule update
初始化并更新 Git 子模块 - 运行
php ./hab.phar init
以初始化 Vagrant 和配置脚本 - 运行
vagrant up
- 运行
vagrant ssh
以访问虚拟机 - 在虚拟机上全局下载并安装 Composer
- 运行
cd /var/www/deskpro/app/BUILD
- 运行
composer install -o
- 运行
cd /var/www/deskpro/www/assets/BUILD/web
- 运行
npm install
(这可能需要一段时间) - 运行
bower install --config.interactive=false --allow-root
- 运行
npm run gulp
- 运行
cd /var/www/deskpro/www/assets/BUILD/pub
- 运行
npm install
(这可能需要一段时间) - 运行
ASSET_SERVER_HOSTNAME=deskpro.local npm run dev
以启动资产服务器 - 在主机机器上的另一个终端(您的计算机)
- 运行
vagrant ssh
以作为另一个会话访问虚拟机 - 当提示时,运行
bin/install --install-source dev
安装 Deskpro- 输入项目 URL "http://deskpro.local/"
- 输入 "127.0.0.1" 作为数据库主机名,并输入 "root" 作为数据库用户名和密码。数据库名为 "deskpro"
- 检查
config/config.paths.php
中的asset_paths
是否指向deskpro.local:9666
- 将以下行添加到
config/advanced/config.settings.php
的底部
$SETTINGS['DESKPRO_APP_ASSETS_URL'] = 'http://deskpro.local/assets/BUILD/pub/build/';
- 您现在应该可以通过
http://deskpro.local/
访问 Deskpro
使用方法
要初始化 Vagrantfile、设置和配置脚本,请运行 init
命令
$ php hab.phar init
这将安装必要的文件,以便使用标准的 Vagrant 命令启动虚拟机
$ vagrant up && vagrant ssh
您可以将多个选项传递给调整虚拟机实例设置的命令,这些设置随后存储在 hab.json
文件中。
php hab.phar init \ --project-dir /path/to/project/dir \ --hostname deskpro.local \ --ip 192.168.2.34 \ --memory 2048 \ --cpus 4 \ --force
选项如下
- project-dir - Deskpro 项目目录的位置,默认为
当前目录
- hostname - 虚拟机的主机名,默认为
deskpro.local
- ip - 客户机虚拟机的私有 IP 地址,默认为
10.40.1.23
- 内存 - 为 VM 分配多少内存(以兆字节为单位),默认值为
4096
- cpus - VM 的 CPU 数量,默认值为
2
- force - 强制覆盖 hab 引导文件,默认值为
false
初始化 Hab 后,您应该从版本控制中排除以下文件(通常通过添加到 .gitignore
文件中完成)
/.vagrant
/.hab
/hab.phar
/hab.json
/Vagrantfile
启动 VM 后,您可以 SSH 连接到它,并运行如 Deskpro 设置说明 中所述的常规安装和设置脚本。
注意:运行 dev 资产服务器时,执行以下操作以覆盖默认主机名
$ ASSET_SERVER_HOSTNAME=deskpro.local npm run dev
资产服务器环境变量如下
ASSET_SERVER_HOSTNAME
- 覆盖资产服务器主机名(默认为localhost
)ASSET_SERVER_PORT
- 覆盖资产服务器端口(默认为9666
)
注意:要运行 Deskpro 测试套件,您需要将应用程序配置为使用 --login-path
选项,例如 mysqldump
等,以抑制“命令提示符中的密码不安全”警告。这是通过将 --login-path=local
选项添加到测试配置数据库参数中完成的(在复制 .dist 配置后)
# app/BUILD/tests/config/config.all.php // ... $CONFIG['database'] = [ 'host' => '127.0.0.1', 'user' => 'root', 'password' => 'root', 'dbname' => $dbName.$dbPostfix, 'login-path' => 'local', // Append this parameter ]; // ...
默认服务连接性
- MySQL DSN:
mysql://root:root@deskpro.local:3306/deskpro
- Elasticsearch URL:
http://deskpro.local:9200/
(需要启动服务)
更新
可以使用以下命令使用 hab.phar
软件包进行自更新
$ php hab.phar self-update
更新后,通常需要强制初始化修改后的引导文件
$ php hab.phar init --force
测试
您可以使用以下命令运行 Hab 功能测试套件
$ composer install
$ vendor/bin/phpunit -c .