참고 이 소프트웨어가 도움이 되었다면 저장소에 별표 를 표시해 주시기 바랍니다. 그러면 해당 소프트웨어가 사용되고 있음을 알 수 있습니다. 또한, 이 프로젝트를 지원하기 위해 후원을 고려해 주세요. 이것은 제가 여가 시간에 만드는 일이기 때문입니다. 감사합니다!
PHP Monitor (또는 phpmon )는 Mac에서 실행되고 상태 표시줄에 활성 PHP 버전을 표시하는 경량 macOS 유틸리티 앱입니다. 이는 Laravel Valet과 긴밀하게 통합되어 있으므로 앱의 모든 기능을 사용하려면 이를 설정해야 합니다(환경 설정 방법에 대한 정보는 아래 FAQ를 참조하세요).
스크린샷: PHP 모니터의 주요 기능을 보여줍니다.
서로 다른 PHP 버전 간에 전환하는 것은 매우 편리합니다. 알림도 받을 수 있습니다(물론 동의한 경우에만)!
또한 PHP Monitor를 사용하면 다양하고 유용한 기능(예: 구성 파일 액세스, 서비스 다시 시작 등)에 빠르게 액세스할 수 있습니다.
또한 새 도메인을 링크로 추가하고, 사이트를 격리하고, 다양한 서비스를 관리하고, 응급 처치를 수행하여 모든 종류의 일반적인 PHP 링크 문제를 해결할 수도 있습니다.
PHP Monitor는 Apple Silicon 및 Intel 기반 Mac에서 기본적으로 실행되는 범용 응용 프로그램입니다.
/usr/local/homebrew
또는 /opt/homebrew
)에 설치됩니다.php
공식이 설치되었습니다.PHP Monitor 6.0부터는 PHP Monitor가 작동하기 위해 Laravel Valet을 설치할 필요가 없습니다. 그러나 PHP Monitor의 모든 기능에 액세스하려면 Valet을 설치하는 것이 좋습니다 .
자세한 내용은 SECURITY.md를 참조하여 현재 지원되는 앱 버전을 알아보세요.
다시 한번 말하지만, PHP Monitor의 모든 기능 에 액세스하려면 먼저 Laravel Valet을 설치하는 것이 좋습니다.
composer global require laravel/valet
valet install
valet trust
현재 PHP 모니터는 Laravel Valet v2, v3 및 v4와 호환됩니다. 이러한 각 Valet 버전은 약간 다른 PHP 버전을 지원하므로 레거시 버전은 계속 지원됩니다. 사이트 격리와 같은 일부 기능은 이전 버전의 Valet에서는 사용할 수 없습니다.
완료되면 최신 릴리스를 다운로드하고 압축을 풀고 /Applications
에 배치할 수 있습니다.
버전 5.8 이전에는 이것이 권장되는 PHP Monitor 설치 방법이었습니다.
Homebrew를 통해 앱을 설치하려는 경우 다음을 실행할 수도 있습니다.
brew tap nicoverbruggen/homebrew-cask
brew install --cask phpmon
앱을 최신 버전으로 업데이트하는 권장 방법은 내장된 업데이트 프로그램을 사용하는 것입니다.
인터넷 연결 속도가 매우 느린 경우 업데이트 프로그램에서 다운로드 시간이 초과되었다고 보고할 수 있습니다. 이 경우 최신 릴리스를 다운로드하고 앱을 /Applications
에 배치하여 수동으로 업데이트할 수 있습니다.
(Homebrew를 사용하여 PHP Monitor를 업데이트할 수도 있지만 업데이트가 설치될 때마다 앱을 승인해야 합니다. 내장 업데이트 프로그램을 사용하는 경우에는 승인이 필요하지 않습니다.)
선택한 런처와 통합하려면 PHP Monitor와 함께 작동하는 Alfred 워크플로 또는 Raycast 확장을 다운로드할 수도 있습니다.
이러한 기능이 작동하려면 앱이 백그라운드에서 실행되고 있어야 하며, 기본 설정에서 타사 통합 허용 확인란을 활성화해야 합니다(기본값).
예, 앱이 서명되고 공증되었습니다. 즉, 첫 번째 실행(또는 업데이트할 때마다)을 승인하기만 하면 됩니다.
어떤 버전의 PHP가 연결되어 있는지 한눈에 확인할 수 있고, 매번 터미널을 다룰 필요 없이 간단한 앱에서 Laravel Valet의 처리를 처리할 수 있기를 원했습니다.
처음에는 이를 위한 Alfred 워크플로가 있었지만 이제는 이 유틸리티로 대체되었습니다. 이 유틸리티는 현재 PHP 버전, 메모리 제한 등과 같은 추가 정보를 한 눈에 표시하는 데도 효과적입니다.
로컬 PHP 설정을 사용자 정의할 필요가 없고 코딩을 시작하기 위해 쉽고 바로 사용할 수 있는 환경을 원한다면 Laravel Herd가 아마도 많은 사용 사례에 충분할 것입니다.
더 많은 사용자 정의 및 유연성이 필요한 경우 Laravel Valet 또는 Docker(예: Laravel Sail 사용)와 같은 다른 솔루션과 함께 PHP Monitor를 고려하는 것이 좋습니다.
PHP Monitor는 앱 사용 시 좋은 경험을 보장하기 위해 몇 가지 무결성 검사를 수행합니다. PHP Monitor가 다양한 시나리오에서 올바르게 작동하지 않는다는 메시지가 표시됩니다.
문제를 해결하려면 경고에 지정된 지침을 따르십시오.
(이러한 메시지가 표시되지 않고 실행 시 앱이 충돌하는 경우 비표준 Homebrew 및 Valet 설정이 있을 수 있습니다. 해당 설정은 지원되지 않습니다.)
문제가 있는 경우 가장 먼저 해야 할 일은 최신 버전의 PHP Monitor 와 Laravel Valet을 설치하는 것입니다. 이를 통해 다양한 문제를 해결할 수 있습니다. Valet을 업그레이드하려면
composer global update
실행하십시오. 업그레이드 후에는valet install
실행하는 것을 잊지 마세요.
여전히 문제가 있는 경우 다음과 같은 몇 가지 일반적인 질문 및 답변과 문제 및 해결 방법을 참조하세요.
안정적이고 지원되는 모든 PHP 버전은 PHP Monitor에서도 지원됩니다. 그러나 설치한 Valet 버전에 따라 전환 목적으로 사용할 수 있는 PHP 버전이 다를 수 있습니다.
참고 PHP Monitor에서 감지할 수 있지만 현재 활성화된 Valet 버전에서는 지원되지 않는 PHP 버전이 설치되어 있는 경우 느낌표 이모티콘이 있는 메뉴 항목으로 경고를 받게 됩니다. (
)
PHP 모니터의 PHP 버전 관리자 기능을 통해 설치할 수 있는 백포트는 이 탭을 통해 사용 가능 여부에 따라 달라질 수 있습니다.
PHP 모니터의 PHP 확장 관리자 기능을 통해 설치할 수 있는 PHP 확장은 이 탭을 통해 사용 가능 여부에 따라 달라질 수 있습니다.
이전 PHP 버전과의 호환성을 최대화하려면 Valet 2 또는 3을 계속 사용하는 것이 좋습니다. 자세한 내용은 SECURITY.md를 참조하여 다양한 Valet 버전에서 지원되는 PHP 버전을 알아보세요.
php
공식을 설치했다고 가정하면 최신 안정 버전의 PHP가 설치됩니다. 이 글을 쓰는 시점에서는 PHP 8.3입니다.
PHP 모니터의 PHP 버전 관리자를 통해 지원되는 다른 PHP 버전을 설치할 수 있습니다. (PHP 버전을 수동으로 설치하거나 업그레이드할 수도 있지만 권장되지 않습니다.)
PHP 모니터의 PHP 버전 관리자를 통해 수행하더라도 PHP 버전을 설치하거나 업데이트하면 기타 필수 수식 종속성(PHP 버전의 기능을 유지하는 데 필요한 필수 소프트웨어)이 업그레이드될 수 있다는 점을 명심하십시오. 이런 일이 발생하면 매우 투명하지 않을 수 있지만 PHP 버전 설치가 예상보다 오래 걸리는 경우 원인일 수 있습니다. 일반적으로 다른 종속성도 설치됩니다.
또한 특정 버전의 PHP를 업그레이드하면 해당 버전에 대한 종속성이 다른(최신) PHP 버전에도 적용되는 경우 설치된 다른 PHP 버전 도 한꺼번에 업데이트될 수 있습니다. Homebrew를 통해 PHP 버전을 관리하는 것은 약간 까다로우며, 심지어 PHP Monitor도 약간의 어려움을 겪을 수 있습니다.
이상한 시나리오나 오작동이 발생하는 경우 이슈 트래커에서 이슈를 열고 연락해 주세요. 저는 이 프로세스를 최대한 완벽하게 만들기 위해 계속해서 개선하고 싶습니다.
참고 : PHP 버전을 관리할 때 PHP 모니터를 사용하면 코어 탭 별칭과 탭의 별칭이 다른 버전의 PHP를 참조하는 동안 임시 별칭 충돌이 발생할 수 있습니다. 그러나 이는 일반적으로 새 PHP 버전일 때만 적용되므로 이는 일반적으로 사소한 불편함을 의미합니다. 릴리스.
macOS Ventura 이상을 실행하는 경우 설정 메뉴에 "로그인 시 PHP 모니터 시작"을 선택할 수 있는 옵션이 있습니다.
이전 버전의 macOS를 사용하는 경우 PHP Monitor.app을 계정의 시스템 환경설정 > 사용자 및 그룹 에 있는 로그인 항목 섹션으로 끌어서 이 작업을 수행할 수 있습니다.
매우 편리합니다!
서비스 관리자가 비활성화되고 기타 모든 명백한 Laravel Valet 통합(구성 찾기, 도메인 목록, Fix My Valet)도 비활성화됩니다.
(대부분의 다른 기능은 계속 사용할 수 있습니다.)
PHP Monitor를 사용하여 처음으로 컴퓨터를 설정하려는 경우 다음 방법을 따르세요.
또한 따라하기 더 쉬울 수 있는 비디오 튜토리얼도 만들었습니다. 터미널 명령만 원한다면 계속 읽으세요.
먼저 홈브루를 설치하세요. 먼저 거기의 지시를 따르세요!
그런 다음 PATH를 설정해야 합니다.
nano .zshrc
주석에 다음 줄이 없는지 확인하십시오.
# on an Intel Mac
export PATH=$HOME/bin:/usr/local/bin:$PATH
Apple Silicon 기반 Mac을 사용하는 경우 다음을 추가해야 합니다.
# on an M1 Mac
export PATH=$HOME/bin:/opt/homebrew/bin:$PATH
.zshrc
파일에 다음을 추가하되, 홈브류 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이 아닌 경우 세 번째 줄을 제거해야 합니다.
php
와 composer
수식을 설치합니다.
brew install php composer
PHP가 올바르게 연결되었는지 확인하세요.
which php
다음을 반환해야 합니다: /usr/local/bin/php
(또는 Apple Silicon을 사용하는 경우 /opt/homebrew/bin/php
)
Laravel Valet이 필요하지 않은 경우 여기에서 중지할 수 있습니다. PHP 모니터는 독립형 모드에서 이와 같이 작동합니다.
Valet도 사용하려면 다음과 같이 계속해서 Valet with Composer를 설치하세요.
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 모니터를 실행하세요. 앱이 공증되고 개발자 ID로 서명되었으므로 작동해야 합니다. 앱의 초기 실행을 승인해야 하지만 지금은 시작할 준비가 되어 있습니다.
PHP 모니터는 앱을 시작할 때마다 업데이트가 가능한지 확인합니다.
메뉴 표시줄의 PHP 모니터 아이콘을 통해 기본 설정으로 이동하여 "업데이트 자동 확인"을 선택 취소하여 이 동작을 비활성화할 수 있습니다. (언제든지 수동으로 업데이트를 확인할 수 있습니다.)
가장 쉬운 방법은 내장된 PHP 버전 관리자를 사용하는 것입니다. 이를 통해 한 번의 클릭으로 PHP 버전을 업그레이드할 수 있습니다.
이 작업을 수동으로 수행하려면 아래 지침을 따르십시오.
여기에서 실수를 저지르기 쉽고 연결되지 않은 PHP 버전이 나타나거나 PHP Monitor에서 버전이 누락되기 쉽습니다.
내가 보통 하는 일은 다음과 같습니다.
brew update-reset
실행brew upgrade
실행이후 PHP 모니터에 PHP 버전이 누락된 경우 누락된 버전에 대해 다음을 실행하십시오.
brew uninstall php@xx
실행( xx
는 버전)brew cleanup
실행(권한 문제가 있는 경우 폴더를 수동으로 정리해야 할 수도 있음)brew install php@xx
실행( xx
는 버전) 업그레이드 후에도 여전히 brew link php
실행해야 할 수도 있습니다.
그게 다야. 이제 PHP Monitor를 다시 시작하면 금상첨화일 것입니다!
brew install php
사용하여 다시 설치해 보세요.
이렇게 하면 문제가 해결됩니다! 그래도 문제가 해결되지 않으면 brew link php --force
실행하세요. (나중에 링크된 새 버전이 감지되는지 확인하려면 터미널을 다시 시작해야 할 수도 있습니다.)
brew install php
brew link php --force
.test
도메인을 방문하고 다른 PHP 버전으로 전환한 후 502(잘못된 게이트웨이)가 표시된다면 일반적인 문제를 처리하고 있는 것입니다.
이 문제는 일반적으로 Valet을 업그레이드하고 valet install
다시 실행하면 해결됩니다.
composer global update
valet install
약 30초 후에 502(잘못된 게이트웨이) 오류가 표시되면 요청 시간이 초과되었을 가능성이 높습니다. 자신의 코드로 성능 문제를 해결해야 할 수도 있습니다.
버전 번호를 확인할 때 구성으로 인해 경고나 오류가 발생하는 경우 PHP 모니터는 PHP 설치가 중단되었음을 알려줍니다.
PHP Monitor는 Homebrew를 통해 연결된 버전을 변경하므로 Valet 과 터미널(CLI) 모두 새로운 PHP 버전을 사용해야 합니다.
그러나 시스템에서는 그렇지 않을 수도 있습니다. 그렇지 않은 경우 특정 버전의 PHP가 연결되어 있을 수 있습니다. 이 경우 PATH가 설정된 .bashrc
또는 .zshrc
파일을 변경해야 할 수도 있습니다(사용하는 터미널에 따라 다름).
which php
실행하면 어떤 버전의 PHP가 사용되고 있는지 확인할 수 있습니다.
명령을 실행하면 문제의 정확한 원인을 확인할 수 있습니다. Intel에서는 다음을 실행할 수 있습니다( 7.4
손상된 버전으로 교체).
/usr/local/opt/[email protected]/bin/php -r "print phpversion();"
Apple Silicon에서는 다음을 실행할 수 있습니다( 7.4
손상된 버전으로 교체).
/opt/homebrew/opt/[email protected]/bin/php -r "print phpversion();"
여기 출력에 오류나 경고가 표시되어야 합니다.
일반적으로 이는 문제를 일으키는 중복 확장 선언이거나 로드할 수 없는 확장입니다. 해당 문제는 사용자가 직접 해결해야 합니다(일반적으로 문제가 되는 확장 프로그램을 제거하거나 다시 설치하여).
이 Valet 버전에는 격리 지원이 추가되었으므로 최소한 Valet 3.0이 설치되어 있는지 확인하십시오. (이 Valet 버전은 PHP 5.6에 대한 지원을 중단합니다.)
.ini
파일에 제공한 값이 잘못되었습니다. 그러한 경우, PHP는 일반적으로 의도하지 않은 값을 바이트로 구문 분석하려고 시도합니다. ( 1GB
단지 몇 바이트로 해석되며 모든 응용 프로그램의 메모리가 부족해집니다!)
1024K
, 256M
, 1G
와 같은 값을 제공해야 합니다. 또는 -1
도 허용되거나 정수만 허용됩니다(이로 인해 N 바이트가 제한됩니다).
예 : 예를 들어 메모리 제한으로 1GB
사용하려고 하면 이 느낌표가 표시됩니다. 1GB 제한을 설정하는 올바른 방법은 1G
값으로 사용하는 것입니다. (참고: 명확성을 위해 표시된 값에는 B
추가되므로 1G
설정하면 PHP 모니터에서 보고하는 값은 1GB가 됩니다.)
(Valet을 사용하는 경우 .conf.d/php-memory-limits.ini
파일에서 이러한 제한을 조정할 수 있습니다. 그렇지 않으면 php.ini
조정해야 할 수도 있습니다.)
앱은 관련 .ini
파일에서 특정 패턴을 검색합니다. 일반 확장의 경우:
extension="*.so"
; extension="*.so"
Zend 확장의 경우:
zend_extension="*.so"
; zend_extension="*.so"
*
는 와일드카드이며 확장명 이름입니다. 확장명을 주석 처리한 경우 PHP 모니터가 이를 감지할 수 있도록 세미콜론(;)과 세미콜론 뒤에 단일 공백을 사용하여 주석 처리했는지 확인하십시오.
v3.4부터 로드된 모든 .ini 파일은 활성화된 확장을 결정하기 위해 소스로 제공됩니다.
Intel 시스템이나 Rosetta가 활성화된 Apple Silicon 시스템에서 PHP 모니터를 사용하는 경우 PHP 모니터는 /usr/local/bin/brew
에 기본 Homebrew 바이너리가 있을 것으로 예상합니다.
Rosetta 없이 Apple Silicon에서 PHP 모니터를 사용하는 경우 PHP 모니터는 /opt/homebrew/bin/brew
에 기본 Homebrew 바이너리가 있을 것으로 예상합니다.
여기에 문제가 있으면 실행 시 경고가 표시됩니다.
정상적으로 실행 중인 Homebrew 버전이 PHP Monitor에서 예상하는 버전과 동일한지 확인하세요. 예를 들어 M1 하드웨어를 사용하고 있지만 여전히 Homebrew용 Rosetta를 사용하는 경우 Rosetta에서도 PHP Monitor를 실행해야 합니다.
PHP Monitor는 범용 앱이며 두 아키텍처를 모두 지원하므로 여기에서 PHP Monitor로 Rosetta를 활성화하는 방법을 알아보세요.
앱은 가장 가능성이 높은 업데이트를 자동으로 확인합니다.
이는 실행 시 발생하며(비활성화되지 않은 경우) 앱은 GitHub에 호스팅된 Caskfile을 직접 확인합니다. 이 데이터는 분석에 사용되지 않으며 앞으로도 사용되지 않을 것입니다(그리고 제가 아는 한 사용할 수 없습니다).
또한 PHP 모니터가 바이너리를 사용할 때 brew
네트워크를 통해 작업을 수행하는 것을 막을 수 없습니다.
앱에는 인터넷 액세스 정책 파일이 포함되어 있으므로 Little Snitch와 같은 것을 사용하는 경우 이러한 호출이 발생하는 이유에 대한 설명이 있어야 합니다.
~/.config/phpmon/config.json
에 있는 JSON 파일에서 이러한 사전 설정을 설정해야 합니다.
이 사전 설정이 PHP 모니터에서 작동하려면 유효한 사전 설정을 하나 이상 설정해야 합니다.
다음은 작동하는 사전 설정의 예입니다.
{ "스캔_앱": [], "서비스": [], "사전 설정": [ { "name": "레거시 프로젝트", "php": "8.0", "확장자": { "xdebug": 거짓 }, "구성": { "memory_limit": "128M", "upload_max_filesize": "128M", "post_max_size": "128M" } } ], "내보내다": {} }
사전 설정이 특정 PHP 버전으로 전환되는 것을 원하지 않는 경우 사전 설정에서 php
키를 생략할 수 있습니다.
경고 이러한 변경 사항을 감지하려면 PHP Monitor를 다시 시작해야 합니다.
정보 독립 실행형 모드에서 Valet을 사용하는 경우 Homebrew 서비스가 표시되지 않습니다.
~/.config/phpmon/config.json
에 있는 JSON 파일에서 이러한 서비스를 설정해야 합니다.
루트가 아닌 자신의 사용자로 실행되는 Homebrew 서비스에 대한 구성 파일에서 사용자 정의 서비스를 지정할 수 있습니다.
정보 서비스를 루트로 실행해야 하는 경우 현재는 PHP Monitor에 추가할 수 없습니다.
brew services list
실행하여 사용 가능한 서비스를 확인할 수 있습니다.
다음은 PHP Monitor에 mailhog
및 mysql
서비스를 추가하는 예입니다.
{ "스캔_앱": [], "서비스": ["mailhog", "mysql"], "사전 설정": [], "내보내다": {} }
경고 이러한 변경 사항을 감지하려면 PHP Monitor를 다시 시작해야 합니다.
~/.config/phpmon/config.json
에 있는 JSON 파일에서 이러한 사용자 정의 환경 변수를 구성해야 합니다.
PHP 모니터는 사용자 정의 환경 변수 없이 기본 셸 환경을 사용합니다. 사용자 정의 환경 변수를 수동으로 설정해야 합니다. 그런 다음 Composer 등에 사용됩니다.
다음은 존중되는 작동하는 COMPOSER_HOME
환경 변수의 예입니다.
{ "스캔_앱": [], "서비스": [], "사전 설정": [], "내보내다": { "COMPOSER_HOME": "/절대/경로/to/composer/폴더" } }
경고 이러한 변경 사항을 감지하려면 PHP Monitor를 다시 시작해야 합니다.
도메인을 선택하고 마우스 오른쪽 버튼으로 클릭하면 다양한 애플리케이션으로 해당 디렉터리를 열 수 있습니다. 이렇게 하면 작업 흐름 속도를 높이는 데 도움이 될 수 있습니다. 그러나 이러한 앱이 표시되려면 먼저 감지되어야 합니다.
지원되는 앱은 PhpStorm, Visual Studio Code, Sublime Text, Sublime Merge, iTerm 입니다.
이러한 모든 앱은 시스템의 위치에 관계없이 올바르게 감지되어야 합니다. open -a "appname"
사용하여 열 수 있으면 앱이 감지되어 작동해야 합니다. 앱 이름을 바꾼 경우 앱을 감지하는 데 문제가 있을 수 있습니다.
가용성을 결정하기 위해 검사되는 파일을 보려면 이 파일을 참조하세요.
~/.config/phpmon/config.json
파일을 생성 및 편집하여 자신만의 앱을 추가할 수 있으며, scan_apps
키가 설정되어 있는지 확인하세요.
{ "scan_apps": ["Xcode", "크라켄"] }
scan_apps
배열에 원하는 만큼 많은 앱을 넣을 수 있으며, PHP 모니터는 이러한 앱이 있는지 확인합니다. 전체 경로를 설정할 필요는 없으며 앱 이름만 작동하면 됩니다. 그러나 모든 앱이 폴더 열기를 지원하는 것은 아니므로 성공 여부는 달라질 수 있습니다.
경고 이러한 변경 사항을 감지하려면 PHP Monitor를 다시 시작해야 합니다.
PHP Monitor는 기본적으로 타사 앱 통합을 지원하며 이 기능은 비활성화하지 않는 한 기본 설정에서 활성화됩니다.
공식 Alfred 워크플로우 또는 Raycast 확장을 얻을 수 있습니다.
무언가를 직접 통합하려면 phpmon://
프로토콜을 사용하고 기본 설정(PHP 모니터)에서 타사 앱 통합이 활성화되어 있는지 확인하기만 하면 됩니다.
앱 콜백을 사용하면 macOS 및 PHP Monitor에서 다음을 호출할 수 있습니다.
폴더 루트(존재하는 경우)에 있는 composer.json
파일이 스캔되고 해석됩니다.
버전이 platform
에 설정된 경우 우선순위를 갖습니다. 버전이 platform
에 설정되어 있지 않지만 require
(가장 일반적)인 경우 해당 버전이 사용됩니다.
현재 활성화된 PHP 버전이 사이트를 실행하는 데 필요한 버전과 호환되는 경우 버전 번호 옆에 확인 표시가 나타납니다.
이는 PHP 요구 사항 제약 조건(예 ^8.0
, ~8.0
또는 특정 버전: 8.0
)을 평가하여 결정됩니다.
PHP 모니터는 현재 귀하의 composer.json
파일을 확인하여 귀하가 실행 중인 프로젝트가 무엇인지 파악하려고 시도합니다.
이 접근 방식은 연결된 사이트가 많을 때 드라이버를 요청하는 것보다 훨씬 빠르지만, composer.json
통해 유추된 프레임워크나 프로젝트 유형이 100% 정확하지 않을 수 있으므로 안정성이 약간 떨어집니다.
필요한 경우 언제든지 명령줄을 사용하여 Valet에게 요청할 수 있습니다. 내 경험상 드라이버를 가져오는 동안 앱 속도가 불필요하게 느려졌습니다.
이제 응급 처치 및 서비스 > 홈브루 권한 복원을 사용하여 이 문제를 (일시적으로) 해결하고 깨끗하고 고통 없는 brew upgrade
또는 brew cleanup
프로세스를 허용할 수 있습니다.
더 자세히 알고 싶다면 이 문제를 참조하여 이것이 필요한 이유에 대한 자세한 내용을 알아보세요.
연락하셔서 이슈를 열어주세요. PHP 모니터는 충돌해서는 안 됩니다... (앱이 실행되는 동안 실제로 PHP를 제거하지 않는 한 이는 정상적인 동작으로 간주됩니다!)
충돌을 보고하려면 정확히 무엇이 잘못되었는지 알아낼 수 있도록 관련 로그 파일을 포함해 주세요.
로그를 찾으려면 ~/Library/Logs/DiagnosticReports
(Finder에서)를 살펴보고 "PHP Monitor"로 시작하는 (로그) 파일이 있는지 확인하세요.
또한 최신 PHP 모니터 세션에 대한 자세한 로그를 보내주시면 더 많은 정보를 파악하는 데 도움이 될 수 있습니다. 기본적으로 로깅은 비활성화되어 있습니다.
touch ~/.config/phpmon/verbose
하고 PHP Monitor를 다시 시작하여 추가 상세 로깅을 시작할 수 있습니다. ~/.config/phpmon/last_session.log
에서 최신 로그인을 찾을 수 있습니다. 해당 버그 리포트에 첨부해주세요.
추적 또는 분석 소프트웨어는 포함되어 있지 않으므로 문제가 발생하면 문제를 통해 알려주십시오.
PHP Monitor는 완전히 무료로 사용할 수 있지만, 여유가 있는 경우 기부하면 프로젝트를 유지하고 앱을 유지하는 데 도움이 됩니다.
이 저장소 상단에서 스폰서 링크를 찾거나 여기 링크를 클릭하여 내 스폰서십 페이지로 이동할 수 있습니다.
기부는 Apple 개발자 프로그램 비용에 큰 도움이 되며 업무 시간 외에 PHP 모니터를 계속 작업할 수 있는 동기를 부여해 줍니다(저도 본업을 하고 있습니다!).
특별한 감사를 드립니다:
여러분의 기여와 친절한 말, 지원에 진심으로 감사드립니다.
이 앱은 일반적으로 Homebrew 구성이 수정될 때마다 백그라운드에서 php-config --version
주기적으로 실행합니다. 파일 시스템 감시자는 Homebrew의 bin
디렉터리에 변경 사항이 있는지 확인하는 데 사용됩니다.
PHP 모니터는 또한 .ini
파일에 확장이 있는지 확인하고 제한(메모리 제한, POST 제한, 업로드 제한)에 대한 추가 정보를 로드합니다. 아래의 구성 변경 감지 섹션도 참조하세요.
이 유틸리티는 Homebrew를 통해 설치된 PHP 버전을 감지한 다음 버전 간에 전환할 수 있도록 해줍니다.
전환기는 사용하려는 버전에 속하지 않는 모든 PHP-FPM 서비스를 비활성화하고 원하는 PHP 버전을 연결합니다. 그런 다음 원하는 PHP 버전의 FPM 프로세스가 다시 시작됩니다. 이 모든 작업은 병렬로 발생하므로 Valet의 스위처보다 약간 더 빠릅니다.
Valet 3 이상을 사용하는 경우 격리된 사이트를 유지하고 실행하는 데 필요한 PHP-FPM 버전도 필요에 따라 시작되거나 중지됩니다.
PHP 모니터는 현재 링크된 PHP 버전에 대해 관련 conf.d
디렉토리의 파일 시스템을 감시합니다.
.ini 파일이 수정될 때마다 PHP 모니터는 활성 PHP 설치에 대한 현재 정보를 다시 로드하려고 시도합니다.
확장 프로그램이나 다른 프로세스가 짧은 시간(< 1초) 동안 단일 파일에 여러 번 쓰는 경우, PHP Monitor는 잠시 후에(약간 지연됨) 활성 구성 정보를 다시 로드합니다.
Certificates
디렉터리에 일치하는 인증서가 있는지 확인하여 결정됩니다.composer.json
파일에서 "주목할만한 종속성"을 확인합니다. require
에 laravel/framework
있다면 결국 프로젝트 유형이 Laravel
일 가능성이 높습니다.참고 문서, 데스크탑 또는 다운로드의 폴더를 연결한 경우 PHP 모니터가 올바르게 작동하려면 해당 디렉토리에 대한 PHP 모니터 액세스 권한을 부여해야 할 수도 있습니다.
이것이 어떻게 작동하는지 더 알고 싶다면 소스 코드를 확인하는 것이 좋습니다.
나는 가능한 한 인간적으로 주석을 달기 위해 최선을 다했고, 코드를 유지하기 쉽게 유지하기 위해 지나치게 복잡한 아키텍처를 사용하는 것을 피했습니다. 장기적으로 봤을 때 코드가 완벽하지는 않지만(여전히 많은 정리 작업이 발생할 수 있습니다!) 애플리케이션은 잘 작동합니다.
또한 테스트가 필요하다고 생각되는 애플리케이션의 주요 부분에 대한 몇 가지 테스트도 있습니다. 앞으로는 일부 UI 관련 테스트를 더 추가하고 싶지만 현재 테스트는 기능 테스트보다 단위 테스트에 가깝습니다.
개발자를 위한 자세한 내용은 개발자용 설명서 파일을 참조하세요.