phpmon

phpmon

macOS状态栏PHP版本管理工具 支持快速切换和Valet集成

PHP Monitor是一款macOS状态栏应用,可显示和管理当前PHP版本。支持快速切换PHP版本,与Laravel Valet集成,提供配置文件访问、服务重启、域名管理等功能。内置一键修复工具,可解决常见PHP环境问题。适合需要在多个PHP版本间切换的开发者使用。

PHP MonitormacOSLaravel ValetPHP版本管理开发工具Github开源项目

注意 如果这个软件对您有用,我恳请您给这个仓库点个星,这样我就知道这个软件正在被使用。另外,请考虑赞助来支持这个项目,因为这是我在空闲时间制作的。非常感谢! ⭐️

<p align="center"><img src="https://yellow-cdn.veclightyear.com/0a4dffa0/1408c426-a761-46eb-ab34-86bc7ba2ebb9.png" alt="PHP Monitor Logo" width="500px" /></p>

PHP Monitor(又名phpmon)是一款轻量级的macOS实用程序,运行在您的Mac上,并在状态栏显示当前活跃的PHP版本。它与Laravel Valet紧密集成,所以<u>如果您想使用应用的所有功能,需要先安装它</u>(请查阅下方FAQ以了解如何设置您的环境)。

<img src="https://yellow-cdn.veclightyear.com/0a4dffa0/e4dff435-00e3-4b6f-8d8a-89b9b73debfb.jpg" width="1280px" alt="phpmon截图(菜单栏应用)"/>

<small><i>截图:展示PHP Monitor的主要功能。</i></small>

切换不同版本的PHP非常方便。您甚至可以收到通知(当然,只有在您选择允许的情况下)!

<img src="https://yellow-cdn.veclightyear.com/0a4dffa0/57642a1d-014e-4d1d-b167-acbb4ad48eec.png" width="370px" alt="phpmon截图(通知)"/>

PHP Monitor还能让您快速访问各种实用功能(如访问配置文件、重启服务等)。

您还可以添加新域名作为链接,隔离站点,管理各种服务,并执行急救以修复各种常见的PHP链接问题。

🖥 系统要求

PHP Monitor是一个通用应用程序,可在Apple Silicon和基于Intel的Mac上原生运行。

  • 您的用户账户可以管理您的计算机(某些功能需要,如证书生成)
  • macOS 12.4或更高版本(支持Monterey、Ventura和Sonoma)
  • Homebrew安装在默认位置(/usr/local/homebrew/opt/homebrew
  • 已安装Homebrew php公式
  • 可选但推荐:Laravel Valet

从PHP Monitor 6.0开始,您不需要安装Laravel Valet就能使用PHP Monitor。但要访问PHP Monitor的所有功能,建议安装Valet。

更多信息,请查看SECURITY.md以了解当前支持的应用版本。

🚀 如何安装

再次强调,如果您想访问PHP Monitor的所有功能,我建议先安装**Laravel Valet**:

composer global require laravel/valet valet install valet trust

目前,PHP Monitor兼容Laravel Valet v2、v3和v4。这些不同版本的Valet支持略有不同的PHP版本,这就是为什么保留对旧版本的支持。请注意,某些功能在旧版本的Valet中不可用,如站点隔离。

手动安装(推荐,仅首次安装)

完成后,您可以下载最新版本,解压并放置在/Applications中。

通过Homebrew安装

在5.8版本之前,这是安装PHP Monitor的推荐方式。

如果您更喜欢通过Homebrew安装应用,也可以运行以下命令:

brew tap nicoverbruggen/homebrew-cask brew install --cask phpmon

⬆️ 如何更新

将应用更新到最新版本的推荐方法是使用内置更新器

如果您的网络连接很慢,更新器可能会报告下载超时。在这种情况下,您可以手动更新,方法是下载最新版本并将应用放在/Applications中。

(您也可以使用Homebrew更新PHP Monitor,但这需要您在每次安装更新时批准应用。如果您使用内置更新器,则无需这样做。)

⚡️ 启动器(Alfred、Raycast)

如果您想与您选择的启动器集成,您还可以下载与PHP Monitor配合使用的Alfred工作流Raycast扩展

应用必须在后台运行才能使用这些功能,并且在偏好设置中必须启用"允许第三方集成"复选框(默认情况下已启用)。

🔑 应用是否经过签名和公证?

是的,应用已经签名和公证,这意味着您只需在首次启动时(或每次更新时)批准它即可。

👨‍💻 为什么要开发这个应用?

我希望能够一目了然地看到当前链接的PHP版本,并通过一个简单的应用来处理Laravel Valet,而不必每次都使用终端。 最初,我为此制作了一个Alfred工作流——但现在已被这个实用工具取代,它还能很好地一目了然地显示额外信息,如当前PHP版本、内存限制等。

🐘 为什么不使用Laravel Herd?

如果你不需要自定义本地PHP设置,只想要一个简单易用的现成环境来开始编码,Laravel Herd可能已经足够满足许多使用场景。

如果你需要更多的定制和灵活性,我建议你考虑将PHP Monitor与Laravel Valet结合使用,或使用其他解决方案,如Docker(例如与Laravel Sail一起使用)。

🤬 应用无法启动?!

PHP Monitor会执行一些完整性检查,以确保使用应用时有良好的体验。在各种情况下,你会收到提示,告知PHP Monitor无法正常工作。

请按照警告中指定的说明解决任何问题。

(如果应用在启动时崩溃,没有显示这些消息,你可能有非标准的Homebrew和Valet设置。这些情况不受支持。)

🙋‍♂️ 常见问题与故障排除

如果你遇到问题,首先应该做的是安装最新版本的PHP Monitor Laravel Valet。这可以解决多种问题。要升级Valet,请运行 composer global update。升级后别忘了运行 valet install

如果你仍然遇到问题,这里有一些常见问题和答案,以及问题和解决方案:

<details> <summary><strong>支持哪些版本的PHP?</strong></summary>

PHP Monitor支持所有稳定和受支持的PHP版本。然而,根据你安装的Valet版本,可供切换的PHP版本可能会有所不同。

注意 如果你安装了可被PHP Monitor检测到但当前活跃的Valet版本不支持的PHP版本,菜单中会出现一个带有感叹号表情符号的项目来提醒你。(⚠️)

通过PHP Monitor的PHP版本管理器功能可安装的向后移植版本取决于这个tap的可用性。

通过PHP Monitor的PHP扩展管理器功能可安装的PHP扩展取决于这个tap的可用性。

为了与旧版PHP最大兼容,你可能希望继续使用Valet 2或3。欲了解更多信息,请查看SECURITY.md,了解不同版本的Valet支持哪些PHP版本。

</details> <details> <summary><strong>如何安装其他版本的PHP,包括旧版本?</strong></summary>

假设你已安装了php配方,最新的稳定版PHP就会被安装。在撰写本文时,这是PHP 8.3。

你可以通过PHP Monitor的PHP版本管理器安装其他支持的PHP版本。(你也可以手动安装或升级PHP版本,但不推荐这样做。)

请记住,即使通过PHP Monitor的PHP版本管理器安装或更新PHP版本,也可能导致其他所需的配方依赖(保持这些PHP版本功能所需的软件)被升级。这种情况发生时可能不太明显,但如果安装PHP版本花费的时间比预期长,这很可能是原因:通常其他依赖项也在同时安装。

此外,升级一个特定版本的PHP可能也会导致其他已安装的PHP版本在一次操作中被更新,如果该版本的依赖项也适用于其他(较新的)PHP版本。通过Homebrew管理PHP版本有点棘手,即使是PHP Monitor也可能遇到一些困难。

如果你遇到奇怪的情况或故障,请在问题跟踪器上开一个issue并与我联系。我希望不断改进这个过程,使其尽可能地简单可靠。

注意:在管理PHP版本时使用PHP Monitor可能会导致临时别名冲突,因为核心tap别名和tap的别名可能指向不同版本的PHP,但这通常只是一个小麻烦,因为这种情况通常只在新PHP版本发布时出现。

</details> <details> <summary><strong>我希望PHP Monitor在我的Mac启动时自动运行!</strong></summary>

如果你运行的是macOS Ventura或更新版本,在设置菜单中有一个选项可以选择:"在登录时启动PHP Monitor"。

如果你使用的是旧版macOS,你可以通过将PHP Monitor.app拖到系统偏好设置 > 用户与群组中你的账户的登录项部分来实现这一点。

非常方便!

</details> <details> <summary><strong>在独立模式下哪些功能不可用?</strong></summary>

服务管理器被禁用,所有其他明显的Laravel Valet集成(配置查找器、域名列表、修复我的Valet)也被禁用。

(大多数其他功能仍然可用。)

</details> <details> <summary><strong>我想从头开始设置PHP Monitor!我甚至没有安装Homebrew,从哪里开始?</strong></summary>

如果你想第一次在电脑上设置PHP Monitor,以下是我的做法。

我还制作了一个视频教程,可能更容易理解。如果你只想要终端命令,请继续阅读。 首先安装 Homebrew。请先按照那里的说明进行操作!

然后,你需要设置你的 PATH。

nano .zshrc

确保以下行不在注释中:

# 在 Intel Mac 上
export PATH=$HOME/bin:/usr/local/bin:$PATH

如果你使用的是基于 Apple Silicon 的 Mac,你需要添加:

# 在 M1 Mac 上
export PATH=$HOME/bin:/opt/homebrew/bin:$PATH

并在 .zshrc 文件中添加以下内容,但要在 Homebrew PATH 添加之前:

export PATH=$HOME/bin:~/.composer/vendor/bin:$PATH

如果你要添加 composer 和 Homebrew 二进制文件,请确保优先使用 Homebrew 二进制文件,方法是最后添加这些到路径中。在我的系统上,看起来是这样的:

export PATH=$HOME/bin:/usr/local/bin:$PATH
export PATH=$HOME/bin:~/.composer/vendor/bin:$PATH
export PATH=$HOME/bin:/opt/homebrew/bin:$PATH

如果你不是使用 Apple Silicon,应该删除第三行。

安装 phpcomposer 包:

brew install php composer

确保 PHP 链接正确:

which php

应该返回:/usr/local/bin/php(或者如果你使用 Apple Silicon,则返回 /opt/homebrew/bin/php

如果你不需要 Laravel Valet,可以在这里停止。PHP Monitor 将以独立模式工作。

如果你也想使用 Valet,继续使用 Composer 安装 Valet,如下所示:

composer global require laravel/valet

为了获得最佳结果,你应该将全局依赖的 PHP 平台锁定到你打算运行的最旧 PHP 版本。如果该版本是 PHP 7.0,你的 ~/.composer/composer.json 文件可能如下所示(请相应调整版本!):

{
    "require": {
        "laravel/valet": "^3.0",
    },
    "config": {
        "platform": {
            "php": "7.0"
        }
    }
}

再次运行 composer global update。这确保当你切换到不同的全局 PHP 版本时,Valet 不会出问题。如果出现问题,PHP Monitor 会告诉你可以采取什么措施。

然后,安装 Valet:

valet install

这应该会安装 dnsmasq 并设置 Valet。很好,快完成了!

valet trust

最后,运行 PHP Monitor。由于该应用已经公证并使用开发者 ID 签名,它应该可以正常工作。你需要批准应用的初次启动,但之后就可以开始使用了。

<details> <summary><strong>PHP Monitor 多久检查一次更新?</strong></summary>

PHP Monitor 会在每次启动应用时检查是否有可用更新。

你可以通过进入偏好设置(通过菜单栏中的 PHP Monitor 图标)并取消勾选"自动检查更新"来禁用此行为。(你随时可以手动检查更新。)

</details> <details> <summary><strong>我已安装 PHP Monitor,它能正常工作。我想将 PHP 安装升级到最新版本,最好的方法是什么?</strong></summary>

最简单的方法是使用内置的 PHP 版本管理器,它允许你一键升级 PHP 版本。

如果你想手动操作,可以按照以下说明进行。

这里很容易出错,导致 PHP 版本未链接或 PHP Monitor 中缺少版本。

以下是我通常的做法:

  • 打开 PHP Monitor 并选择 急救与服务 > 恢复 Homebrew 权限
  • 弹出窗口告诉你权限已恢复后,关闭 PHP Monitor。
  • 运行 brew update-reset
  • 运行 brew upgrade

如果之后 PHP Monitor 中缺少任何 PHP 版本,请为缺失的版本运行以下命令:

  • 运行 brew uninstall php@x.x(其中 x.x 是版本号)
  • 运行 brew cleanup(如果遇到任何权限问题,你可能需要手动清理文件夹)
  • 运行 brew install php@x.x(其中 x.x 是版本号)

升级后,你可能还需要运行 brew link php

就是这样。现在重新启动 PHP Monitor,一切应该就绪了!

</details> <details> <summary><strong>PHP Monitor 告诉我 `php` 未安装...</strong></summary>

尝试使用 brew install php 重新安装。

这应该能解决问题!如果问题仍然存在,运行 brew link php --force。(之后,你可能需要重启终端以确保新链接的版本被检测到。)

brew install php
brew link php --force
</details> <details> <summary><strong>Valet 站点无法加载。我收到 502 Bad Gateway 错误!</strong></summary>

如果你访问 .test 域名时,在切换到不同的 PHP 版本后收到 502(Bad Gateway)错误,这是一个常见问题。

通常通过升级 Valet 并重新运行 valet install 可以解决此问题。

composer global update
valet install

如果你在大约 30 秒后看到 502(Bad Gateway)错误,你的请求可能已超时。你可能需要解决自己代码中的性能问题。

</details> <details> <summary><strong>PHP Monitor 告诉我我的安装有问题,但我看不出为什么!</strong></summary> PHP Monitor 会告诉你 PHP 安装是否有问题,如果配置在确定版本号时导致警告或错误。

由于 PHP Monitor 通过 Homebrew 更改链接的版本,Valet 和终端(CLI)都应该使用新的 PHP 版本。

但在你的系统上可能并非如此。如果情况不是这样,你可能已经链接了特定版本的 PHP。在这种情况下,你可能需要更改设置 PATH 的 .bashrc 或 .zshrc 文件(取决于你使用的终端)。

你可以通过运行 which php 来确定正在使用的 PHP 版本。

你可以通过运行命令来找出具体原因。在 Intel 上,你可以运行(将 7.4 替换为出问题的版本):

/usr/local/opt/php@7.4/bin/php -r "print phpversion();"

在 Apple Silicon 上,你可以运行(将 7.4 替换为出问题的版本):

/opt/homebrew/opt/php@7.4/bin/php -r "print phpversion();"

你应该在输出中看到错误或警告。

通常这是由重复的扩展声明或无法加载的扩展导致的问题。你需要自己解决这个问题(通常是通过删除有问题的扩展或重新安装)。

隔离站点的选项被禁用了!这是怎么回事?

确保你安装了至少 Valet 3.0 版本,因为对隔离的支持是在这个版本的 Valet 中添加的。(请注意,这个版本的 Valet 不再支持 PHP 5.6。)

其中一个限制(内存限制、最大 POST 大小、最大上传大小)显示感叹号!

你在 .ini 文件中提供的值无效。如果是这种情况,PHP 将尝试将你的值解析为字节,这通常是无意的。(1GB 将解析为仅几个字节,你的所有应用程序都会耗尽内存!)

你必须提供这样的值:1024K、256M、1G。另外,-1 也是允许的,或者只是一个整数(这将导致 N 字节成为限制)。

示例:例如,尝试使用 1GB 作为内存限制将导致这个感叹号。设置 1GB 限制的正确方法是使用 1G 作为值。(注意:显示的值将附加 B 以清晰起见,所以如果你设置 1G,PHP Monitor 报告的值将是 1 GB。)

(如果你使用 Valet,你可以在 .conf.d/php-memory-limits.ini 文件中调整这些限制。否则,你可能需要调整 php.ini。)

我的一个被注释掉的扩展没有被检测到...

应用程序在相关的 .ini 文件中搜索特定模式。对于常规扩展:

  • extension="*.so"
  • ; extension="*.so"

对于 Zend 扩展:

  • zend_extension="*.so"

  • ; zend_extension="*.so"

  • 是通配符和扩展名。如果你已经注释掉了扩展,请确保你用分号(;)注释掉它,并在分号后面加一个空格,以便 PHP Monitor 能够检测到它。

从 v3.4 开始,所有加载的 .ini 文件都被用来确定哪些扩展被启用。

我在 Apple Silicon Mac 上有两个 Homebrew 安装,我可以选择使用哪个安装与 PHP Monitor 一起使用吗?

如果你在 Intel 机器上或在启用 Rosetta 的 Apple Silicon 机器上使用 PHP Monitor,PHP Monitor 期望主要的 Homebrew 二进制文件在 /usr/local/bin/brew。

如果你在没有 Rosetta 的 Apple Silicon 上使用 PHP Monitor,PHP Monitor 期望主要的 Homebrew 二进制文件在 /opt/homebrew/bin/brew。

如果这里有问题,你会在启动时收到警报。

确保你通常运行的 Homebrew 版本与 PHP Monitor 期望的版本相同。例如,如果你使用的是 M1 硬件,但仍在为 Homebrew 使用 Rosetta,你也需要在 Rosetta 下运行 PHP Monitor。

PHP Monitor 是一个通用应用程序,支持两种架构,所以在这里了解如何在 PHP Monitor 中启用 Rosetta。

为什么应用程序在进行网络请求?

应用程序会自动检查更新,这是最可能的原因。

这在启动时发生(除非被禁用),应用程序直接检查托管在 GitHub 上的 Caskfile。这些数据不会,也不会被用于分析(据我所知,也不能)。

我也无法阻止 brew 在 PHP Monitor 使用二进制文件时通过网络做事。

应用程序包含一个互联网访问策略文件,所以如果你使用类似 Little Snitch 的软件,应该有一个描述说明这些调用发生的原因。

如何让各种预设显示出来?

你必须在位于 ~/.config/phpmon/config.json 的 JSON 文件中设置这些预设。

你必须至少设置一个有效的预设,才能让这些预设在 PHP Monitor 中工作。

这是一个有效预设的示例: { "scan_apps": [], "services": [], "presets": [ { "name": "旧项目", "php": "8.0", "extensions": { "xdebug": false }, "configuration": { "memory_limit": "128M", "upload_max_filesize": "128M", "post_max_size": "128M" } } ], "export": {} }

如果您不希望预设切换到特定的PHP版本,可以省略预设中的php键。

警告 您必须重启PHP Monitor才能检测到这些更改。

<details> <summary><strong>如何确保在应用中显示其他Homebrew服务?</strong></summary>

提示 如果您在独立模式下使用Valet,则不会显示Homebrew服务。

您必须在位于~/.config/phpmon/config.json的JSON文件中设置这些服务。

您可以在配置文件中为以您自己的用户身份(非root)运行的Homebrew服务指定自定义服务。

提示 如果您的服务必须以root身份运行,目前无法添加到PHP Monitor。

您可以通过运行brew services list来查看哪些服务可用。

以下是将mailhogmysql服务添加到PHP Monitor的示例:

{ "scan_apps": [], "services": ["mailhog", "mysql"], "presets": [], "export": {} }

警告 您必须重启PHP Monitor才能检测到这些更改。

<details> <summary><strong>如何设置自定义环境变量?</strong></summary>

您必须在位于~/.config/phpmon/config.json的JSON文件中配置这些自定义环境变量。

PHP Monitor使用默认的Shell环境,没有自定义环境变量。您需要手动设置自定义环境变量。这些变量随后用于例如Composer。

以下是一个有效的COMPOSER_HOME环境变量的示例,该变量会被识别:

{ "scan_apps": [], "services": [], "presets": [], "export": { "COMPOSER_HOME": "/absolute/path/to/composer/folder" } }

警告 您必须重启PHP Monitor才能检测到这些更改。

<details> <summary><strong>如何在域名列表的右键菜单中显示各种应用程序?</strong></summary>

当您选择并右键点击一个域名时,您可以使用各种应用程序打开这些目录。这可以帮助加快您的工作流程。但是,要显示这些应用程序,必须首先检测到它们。

支持的应用程序有:<i>PhpStorm、Visual Studio Code、Sublime Text、Sublime Merge、iTerm</i>

所有这些应用程序应该都能被正确检测到,无论它们在系统上的位置如何。如果您可以使用open -a "appname"打开它,那么应该能检测到该应用程序并正常工作。如果您重命名了应用程序,可能会出现检测问题。

要查看检查哪些文件以确定可用性,请参阅此文件

您可以通过创建并编辑~/.config/phpmon/config.json文件来添加自己的应用程序,确保设置scan_apps键:

{ "scan_apps": ["Xcode", "Kraken"] }

您可以在scan_apps数组中放置任意数量的应用程序,PHP Monitor将检查这些应用程序是否存在。您不需要设置完整路径,只需应用程序的名称即可。但并非所有应用程序都支持打开文件夹,所以成功率可能会有所不同。

警告 您必须重启PHP Monitor才能检测到这些更改。

<details> <summary><strong>如何让应用程序与第三方工具(如Alfred或Raycast)集成?</strong></summary>

PHP Monitor默认支持第三方应用程序集成,除非您在首选项中禁用,否则此功能是启用的。

您可以获取官方的Alfred工作流Raycast扩展

如果您想自行集成,只需使用phpmon://协议,并确保在首选项(PHP Monitor中)中启用第三方应用程序集成。

使用应用程序回调,macOS和PHP Monitor允许调用以下内容:

  • phpmon://list
  • phpmon://services/stop
  • phpmon://services/restart/all
  • phpmon://services/restart/nginx
  • phpmon://services/restart/php
  • phpmon://services/restart/dnsmasq
  • phpmon://locate/config
  • phpmon://locate/composer
  • phpmon://locate/valet
  • phpmon://phpinfo
  • phpmon://switch/php/{version}
<details> <summary><strong>应用程序如何知道我的应用需要哪个PHP版本?</strong></summary>

会扫描并解释根文件夹中的composer.json文件(如果存在)。

如果在platform中设置了版本,则优先使用。 如果在platform中未设置版本,但在require中设置了(最常见),则使用该版本。

<details> <summary><strong>站点列表中PHP版本旁边的对勾标记是什么意思?</strong></summary> 如果当前启用的PHP版本与运行网站所需的版本兼容,您会在版本号旁边看到一个勾号。

这是通过评估PHP要求约束(如 ^8.0~8.0 或特定版本: 8.0)来确定的。

PHP Monitor 现在会检查您的 composer.json 文件,试图确定您正在运行的是什么项目。

这种方法比在链接了许多网站时询问驱动程序要快得多,但稍微不太可靠,因为通过 composer.json 推断出的框架或项目类型可能不是 100% 准确。

如有必要,您仍然可以通过命令行询问 Valet。根据我的经验,获取驱动程序会不必要地降低应用程序的速度。

您现在可以使用急救和服务 > 恢复 Homebrew 权限来(暂时)解决此问题,并允许顺利进行 brew upgradebrew cleanup 过程。

如果您想了解更多信息,请查阅这个问题以了解为什么需要这样做。

请联系我并提出问题。PHP Monitor 不应该崩溃...(除非您在应用程序运行时实际删除 PHP,这被认为是正常行为!)

如果您想报告崩溃,请包含相关的日志文件,以便我找出究竟出了什么问题。

要找到日志,请查看 ~/Library/Logs/DiagnosticReports(在访达中),看看是否有以"PHP Monitor"开头的任何(日志)文件。

此外,您可以通过向我发送最近一次 PHP Monitor 会话的详细日志来帮助我获取更多信息。默认情况下,日志记录是禁用的。

您可以通过运行以下命令来启动额外的详细日志记录: touch ~/.config/phpmon/verbose 然后重启 PHP Monitor。您可以在以下位置找到最新的日志: ~/.config/phpmon/last_session.log。请将其附加到相关的错误报告中。

我没有包含任何跟踪或分析软件,所以如果您遇到问题,请通过问题让我知道。

PHP Monitor 完全免费提供,但如果您负担得起,捐赠有助于保持项目的活力和应用程序的维护。

您可以在此存储库顶部找到赞助链接,或者您可以点击此处的链接进入我的赞助页面。

捐赠确实有助于支付 Apple 开发者计划的费用,并激励我在工作时间之外继续维护 PHP Monitor(我确实有一份日常工作!)。

特别感谢:

非常感谢您的贡献、善意的话语和支持。

该应用程序会在后台定期运行 php-config --version,通常是在修改 Homebrew 配置时。使用文件系统监视器来确定 Homebrew 的 bin 目录中是否有任何更改。

PHP Monitor 还会检查您的 .ini 文件中的扩展,并加载有关限制的更多信息(内存限制、POST 限制、上传限制)。另请参阅下面关于配置更改检测的部分。

这个工具会检测您通过 Homebrew 安装的 PHP 版本,然后允许您在它们之间切换。

切换器会禁用所有不属于您想使用的版本的 PHP-FPM 服务,并链接到所需的 PHP 版本。然后,它会重新启动您所需 PHP 版本的 FPM 进程。这些都是并行进行的,所以应该比 Valet 的切换器快一些。

如果您使用的是 Valet 3 或更高版本,保持隔离站点运行所需的 PHP-FPM 版本也将根据需要启动或停止。

PHP Monitor 会监视当前链接的 PHP 版本的相关 conf.d 目录中的文件系统。

每当修改 .ini 文件时,PHP Monitor 将尝试重新加载有关活动 PHP 安装的当前信息。

如果扩展或其他进程在短时间内(< 1 秒)多次写入单个文件,PHP Monitor 将仅在一段时间后(稍有延迟)重新加载活动配置信息。

  1. 站点位置:PHP Monitor 使用 Valet 配置文件来确定需要查看的文件夹。每个文件夹都会被扫描,然后 PHP Monitor 会验证是否存在 composer.json 文件以确定所需的 PHP 版本。

  2. 站点是否安全:通过检查 Valet 的 Certificates 目录下是否存在与该站点名称匹配的证书来确定目录是否已安全。

  3. 项目类型:PHP Monitor 会检查你的 composer.json 文件中的"重要依赖"。例如,如果你的 require 中包含 laravel/framework,那么很可能该项目类型为 Laravel

注意 如果你在文档、桌面或下载文件夹中链接了一个文件夹,你可能需要授予 PHP Monitor 访问这些目录的权限,以确保 PHP Monitor 正常工作。

想了解更多?

如果你想了解更多关于这个工作原理的信息,我建议你查看源代码。

我已尽最大努力注释了尽可能多的内容,并避免使用过于复杂的架构,以保持代码易于维护。代码远非完美(还有很多可以清理的地方!),但应用程序运行良好。

我还为应用程序的一些关键部分编写了一些测试,这些部分我认为需要测试。将来,我希望能为一些 UI 内容添加更多测试,但目前的测试更多是单元测试而非功能测试。

开发者如需更详细的信息,请参阅开发者文档文件

编辑推荐精选

蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

下拉加载更多