Apache 2 및 PHP 5가 작동하지 않습니다.

Apache 2 및 PHP 5가 작동하지 않습니다.

내 웹 서버 디렉토리에 내용이 포함된 test.php 파일이 있습니다 php phpinfo(); . php test.php쉘에서 실행 하려고 하면 올바르게 실행됩니다. 하지만 브라우저에서 웹페이지를 열려고 하면 php phpinfo();. UNIX 시스템에서 Apache 2 및 PHP 5 문제를 해결하려면 어떻게 해야 합니까?

답변1

이 파일을 사용해 보세요 <?php ... ?>.

<?php
phpinfo();
?>

기본적으로 PHP 파일의 내용은 HTML이며 변경되지 않은 채 브라우저로 전송됩니다. PHP로 해석되는 PHP 코드의 시작과 끝을 표시 <?php하고 표시합니다.?>

답변2

~처럼Penguin359가 지적했습니다., PHP는 적어도 <?HTML 페이지에서 ...로 묶이지 않은 내용은 해석하지 않습니다.?>

시도한 후에도 여전히 작동하지 않으면 가장 먼저 해야 할 일은 서버의 액세스 및 오류 로그를 확인하는 것입니다(기본적으로 배포판에서 이상한 일이 발생하지 않는 한 지침에서 AccessLog ErrorLog` 구성 파일을 확인하세요 /var/log/apache2/access.log and /var/log/apache2/error.log). 그들이 말하는 내용을 토대로 문제 해결을 계속하세요./etc/apache2/ for theand

페이지에 액세스했지만 오류가 보고되지 않으면 서버가 어떤 이유로 PHP 파서를 시작할 필요를 인식하지 못했음을 의미합니다. 이는 잘못된 구성으로 인해 발생했을 가능성이 높습니다.

Apache가 PHP 파서를 호출하는 방법에는 여러 가지가 있습니다. 가장 일반적인 두 가지 방법은 동적으로 로드된 PHP 모듈을 통하거나 CGI를 통하는 것입니다.

로드해야 하는 경우 mod_php구성 파일에는 다음과 같은 지시문이 포함되어야 합니다.

LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
php5 모듈이 .php 페이지를 처리하도록 지시하는 지침과 함께 다음과 같을 수 있습니다.

<IfModule mod_php5.c>
  AddType application/x-httpd-php .php .phtml .php3 .php5
  AddType application/x-httpd-php-source .phps
  php_admin_flag register_globals off
</IfModule>

배포판에서 apache2 구성을 처리하는 방법에 따라 약간의 차이가 있을 수 있습니다.

cgi를 통해 호출되는 경우 - 일반적으로 스레드 서버 및 이와 같은 멋진 기능을 허용하므로 더 나은 선택입니다.수 실행-- 그런 다음 Apache 구성 파일을 다시 확인하고 다음과 유사한 줄을 찾아야 합니다.
AddHandler fcgid-script .php .php5

.php또는로 끝나는 파일을 처리하는 방법을 서버에 알려줍니다 .php5.

<? ... ?>하지만 액세스 및 오류 로그를 살펴보지 않고는 서버에 정확히 무엇이 잘못되었는지 추측하기는 어렵습니다(단순히 .php 파일을 래핑하는 데 실패한 초기 실패가 아니라고 가정).

관련 정보