vitr/valet4windows

为 Windows 提供更愉悦的本地开发体验。

v0.9.7 2016-12-15 12:50 UTC

README

Laravel Valet for Windows

简介

这是 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 主流框架,如 SymfonyWordPressJoomla 等。请参阅完整的列表 这里

重要提示

  • C:\Windows\System32\drivers\etc\hosts 文件的权限设置为允许当前用户/管理员完全控制
  • Windows 64 位 支持(如果还有人需要 32 位,请创建一个问题)
  • 以管理员身份运行 git-bash,因为在 Windows 上只有管理员可以处理符号链接
  • 有时 Caddy 服务器会突然停止工作(502 Bad Gateway),没有明显的原因,有时在断开互联网连接时停止,手动运行 valet restart 总是很有帮助

快速入门

这将设置并运行一个名为 blog 的新 Laravel 应用程序,可通过 localhost http://blog.dev/ 访问。只需 phpcomposer 即可运行 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文件夹添加到系统路径,因此,以后您可以轻松地使用laravelvalet等命令。

安装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

支持的应用程序和框架列表

未解决的问题

测试

我认为在这里只进行集成测试是有益的。我会测试每个valet命令并检查结果。不幸的是,travis不支持Windows,所以我手动在Windows机器上执行它们。将来,我可能会尝试https://ci.appveyor.com/

路线图

  • 使用此最小Windows服务存根编译caddy https://github.com/kardianos/minwinsvc
  • 更新valet驱动器
  • 演示如何安装SSL证书(很有趣:))
  • 实施与Mac相同的测试,也许还有一些其他测试
  • 清理所有OS X残留物
  • 更新caddyserver(最新版本v0.9.0)
  • scanpark, 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 并在根目录下安装它)
    • 分享
    • 启动
    • 停止
    • 卸载
    • 解除链接
    • 不安全
    • 哪个