Nginx를 사용하여 Mac에서 웹 서버를 구축하는 것은 일반적인 작업이지만 때로는 Nginx가 PHP 파일을 구문 분석할 수 없는 문제에 직면합니다. 이 경우 PHP 파일에 접근 시 파싱 및 실행이 되지 않고 직접 다운로드되어 웹 개발에 불편을 초래하게 됩니다.
이 글에서는 Nginx를 사용하여 Mac에서 웹 서버를 구축할 때 Nginx가 PHP 파일을 구문 분석할 수 없는 문제를 해결하는 방법을 소개합니다. 주로 다음과 같은 측면을 포함합니다:
Nginx는 기본적으로 PHP 구문 분석을 지원하지 않으며, PHP 구문 분석을 구현하려면 PHP-FPM을 사용해야 합니다. PHP-FPM이 시작된 후 Nginx와 소켓 연결을 설정하고 처리를 위해 요청을 PHP-FPM 프로세스로 전달한 다음 PHP-FPM은 처리 결과를 Nginx에 반환하고 Nginx는 최종적으로 결과를 클라이언트에 반환합니다.
따라서 Nginx가 PHP 파일을 구문 분석할 수 없는 이유는 다음과 같습니다:
위의 이유로 이를 해결하기 위해 다음과 같은 방법을 채택합니다.
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
위 내용은 Mac nginx가 PHP 파일을 구문 분석할 수 없으면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!