>  기사  >  백엔드 개발  >  nginx가 PHP 파일을 구문 분석하지 않는 경우 수행할 작업

nginx가 PHP 파일을 구문 분석하지 않는 경우 수행할 작업

PHPz
PHPz원래의
2023-04-18 10:18:341128검색

nginx는 웹 애플리케이션에서 동적 콘텐츠를 렌더링하기 위해 PHP와 함께 자주 사용되는 고성능 웹 서버입니다. 그러나 때때로 nginx가 PHP 파일을 올바르게 구문 분석하지 않아 애플리케이션이 제대로 실행되지 않을 수 있습니다. 이 기사에서는 nginx가 PHP 파일을 구문 분석하고 솔루션을 제공하지 못하게 만드는 몇 가지 일반적인 문제를 살펴보겠습니다.

  1. PHP가 설치 또는 구성되지 않았습니다.

먼저 서버에 PHP가 설치되어 있고 nginx가 제대로 작동하도록 구성되어 있는지 확인하세요. PHP가 올바르게 설치되었는지 확인하려면 터미널을 열고 다음 명령을 실행하세요.

php -v

그러면 현재 서버에 설치된 PHP 버전이 표시됩니다. PHP 버전이 표시되지 않으면 PHP 설치를 고려하세요.

PHP가 nginx와 작동하도록 하려면 nginx 구성 파일을 편집하고 다음 줄을 추가하세요.

location ~ \.php$ {
  fastcgi_pass  unix:/run/php/php7.4-fpm.sock;
  fastcgi_index index.php;
  include fastcgi_params;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

여기서 nginx가 PHP 파일을 처리하는 데 사용할 위치와 기타 매개변수를 지정합니다. 이 코드 조각이 nginx 구성 파일에 있고 그 안에 있는 sock 파일이 PHP 구성 파일과 일치하는지 확인하세요.

  1. index.php 파일이 설정되지 않음

웹 애플리케이션의 홈 페이지가 index.php이지만 nginx에서 자동으로 처리되지 않는 경우 nginx 구성 파일의 "index" 지시문에 인덱스를 추가해야 합니다.

index index.php index.html;

이제 홈 페이지를 열면 nginx가 자동으로 index.php를 찾아 올바르게 처리합니다.

  1. PHP 파일 권한

nginx가 PHP 파일을 구문 분석할 수 없는 또 다른 주요 이유는 잘못된 권한입니다. 다음 사항을 확인하세요.

  • PHP 파일의 권한은 644입니다.
  • PHP 파일이 있는 디렉터리의 권한은 755입니다.

또한 PHP 파일의 소유권이 nginx 사용자로 설정되어 있는지 확인하고 PHP 파일이 있는 디렉토리의 소유권은 nginx group 으로 설정됩니다. 이는 다음 명령을 사용하여 달성할 수 있습니다:

sudo chown -R nginx:nginx /var/www/html/

여기서는 /var/www/html/ 디렉토리의 소유권을 nginx 사용자 및 그룹에 할당합니다.

  1. PHP 모듈이 활성화되지 않았습니다

nginx가 PHP 파일을 구문 분석할 수 없고 오류 메시지가 없는 경우 PHP 모듈이 활성화되어 있는지 확인하세요. 이를 활성화하려면 nginx의 컴파일 옵션을 편집하고 다음 줄을 추가하세요:

--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_auth_request_module \
--with-http_image_filter_module \
--with-http_geoip_module \
--with-http_degradation_module \
--with-http_xslt_module \
--with-http_stub_status_module \
--with-http_spdy_module \
--with-http_auth_request_module \
--with-http_slice_module \
--with-mail \
--with-mail_ssl_module \
--with-ipv6 \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-threads \
--with-debug \
--add-module=/path/to/php-src/sapi/nginx/

여기서 --add-module=/path/to/php-src/sapi/nginx/를 추가하여 PHP 모듈을 활성화했습니다.

  1. PHP 오류 로깅

nginx가 PHP 파일을 구문 분석할 수 없지만 오류 메시지가 표시되지 않는 경우 PHP 오류 로그에서 오류에 대한 자세한 정보를 찾을 수 있습니다. PHP 오류 로깅을 활성화하려면 php.ini 파일을 열고 다음 줄의 주석 처리를 제거하세요.

error_log = /var/log/php/error.log
log_errors = On

여기서는 PHP 오류 로그를 /var/log/php/error.log로 지정하고 오류 로깅을 활성화합니다. 폴더가 생성되었고 적절한 권한이 있는지 확인하세요.

결론

이 기사에서는 nginx가 PHP 파일을 구문 분석할 수 없는 몇 가지 이유를 소개하고 솔루션을 제공했습니다. 이러한 문제가 발생하면 위의 단계를 따르고 PHP 파일을 처리하도록 nginx를 올바르게 구성하십시오.

위 내용은 nginx가 PHP 파일을 구문 분석하지 않는 경우 수행할 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.