vitr / valet4windows
为 Windows 提供更愉悦的本地开发体验。
Requires
- php: >=5.5.9
- illuminate/container: ~5.1
- mnapoli/silly: ~1.0
- nategood/httpful: ~0.2
- symfony/process: ~2.7|~3.0
- tightenco/collect: ^5.2
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: >=4.8.24
README
简介
这是 Laravel Valet 的 Windows 版本。Valet 是一个针对极简主义者的 Laravel 开发环境。这个 Windows 版本比 Mac 版本还要少用一些软件,但你仍然可以通过本地隧道公开分享你的网站。
Laravel Valet for Windows 会配置您的电脑在需要时运行 Caddy。然后,使用 c:\Windows\System32\drivers\etc\hosts
文件,Valet 将所有 *.dev
域的请求代理到您本地机器上安装的网站。
换句话说,这是一个大约占用 1mb 内存(查看内存使用)的极快 Laravel 开发环境。Valet 并不是 Vagrant 或 Homestead 的完全替代品,但如果您需要灵活的基础设施,喜欢极快的速度,或者在内存有限的机器上工作,它提供了一个非常好的替代方案。
请注意,任何任意的 PHP 应用程序在 Valet 中都不会工作,您需要通过特殊的驱动程序来支持它们。显然,Laravel 也得到了支持,以及其他许多流行的 PHP 主流框架,如 Symfony、WordPress、Joomla 等。请参阅完整的列表 这里
重要提示
- 将 C:\Windows\System32\drivers\etc\hosts 文件的权限设置为允许当前用户/管理员完全控制
- Windows 64 位 支持(如果还有人需要 32 位,请创建一个问题)
- 以管理员身份运行 git-bash,因为在 Windows 上只有管理员可以处理符号链接
- 有时 Caddy 服务器会突然停止工作(
502 Bad Gateway
),没有明显的原因,有时在断开互联网连接时停止,手动运行valet restart
总是很有帮助
快速入门
这将设置并运行一个名为 blog
的新 Laravel 应用程序,可通过 localhost http://blog.dev/ 访问。只需 php 和 composer 即可运行 Valet for Windows。如果您还没有它们,请参阅 高级入门。
您必须使用 git-bash 或类似的 shell。 这在标准的 Windows cmd 中不工作,原生的 bash 将很快来到 Windows,让我们拭目以待。
composer global require laravel/installer vitr/valet4windows
mkdir ~/Sites && cd ~/Sites
laravel new blog
valet install
valet park
valet scan
valet start
cd blog && valet open
高级入门
安装 php & composer
由于我们以 FastCGI 模式运行 php,请从 http://windows.php.net/download#php-7.0 下载 NTS (非线程安全) 版本(x86 或 x64)。将下载的存档解压缩到 C:\php
。将 php.ini-development
复制为 php.ini
并在文本编辑器中打开它。取消注释 Windows 的扩展路径
; Directory in which the loadable extensions (modules) reside.
; https://php.ac.cn/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "ext"
取消注释所需的扩展,例如
; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+)
; extension folders as well as the separate PECL DLL download (PHP 5+).
; Be sure to appropriately set the extension_dir directive.
;
;extension=php_bz2.dll
extension=php_curl.dll
;extension=php_fileinfo.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_exif.dll ; Must be after mbstring as it depends on it
;extension=php_mysqli.dll
;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client
extension=php_openssl.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_shmop.dll
请记住 Laravel 的服务器要求 https://laravel.net.cn/docs/master/installation#server-requirements。
Tokenizer PHP 扩展 默认包含在所有 Windows 版本中
将 php 路径(例如 C:\php
)添加到您的系统路径中。
从https://getcomposer.org.cn/download/安装Composer。Composer-Setup.exe的Windows安装程序会为您完成所有工作,包括将Composer的bin文件夹添加到系统路径,因此,以后您可以轻松地使用laravel
或valet
等命令。
安装Composer包
从现在开始使用git-bash或其他兼容bash的终端,因为Windows cmd在这里不起作用。在Windows外壳中完全重写所有valet命令的工作量太大,而且希望bash支持很快就会正式加入Windows 10。
composer global require laravel/installer vitr/valet4windows
更新hosts文件
valet scan
它会更新您的hosts文件 C:\Windows\System32\drivers\etc\hosts,因此,您需要更改其属性以允许当前用户完全控制。
运行Valet
如果您在Windows上,那么您的端口80和443可能已经被ISS或Skype占用。有关禁用ISS的更多信息,请参阅http://stackoverflow.com/questions/30901434/iis-manager-in-windows-10,以及如何修复Skype的http://stackoverflow.com/questions/22994888/why-skype-using-http-or-https-ports-80-and-443
打开Laravel网站
cd blog && valet open(将在chrome中打开http://blog.dev)
支持的应用程序和框架列表
未解决的问题
- caddyserver/caddy#732 (comment) Caddy服务器无法在Windows上作为服务运行(意味着cmd总是打开),反过来,可以很容易地关闭),这里有更多https://forum.caddyserver.com/t/requested-plugins-ideas-for-developers/127 caddyserver/caddy#293它被请求为Caddy的插件,希望他们很快就会实现这个功能,但我的额外cmd窗口的解决方案效果很好。
- 在添加新的子文件夹后,手动重新扫描已停用的文件夹(可以通过某种类型的文件系统监视器解决,例如node.js)
- 在Windows上使用符号链接需要以管理员身份运行git-bash
测试
我认为在这里只进行集成测试是有益的。我会测试每个valet命令并检查结果。不幸的是,travis不支持Windows,所以我手动在Windows机器上执行它们。将来,我可能会尝试https://ci.appveyor.com/
路线图
- 使用此最小Windows服务存根编译caddy https://github.com/kardianos/minwinsvc
- 更新valet驱动器
- 演示如何安装SSL证书(很有趣:))
- 实施与Mac相同的测试,也许还有一些其他测试
- 清理所有OS X残留物
- 更新caddyserver(最新版本v0.9.0)
- 将
scan
与park, forget, link, unlink
结合 - 将caddy执行程序移动到bin,将Caddyfile配置移动到~/.valet
- 修复readme中的larawhale名称
- 将历史记录移动到单独的历史记录文件中(见CHANGELOG.md)
- 将所有原始mac Valet命令移植过来
- 域名
- fetch-share-url
- forget
- help
- install
- link(需要以管理员身份运行git-bash)
- links
- list
- logs
- on-latest-version
- open
- park
- paths
- restart
- 安全,为了消除浏览器警告,您必须手动安装证书(双击 ~.valet\Certificates\blog.dev.crt 并在根目录下安装它)
- 分享
- 启动
- 停止
- 卸载
- 解除链接
- 不安全
- 哪个