itdc / fourstead
为网络开发者提供的虚拟机。
Requires
- php: >=5.5.9
- symfony/console: ~2.3|~3.0
- symfony/process: ~2.3|~3.0
This package is not auto-updated.
Last update: 2024-09-14 18:26:12 UTC
README
简介
ITDCMS致力于让整个PHP开发体验变得愉悦,包括您的本地开发环境。《Vagrant》提供了一种简单、优雅的方式来管理和配置虚拟机。
ITDCMS Fourstead是一个官方预打包的Vagrant虚拟机,它为您提供了一个美好的开发环境,无需在本地机器上安装PHP、HHVM、Web服务器和其他服务器软件。不再需要担心破坏操作系统!Vagrant虚拟机可以完全丢弃。如果出现问题,您可以在几分钟内销毁并重新创建虚拟机!
Fourstead可在任何Windows、Mac或Linux系统上运行,包括Nginx Web服务器、PHP 5.6、MySQL、Postgres、Redis、Memcached、Node以及您开发出色Web应用所需的所有其他好东西。
注意:如果您使用的是Windows,您可能需要启用硬件虚拟化(VT-x)。通常可以在BIOS中启用。
包含的软件
- Ubuntu Server 14.04 LTS
- Git
- PHP 5.6
- Nginx
- MySQL
- Sqlite3
- Postgres
- Composer
- Node(附带PM2、Bower、Grunt和Gulp)
- Redis
- Memcached
安装与设置
第一步
在启动Fourstead环境之前,您必须安装VirtualBox 5.x或VMWare以及Vagrant。所有这些软件包都为所有流行的操作系统提供了易于使用的可视化安装程序。
要使用VMware提供程序,您需要购买VMware Fusion / Workstation和VMware Vagrant插件。虽然它不是免费的,但VMware可以提供开箱即用的更快共享文件夹性能。
安装Fourstead Vagrant虚拟机
安装VirtualBox / VMware和Vagrant后,您应该使用以下终端命令将itdc/fourstead虚拟机添加到您的Vagrant安装中。下载虚拟机可能需要几分钟,具体取决于您的互联网连接速度。
vagrant box add itdc/fourstead
如果此命令失败,请确保您的Vagrant安装是最新的。
安装Fourstead
您可以通过简单地克隆存储库来安装Fourstead。建议在“home”目录下的Fourstead文件夹中克隆存储库,因为Fourstead虚拟机将作为所有ITDCMS项目的宿主。
cd ~
git clone https://github.com/itdc/fourstead.git Fourstead
一旦克隆了Fourstead存储库,请在Fourstead目录中运行bash init.sh命令以创建Fourstead.yaml配置文件。该Fourstead.yaml文件将放置在~/.fourstead隐藏目录中。
bash init.sh
配置Fourstead
设置提供程序
您的~/.fourstead/Fourstead.yaml文件中的provider键指示应使用哪个Vagrant提供程序:virtualbox、vmware_fusion或vmware_workstation。您可以将其设置为您偏好的提供程序。
provider: virtualbox
配置共享文件夹
Fourstead.yaml 文件的 folders 属性列出了您希望与 Fourstead 环境共享的所有文件夹。当这些文件夹内的文件发生变化时,它们将在您的本地机器和 Fourstead 环境之间保持同步。您可以根据需要配置任意数量的共享文件夹。
folders:
- map: ~/Code
to: /home/vagrant/Code
要启用 NFS,只需在同步文件夹配置中添加一个简单的标志。
folders:
- map: ~/Code
to: /home/vagrant/Code
type: "nfs"
配置 Nginx 网站配置
不熟悉 Nginx?没问题。通过 sites 属性,您可以将“域名”轻松映射到 Fourstead 环境上的文件夹。在 Fourstead.yaml 文件中包含了一个示例网站配置。同样,您可以根据需要将任意数量的网站添加到您的 Fourstead 环境中。Fourstead 可以作为您正在处理的每个 ITDCMS 项目的便捷虚拟化环境。
sites:
- map: fourstead.dev
to: /home/vagrant/Code/ITDCMS/public
您可以将任何 Fourstead 网站设置为使用 HHVM,只需将 hhvm 选项设置为 true。
sites:
- map: fourstead.dev
to: /home/vagrant/Code/ITDCMS/public
hhvm: true
主机文件
您必须在您的机器上的 hosts 文件中添加 Nginx 网站的“域名”。该 hosts 文件会将您的 Fourstead 网站请求重定向到您的 Fourstead 机器。在 Mac 和 Linux 上,该文件位于 /etc/hosts。在 Windows 上,它位于 C:\Windows\System32\drivers\etc\hosts。您添加到该文件的行如下所示:
192.168.10.10 fourstead.dev
请确保列出的 IP 地址与您在 ~/.fourstead/Fourstead.yaml 文件中设置的 IP 地址一致。一旦您将域名添加到 hosts 文件中,您就可以通过您的网络浏览器访问该网站。
http://fourstead.dev
启动Vagrant虚拟机
一旦您根据需要编辑了 Fourstead.yaml,请从您的 Fourstead 目录运行 vagrant up 命令。Vagrant 将启动虚拟机并自动配置您的共享文件夹和 Nginx 网站。
要销毁该机器,您可以使用 vagrant destroy --force 命令。
按项目安装
您不必全局安装 Fourstead 并在所有项目中共享相同的 Fourstead box,而是可以为您管理的每个项目配置一个 Fourstead 实例。如果希望将 Vagrantfile 与项目一起分发,允许其他人简单地 vagrant up,则按项目安装 Fourstead 可能会有所帮助。
要直接将 Fourstead 安装到您的项目中,请使用 Composer 引入它。
composer require itdc/fourstead --dev
Fourstead 安装完成后,使用 make 命令在项目根目录中生成 Vagrantfile 和 Fourstead.yaml 文件。make 命令将自动配置 Fourstead.yaml 文件中的 sites 和 folders 指令。
Mac / Linux
php vendor/bin/fourstead make
Windows
vendor\bin\fourstead make
接下来,在终端中运行 vagrant up 命令,并在浏览器中访问 http://fourstead.dev。请记住,您仍然需要为 fourstead.dev 或您选择的域名添加 /etc/hosts 文件条目。
日常使用
全局访问Fourstead
有时您可能希望从文件系统的任何位置启动 Fourstead 机器。您可以通过在 Bash 配置文件中添加一个简单的 Bash 别名来实现这一点。此别名将允许您从系统上的任何位置运行任何 Vagrant 命令,并将该命令自动指向您的 Fourstead 安装。
alias fourstead='function __fourstead() { (cd ~/Fourstead && vagrant $*); unset -f __fourstead; }; __fourstead'
请确保将别名中的 ~/Fourstead 路径更改为您的实际 Fourstead 安装位置。一旦安装了别名,您就可以从系统上的任何位置运行 fourstead up 或 fourstead ssh 等命令。
通过SSH连接
您可以通过在 Fourstead 目录中发出 vagrant ssh 终端命令来 SSH 进入您的虚拟机。
但是,由于您可能需要频繁 SSH 到 Fourstead 机器,请考虑在宿主机上添加上述“别名”,以便快速 SSH 到 Fourstead box。
连接到数据库
默认情况下,Fourstead 数据库同时配置了 MySQL 和 PostgreSQL。为了更加方便,ITDCMS 的 .env 文件配置框架使用此数据库。
要从您的宿主机通过 Navicat 或 Sequel Pro 连接到您的 MySQL 或 PostgreSQL 数据库,您应该连接到 127.0.0.1 和端口 33060(MySQL)或 54320(Postgres)。两个数据库的用户名和密码都是 fourstead / secret。
注意:您只有在从宿主机连接到数据库时应使用这些非标准端口。由于 ITDCMS 在虚拟机内部运行,您在 ITDCMS 数据库配置文件中将使用默认的 3306 和 5432 端口。
添加附加站点
一旦您的 Fourstead 环境已配置并运行,您可能想为 ITDCMS 应用程序添加额外的 Nginx 网站。您可以在单个 Fourstead 环境中运行任意数量的 ITDCMS 安装。要添加额外的网站,只需将网站添加到您的 ~/.fourstead/Fourstead.yaml 文件,然后从 Fourstead 目录运行 vagrant provision 终端命令。
配置Cron计划任务
ITDCMS 提供了一种方便的方法,通过安排一个每分钟运行一次的单个 schedule:run Artisan 命令来安排 Cron 作业。schedule:run 命令将检查在您的 ITDCMS\System\App\Console\Kernel 类中定义的已安排作业,以确定哪些作业应该运行。
如果您希望 schedule:run 命令在 Fourstead 网站上运行,您可以在定义网站时将 schedule 选项设置为 true。
sites:
- map: fourstead.dev
to: /home/vagrant/Code/ITDCMS/public
schedule: true
网站的 Cron 作业将定义在虚拟机的 /etc/cron.d 文件夹中。
端口
默认情况下,以下端口被转发到您的 Fourstead 环境中
- SSH: 2222 → 转发到 22
- HTTP: 8000 → 转发到 80
- HTTPS: 44300 → 转发到 443
- MySQL: 33060 → 转发到 3306
- Postgres: 54320 → 转发到 5432
转发其他端口
如果您愿意,您可以将其他端口转发到 Vagrant 箱中,并指定它们的协议
ports:
- send: 93000
to: 9300
- send: 7777
to: 777
protocol: udp