NGINX 및 PHP 서비스의 조합을 구성하기 위해 MacOS를 사용하여 PHP NGINX 환경을 구축하는 방법
MAC 환경 구조에서 홈 브루의 핵심 역할은 소프트웨어 설치 및 관리를 단순화하는 것입니다. 1. 홈브리는 종속성을 자동으로 처리하고 복잡한 편집 및 설치 프로세스를 간단한 명령으로 캡슐화합니다. 2. 소프트웨어 설치 위치 및 구성의 표준화를 보장하기 위해 통합 소프트웨어 패키지 생태계를 제공합니다. 3. 서비스 관리 기능을 통합하고 Brew 서비스를 통해 서비스를 쉽게 시작하고 중지 할 수 있습니다. 4. 편리한 소프트웨어 업그레이드 및 유지 관리 및 시스템 보안 및 기능을 향상시킵니다.
Mac에서 PHP Nginx 환경을 구축하는 것은 실제로 강력한 패키지 관리자 인 Homebrew를 사용하여 Nginx를 웹 서버로 설치하고 구성하고 동시에 PHP-FPM (PHP FASTCGI 프로세스 관리자) PROPP 스크립트를 제공하는 것입니다. 두 사람은 FastCGI 프로토콜을 통해 함께 작동합니다. 이 조합은 지역 개발 환경에 효율적이고 유연합니다.

솔루션에 대해 이야기하기 위해 이것은 아마도 아이디어 일 것입니다.
먼저 Mac에 Mac 개발자의 스위스 육군 나이프 인 Homebrew가 있는지 확인해야합니다. 그렇지 않은 경우 터미널에서 문장을 실행하십시오 : /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
를 설치하면 Nginx 및 PHP를 초대하여 정착하기 시작합니다.

Nginx 설치 : brew install nginx
명령을 설치하면 Nginx가 시스템에 순종적으로 누워 있습니다. 기본 구성 파일 경로는 일반적으로 /usr/local/etc/nginx/nginx.conf
입니다.
PHP 설치 (프로젝트 요구 사항에 따라 PHP 8.2 또는 8.3과 같은 최신 안정 버전을 설치하는 데 사용됩니다) : brew install php
또는 특정 버전이 필요한 경우 : brew install php@8.2
설치가 완료된 후에는 /usr/local/etc/php/8.2/php-fpm.d/www.conf
가 PHP-FPM 구성 파일이 어디에 있는지 알려줍니다. PHP 버전에 따라 다릅니다).

nginx 구성이 핵심입니다. nginx.conf
편집해야합니다. http
블록에서 server
블록을 찾거나 새로운 블록을 직접 작성하십시오. 일반적인 구성은 다음과 같습니다.
http { # ... 기타 구성 ... 서버 { 8080; # 또는 System Server_name LocalHost의 다른 서비스와의 충돌을 피하려는 포트; # 또는 로컬 도메인 이름 루트/사용자/your_username/sites; # 웹 사이트 파일을 저장하는 디렉토리입니다. 자체 PATH INDEX.PHP Index.html Index.htm으로 교체해야합니다. 위치 / { try_files $ uri $ uri / / index.php?$ query_string; } # 이것은 핵심 부분입니다. Nginx가 PHP-FPM에 PHP 요청을 전달하십시오. 위치 ~ \ .php $ { # 파일이 존재하는지 확인하고 존재하지 않는 PHP 파일의 nginx 처리를 피하십시오. try_files $ uri = 404; # FastCGI 서버 주소, 일반적으로 PHP-FPM의 기본 소켓 FASTCGI_PASS 127.0.0.1:9000; # 또는 unix : /usr/local/var/run/php-fpm.sock # FASTCGI 매개 변수를 소개합니다. FASTCGI_PARAMS; # php-fpm에 script_filename을 set script_filename은 현재 실행 된 스크립트 경로를 fastcgi_param script_filename $ document_root $ fastcgi_script_name; # nginx가 http 인증 헤더를 전달하도록 허용 FastCGI_PARAM PATH_INFO $ FASTCGI_PATH_INFO; } # 민감한 정보 유출 위치를 방지하기 위해 .ht* 파일 ~ /\ .ht { 모든 것을 거부합니다. } } }
fastcgi_pass
라인에 유의하십시오. PHP-FPM이 기본적으로 TCP 포트 9000에 리스닝되면 127.0.0.1:9000
사용하십시오. UNIX 소켓에 장려하면 경로는 /usr/local/var/run/php-fpm.sock
과 같습니다 (이 경로는 Php-fpm www.conf
에서 찾을 수 있습니다). 나는 개인적으로 성능이 약간 높아지고 포트 충돌 가능성을 피하는 Unix 소켓을 사용하는 것을 선호합니다.
PHP-FPM 구성의 경우 일반적으로 너무 많이 움직일 필요가 없습니다. www.conf
의 listen
매개 변수가 Nginx 구성에서 fastcgi_pass
의 주소와 일치하는지 확인하십시오. 기본 Homebrew로 설치된 PHP-FPM은 일반적으로 이미 구성되어 있습니다.
서비스 시작 : 시작 Nginx : brew services start nginx
시작 PHP-FPM : brew services start php
(또는 brew services start php@8.2
설치 한 버전에 해당).
테스트 : <?php phpinfo(); ?>
의 내용과 함께 웹 사이트의 루트 디렉토리 (예 : /Users/your_username/Sites
)에서 index.php
파일을 만듭니다. <?php phpinfo(); ?>
. 그런 다음 브라우저를 열면 http://localhost:8080/index.php
(또는 구성 한 포트 및 도메인 이름)를 방문하십시오. 친숙한 PHP 정보 페이지가 보이면 축하합니다. 환경이 준비되었습니다.
MAC 환경 구축에서 홈브류의 핵심 역할은 무엇입니까?
Mac의 개발 환경과 관련하여 Homebrew는 실제로 사람들이 사랑과 증오를 만들지 만 사랑에 관한 것입니다. 핵심 기능은 수동으로 다운로드, 컴파일 및 구성해야 할 소프트웨어를 간단한 명령 줄로 전환하는 것입니다. Homebrew가 없으면 Nginx를 설치하려면 공식 웹 사이트에서 소스 코드를 다운로드하여 압축을 풀고 ./configure
, make
, make install
해야한다고 상상해보십시오. 과정에서 다양한 종속성 문제가 발생하고 머리가 너무 큽니다. Homebrew는 매우 부지런한 집사와 같습니다.이 모든 지루한 작업을 도와줍니다.
가장 좋은 점은 통합적이고 관리하기 쉬운 소프트웨어 패키지 생태계를 제공한다는 것입니다. 무엇을 설치하고 싶습니까? brew install
모든 종속성을 처리하고 올바른 위치에 설치하는 데 도움이되며 일반적으로 Nginx 및 PHP-FPM과 같은 시작 스크립트를 구성하는 데 도움이되며 brew services start
수 있습니다. 이 편의성은 단순히 개발자가 생산성을 향상시키는 강력한 도구입니다. 그것은 Mac의 명령 줄 환경을보다 친절하고 강력하게 만들어 환경 구성의 quagmire보다는 코드 자체에 더 집중할 수있게합니다. 또한 소프트웨어를 업그레이드하는 것도 간단하고 brew upgrade
이며 Homebrew를 통해 설치된 모든 소프트웨어는 최신 상태로 유지 될 수 있으며 이는 보안 및 기능 측면에서 매우 유리합니다.
Nginx는 PHP-FPM과 어떻게 작동합니까?
NGINX와 PHP-FPM 간의 협업은 전체 PHP 웹 서비스 아키텍처에서 매우 절묘한 디자인입니다. 간단히 말해서, Nginx는 "외관"이며 Php-FPM은 "무대 뒤"입니다.
사용자가 http://localhost:8080/index.php
와 같은 브라우저에서 URL을 입력하면 요청이 먼저 nginx에 도달합니다. Nginx는 효율적인 정적 파일 서버입니다. 그림, CSS 및 JS와 같은 정적 리소스를 요청하면 파일 시스템에서 직접 읽히고 매우 빠른 속도로 브라우저로 돌아갑니다. 그러나 요청 된 .php
파일이라면 Nginx는이 문제 자체를 처리 할 수 없다는 것을 알게되며 처리하려면 PHP가 필요합니다.
현재 NGINX는 PHP 코드를 직접 실행하지 않지만 "전달자"의 역할을 수행합니다. FASTCGI 프로토콜을 통해이 PHP 요청을 PHP-FPM으로 전달합니다. PHP-FPM은 하나 이상의 PHP 통역 프로세스 풀을 유지하는 PHP의 프로세스 관리자입니다. NGINX가 요청을 던지면 PHP-FPM은 프로세스 풀에서 유휴 PHP 프로세스를 찾아 요청을 처리합니다. 이 PHP 프로세스가 요청을 받으면 해당 .php
파일을 구문 분석하고 내부에서 PHP 코드를 실행하며 데이터베이스, 프로세스 비즈니스 로직 등에 연결할 수 있습니다.
PHP 코드가 실행되면 PHP-FPM은 FASTCGI 프로토콜을 통해 실행 결과 (일반적으로 HTML, JSON 또는 기타 데이터)를 NGINX로 반환합니다. Nginx 가이 결과를 얻은 후 마침내 사용자의 브라우저로 보냅니다.
이 분리 설계의 이점은 분명합니다. Nginx는 HTTP 요청 및 정적 파일을 효율적으로 처리하는 데 중점을 두는 반면 PHP-FPM은 PHP 코드를 구문 분석하고 실행하는 데 중점을 둡니다. 둘 다 자신의 의무를 수행하고 서로를 방해하지 않으며 전체 시스템의 안정성과 성능을 크게 향상시킵니다. 예를 들어, PHP 프로세스가 충돌하더라도 Nginx는 여전히 정상적으로 실행될 수 있지만 PHP 요청을 처리 할 수 없으므로 전체 웹 서비스가 다운되지 않습니다.
MAC 환경의 공통 NGINX 및 PHP 구성 트랩 및 솔루션
Mac에서 Nginx 및 PHP 구성을 구성하는 것은 Homebrew가 프로세스를 크게 단순화했지만 여전히 일부 장소에서 갇히기가 쉽습니다. 나는 개인적으로 많은 사람들이 만났다. 요약하면, 몇 가지 일반적인 트랩과 해당 솔루션이있을 수 있습니다.
1. 포트 충돌 문제 : Nginx는 기본적으로 포트 80을 듣지 만 Mac에 이미 APACHE (MACOS를 사용하여 COMED) 또는 기타 서비스가 포트 80을 차지하고있는 경우 NGINX가 시작되지 않습니다.
- 솔루션 : 가장 직접적인 방법은 NGINX 구성을 수정하여 8080, 8000 또는 8888과 같은 드물게 사용되는 포트를 듣도록하는 것입니다.
nginx.conf
의server
블록에서listen
명령을 수정하십시오. 또는 Apache가 필요하지 않다고 확신하면 비활성화 할 수 있습니다.sudo apachectl stop
.
2. 파일 권한 문제 : NGINX 또는 PHP-FPM에서 웹 사이트 파일을 읽을 수 없거나 PHP는 로그 또는 캐시 파일에 쓸 수 없습니다. 사용자 권한과 파일 시스템 권한이 미묘하기 때문에 이는 특히 Mac에서 일반적입니다.
- 솔루션 전략 :
- 웹 사이트의 루트 디렉토리 (
root
지침에 의해 가리키는 디렉토리)와 그 파일 및 폴더의 파일 및 폴더가 Nginx (일반적으로_www
또는nobody
)를 읽는 권한이 있는지 확인하십시오. - PHP가 작성 해야하는 디렉토리 (예 : 로그, 캐시)의 경우 PHP-FPM을 실행하는 사용자에게 쓰기 권한이 있는지 확인하십시오. 가장 쉬운 방법은
chmod -R 777
이지만 이것이 모범 사례는 아닙니다. 더 안전한 방법은chown -R _www:_www /path/to/your/project
,chmod -R 755 /path/to/your/project
및chmod -R 775 /path/to/your/project/cache_or_log_dir
입니다.
- 웹 사이트의 루트 디렉토리 (
3. PHP-FPM이 실행되지 않거나 구성 불일치 : Nginx는 fastcgi_pass
구성되어 있지만 PHP-FPM이 시작되지 않았거나 NGINX가 지적한 FASTCGI 주소 (포트 또는 소켓 경로)는 PHP-FPM의 실제 청취와 일치하지 않습니다.
- 솔루션 전략 :
- PHP-FPM이 시작되었는지 확인하십시오 :
brew services list
php
또는php@版本号
의 상태가started
되었는지 확인하십시오. 그렇지 않은 경우brew services start php
. - PHP-FPM 구성 파일 (일반적
listen
/usr/local/etc/php/版本号/php-fpm.d/www.conf
listen = /usr/local/var/run/php-fpm.sock
127.0.0.1:9000
그런 다음 Nginx 구성의fastcgi_pass
정확히 일치하는지 확인하십시오.
- PHP-FPM이 시작되었는지 확인하십시오 :
4. Nginx 구성 구문 오류 : Nginx 구성이 매우 엄격합니다. 작은 세미콜론이 놓치거나 괄호가 일치하지 않으면 Nginx가 시작되지 않습니다.
- 솔루션 전략 : NGINX 구성을 수정 한 후 먼저
nginx -t
명령을 사용하여 구성 파일의 구문이 올바른지 테스트해야합니다.syntax is ok
이고test is successful
자신있게 Nginx를 다시 시작할 수 있습니다.
5. root
경로 또는 index
파일 구성 오류 : Nginx에서 웹 사이트 파일을 찾을 수 없거나 index.php
찾을 수 없습니다.
- 솔루션 :
nginx.conf
의root
지시문에 의해 가리키는 경로가 올바른지 확인하고index
지시문에index.php
포함되어 있는지 확인하고 순서가 올바른지 확인하십시오.
문제가 발생하면 첫 번째 단계는 항상 nginx의 오류 로그 (일반적으로 /usr/local/var/log/nginx/error.log
) 및 php-fpm의 로그를 확인하는 것입니다. 이 로그 파일은 무엇이 잘못되었는지 알려줍니다. 권한이 충분하지 않아 포트 충돌 또는 PHP 코드 오류가 발생하기 때문입니다. 경험에 따르면 로깅은 문제 해결에 가장 적합한 가이드라고합니다.
위 내용은 NGINX 및 PHP 서비스의 조합을 구성하기 위해 MacOS를 사용하여 PHP NGINX 환경을 구축하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

공개 회원은 마음대로 액세스 할 수 있습니다. 2. 개인 회원은 반 내에 만 액세스 할 수 있습니다. 3. 보호 된 회원에게 수업 및 서브 클래스에서 액세스 할 수 있습니다. 4. 합리적 사용은 코드 보안과 유지 관리를 향상시킬 수 있습니다.

목차 1. 교환의 주요 이익을 가진 토큰을 관찰합니다. 2. 소셜 미디어의 추세 신호에주의를 기울이십시오. 3. 연구 도구 및 제도 분석 보고서 사용 4. 체인 데이터 동향을 깊이 탐구합니다. 5. 암호 시장에서의 요약 및 전략적 제안은 자본 흐름뿐만 아니라 투자자 심리학에 심각하게 영향을 미칩니다. 상승 추세를 파악하는 것은 종종 수익률이 높아지는 것을 의미합니다. 잘못 판단하면 높은 수준의 인수 또는 기회가 놓칠 수 있습니다. 그렇다면 현재 시장을 지배하는 이야기를 어떻게 식별 할 수 있습니까? 어느 지역이 많은 자본과 관심을 끌고 있습니까? 이 기사는 암호화 시장의 핫 펄스를 정확하게 포착하는 데 도움이되는 실용적인 방법을 제공합니다. 1. 거래소에서 주요 토큰을 관찰하는 가장 직관적 인 신호는 종종 가격 성과에서 비롯됩니다. 이야기가 시작될 때

MySQLI 객체 지향 메소드 사용 : 연결을 설정하고, 전처리 업데이트 문을, 매개 변수를 바인딩하고, 결과를 실행하고 확인하고, 마지막으로 리소스를 닫습니다. 2. MySQLI 프로 시저 사용 방법 : 기능을 통해 데이터베이스에 연결하고, 진술을 준비하고, 매개 변수를 바인딩하고, 업데이트를 수행하고, 오류를 처리 한 후 연결을 닫습니다. 3. PDO 사용 : PDO를 통해 데이터베이스에 연결하고, 예외 모드를 설정하고, 사전 프로세스 SQL, 파라미터를 바인딩하고, 업데이트를 수행하고, Try-Catch를 사용하여 예외를 처리하고, 최종적으로 리소스를 해제하십시오. SQL 주입을 방지하고 사용자 입력을 확인하고 정시에 연결을 닫으십시오.

디렉토리 Cookiedao 란 무엇입니까? Cookiedao 토큰 경제 현재 시장 상황 및 요인 쿠키 가격 쿠키 2025-2026 가격 예측 쿠키 2029-2030 가격 예측 2025-2030 가격 예측 가격 목록 쿠키 동전이 거래 되는가? Binance (Binance) BybitbitgetKucoinmexcbtcccokie 코인을 구입하는 방법? 결론 2025 년 1 월 10 일에 사상 최고 $ 0.7652에 도달 한 후 $

디렉토리 multiplenetwork 란 무엇입니까? 일반적인 사용 사례 (예) Multiplenetwork 기술 아키텍처 및 전반적인 제품 모듈 방법 P2P SD-WAN : 분산 대역폭을 "수익 창출하는 방법? 암호화 및 프라이버시 : 익명의 커뮤니케이션 엔드 투 엔드 암호화 de-wan 및 가장자리 가속화 된 토큰 경제 (공급 | 유틸리티 | 할당 | 에어 드롭/인센티브) 총 공급 및 역할 인센티브 및 볼륨 조건의 인센티브 및 배포 및 릴리스 참가자의 가치 경로 상자 인터페이스 진행 및 도로 맵 (2024-2025) 위험 및주의.

이더 리움의 9 월 트렌드는 스팟 ETF 기대와 "9 월 효과"사이의 게임에 의해 지배 될 것입니다. 역사적 데이터는 계절적 약점을 보여 주지만 ETF 진행 상황은 핵심 촉매가 될 수 있습니다. 가격 변동성 강화로 투자자는 단일 가격 예측보다는 위험 관리 및 기본 논리에 중점을 두어야합니다.

시스템에서 지원하는 시간 영역을 보려면 다른 플랫폼에 따라 다음 방법을 채택 할 수 있습니다. 1. Linux/MacOS는 TimedAtectLlist-Timezones 명령을 사용하여 모든 시간 영역을 나열하고 GREP로 필터링 할 수 있습니다. 2. Windows는 명령 프롬프트를 사용하여 Tzutil/L 또는 PowerShell을 실행하여 Get-timezone-listavailable을 실행합니다. 3. Python에서는 pytz.all_timezones를 통해 ZoneInfo가 지원하는 시간대를 얻거나 IANA 데이터베이스에 액세스 할 수 있습니다. 4. Java 사용 Zava audeid.getAvailableZoneids (), 노드와 같은 다른 도구

디렉토리 구매 비트 코인 쿠폰 코드 주요 비트 코인 홀딩스 교환 계정 상장 회사 마이크로 스트레이트 지점 K 회사 기타 회사 정부 보유 민간 회사 및 얼리 어답터 Satoshi Nakamoto 익명의 고래 계정 비트 코인 거래소 순위 2025 년에 비트 코인 홀딩스를 가진 사람은 누구입니까? 비트 코인 보유가 가장 많은 나라는 누구입니까? 비트 코인 계정의 익명 성과 시장 참가자 보유의 동적 변화로 인해 소유권이 복잡해지기 때문에 2025 년 비트 코인 홀딩스의 특정 순위를 정확하게 예측하는 것은 매우 어렵습니다. 그러나 우리는 할 수 있습니다
