> 백엔드 개발 > PHP 문제 > Mac nginx가 PHP 파일을 구문 분석할 수 없으면 어떻게 해야 합니까?

Mac nginx가 PHP 파일을 구문 분석할 수 없으면 어떻게 해야 합니까?

PHPz
풀어 주다: 2023-04-11 13:57:29
원래의
733명이 탐색했습니다.

Nginx를 사용하여 Mac에서 웹 서버를 구축하는 것은 일반적인 작업이지만 때로는 Nginx가 PHP 파일을 구문 분석할 수 없는 문제에 직면합니다. 이 경우 PHP 파일에 접근 시 파싱 및 실행이 되지 않고 직접 다운로드되어 웹 개발에 불편을 초래하게 됩니다.

이 글에서는 Nginx를 사용하여 Mac에서 웹 서버를 구축할 때 Nginx가 PHP 파일을 구문 분석할 수 없는 문제를 해결하는 방법을 소개합니다. 주로 다음과 같은 측면을 포함합니다:

  1. 원인 분석
  2. 솔루션
  3. 원인 분석

Nginx는 기본적으로 PHP 구문 분석을 지원하지 않으며, PHP 구문 분석을 구현하려면 PHP-FPM을 사용해야 합니다. PHP-FPM이 시작된 후 Nginx와 소켓 연결을 설정하고 처리를 위해 요청을 PHP-FPM 프로세스로 전달한 다음 PHP-FPM은 처리 결과를 Nginx에 반환하고 Nginx는 최종적으로 결과를 클라이언트에 반환합니다.

따라서 Nginx가 PHP 파일을 구문 분석할 수 없는 이유는 다음과 같습니다:

  1. PHP-FPM이 설치되지 않았습니다
  2. PHP-FPM이 시작되지 않았습니다
  3. PHP 구문 분석이 Nginx 구성 파일에 구성되지 않았습니다
  4. 솔루션

위의 이유로 이를 해결하기 위해 다음과 같은 방법을 채택합니다.

2.1 PHP-FPM 설치

먼저 PHP-FPM을 설치해야 하며 Homebrew를 사용하여 설치할 수 있습니다.

brew install php-fpm
로그인 후 복사

설치가 완료된 후 다음 명령을 사용하여 설치 성공 여부를 확인할 수 있습니다.

php-fpm -v
로그인 후 복사

PHP 버전 정보가 표시되면 설치 성공입니다.

2.2 PHP-FPM 시작

PHP-FPM을 설치한 후 PHP-FPM 프로세스를 시작해야 합니다.

sudo php-fpm
로그인 후 복사

시작한 후 다음 명령을 사용하여 PHP-FPM이 성공적으로 시작되었는지 확인할 수 있습니다.

ps aux | grep php-fpm
로그인 후 복사

If 다음과 유사한 정보가 표시되면 PHP-FPM이 성공적으로 시작되었음을 나타냅니다.

_www           49202   0.0  0.7  5871400  11664   ??  S    11:42上午   0:00.03 php-fpm: pool www
로그인 후 복사

2.3 Nginx 구성

Nginx 구성 파일에 PHP 구문 분석 구성 추가 서버 세그먼트에 다음 콘텐츠를 추가할 수 있습니다.

location ~ \.php$ {
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}
로그인 후 복사

Parsing 지침:

  • location ~ .php $: .phplocation ~ .php$:表示匹配所有以.php结尾的请求
  • fastcgi_pass   127.0.0.1:9000;:表示将请求转发到PHP-FPM进程处理,此处端口号应与PHP-FPM进程启动时使用的端口号保持一致
  • fastcgi_index  index.php;:表示当请求目录下没有指定文件时,默认使用index.php作为入口文件
  • fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;:表示将请求文件完整路径传递给PHP-FPM进程,其中$document_root表示Nginx配置的Web根目录,$fastcgi_script_name表示请求的完整路径(不包含域名和参数)
  • include        fastcgi_params;
  • fastcgi_pass 127.0.0.1:9000으로 끝나는 모든 요청과 일치함을 나타냅니다.: 요청을 PHP로 전달함을 나타냅니다. -처리를 위한 FPM 프로세스. 여기서 포트 번호는 PHP와 동일해야 합니다. -FPM 프로세스를 시작할 때 사용되는 포트 번호는 일관되게 유지됩니다

fastcgi_index index.php;: 지정되지 않은 경우를 나타냅니다. 요청 디렉터리의 파일에서 index.php는 기본적으로 항목 파일로 사용됩니다

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;: 요청된 파일의 전체 경로가 PHP-FPM에 전달됨을 나타냅니다. 여기서 $document_root는 Nginx에서 구성한 웹 루트 디렉터리를 나타내고 $fastcgi_script_name은 요청의 전체 경로(도메인 이름 및 매개변수 제외)를 나타냅니다.

🎜include fastcgi_params;: FastCGI의 도입을 나타냅니다. FastCGI와 관련된 일부 매개변수 구성이 포함된 매개변수 구성 파일입니다. 🎜🎜🎜구성이 완료된 후 다음 명령을 사용하여 Nginx 구성을 다시 로드할 수 있습니다. 🎜
sudo nginx -s reload
로그인 후 복사
🎜위는 Nginx를 사용하여 Mac에서 웹 서버를 구축할 때 Nginx가 PHP 파일을 구문 분석할 수 없는 문제를 해결하는 방법입니다. 이 기사가 도움이 되기를 바랍니다. 🎜

위 내용은 Mac nginx가 PHP 파일을 구문 분석할 수 없으면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿