[php] Apache가 PHP 파일을 표시하는 대신 다운로드하고 있습니다.

OS 및 서버 정보 :

  • CentOS 6.4 (최종)
  • Apache 2.2.15
  • PHP 5.5.1

이전에 PHP 5.3.x를 설치했지만 업그레이드하기로 결정했습니다. 먼저 php 5.3.x를 제거한 다음 php 5.5.1을 설치했지만 설치가 완료된 후 아파치는 php 파일을 구문 분석하지 않고 방금 다운로드했습니다. stackoverflow에서 비슷한 질문을 확인했지만 지금까지 아무도 저를 도왔습니다.

기록을 위해 httpd.conf 및 php.conf에 php가 작동하지만 작동하지 않는 다음 줄이 있습니다.

AddHandler application/x-httpd-php .php5 .php4 .php .php3 .php2 .phtml
AddType application/x-httpd-php .php5 .php4 .php .php3 .php2 .phtml
AddType application/x-httpd-php-source .phps
AddHandler php5-script .php

어떤 도움을 주셔서 감사합니다. 감사합니다.

편집하다:

php.conf에 다음 줄이 있습니다.

<IfModule !worker.c>
  LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
  LoadModule php5_module modules/libphp5-zts.so
</IfModule>

편집하다:

제거하여

AddType application/x-httpd-php .php5 .php4 .php .php3 .php2 .phtml

아파치는 더 이상 파일을 다운로드하지 않습니다. 이제 아파치가 소스 코드를 보여 주지만 전부는 아닙니다. 나는 추가했다

AddType text/html .php

하지만 운이 없습니다.



답변

php에 대한 올바른 AddType은 application / x-httpd-php입니다.

AddType  application/x-httpd-php         .php
AddType  application/x-httpd-php-source  .phps

또한 PHP 모듈이로드되었는지 확인하십시오.

LoadModule php5_module        modules/mod_php55.so

아파치를 구성 할 때 다른 브라우저에서 페이지를 봅니다. 크롬이 결과를 완고하게 캐시하고 소스 코드를 계속 다운로드하는 동안 다른 브라우저에서는 괜찮습니다.


답변

오늘이 문제를 발견했지만 설명 된 솔루션 중 어느 것도 저에게 효과가 없었습니다. 따라서 또 다른 가능한 원인이 있습니다.

당신이 뭔가를 가지고 있다면

AddHandler x-mapp-php6 .php3 .php4 .php .phtml

.htaccess웹 콘텐츠 폴더 의 파일에서 PHP 스크립트가 작동을 멈출 수 있습니다. 제 경우에는 x-mapp-php6해당 .htaccess파일이 웹 사이트 콘텐츠를 전송할 때 다른 웹 호스트에서 가져온 파일 이기 때문에 서버가 유형을 알지 못했습니다 .

파일 에서 AddHandler줄을 제거하는 것만으로도 .htaccess해결되었습니다.


답변

많은 고생 끝에 마침내 문제를 해결했습니다.

.php파일을 실행하는 대신 다운로드하라는 메시지가 표시되면 여기에 완벽한 솔루션이 있습니다. 이미 PHP5를 설치했지만 여전히이 오류가 발생한다고 가정합니다.

$ sudo su
$ a2enmod php5

이거 야.

하지만 여전히 오류가 발생하는 경우 :

Config file php5.conf not properly enabled: /etc/apache2/mods-enabled/php5.conf is a real file, not touching it

그런 다음 다음을 수행하십시오.

파일 판명이에 저장해서는 안된다 mods-enabled, 오히려에 보관해야합니다 mods-available. 그런 다음 mods-available에 저장된 파일을 가리키는 심볼릭 링크를 mods-enabled에서 만들어야합니다.

먼저 원본을 제거하십시오.

$ mv /etc/apache2/mods-enabled/php5.conf /etc/apache2/mods-available/

그런 다음 심볼릭 링크를 만듭니다.

$ ln -s /etc/apache2/mods-available/php5.conf /etc/apache2/mods-enabled/php5.conf

문제가 해결되기를 바랍니다.


답변

addtype 지시문을 살펴보십시오.

Apache가 브라우저에 .php5와 같은 확장자를 가진 스크립트에 대해 application / php의 문서 유형을 보내고 있다고 말하는 것처럼 보입니다. 사실 Apache는 스크립트가 text / html을 출력하고 있음을 브라우저에 알려야합니다.

이것을 시도하십시오 :

AddType text/html .php

PHP 스크립트를 출력하고 있다는 것을 브라우저에 알려야한다는 위의 제안과 관련하여 : 나에게는 특이한 생각처럼 보였습니다. 나는 그것을 검색하고 웹에서 그것에 대해 꽤 많은 토론이 있음을 발견했습니다. 분명히 PHP 스크립트를 보내고 있다고 말하고 싶은 경우가 있으며 (아파치가 스크립트를 실행하고 text / html을 내 보내야하지만) 브라우저가 특정 Mime을 인식하지 못하는 경우도 있습니다. 유형.

브라우저 캐시를 지우는 것은 항상 좋은 생각입니다.

도움이되는 경우 CentOS 5.9를 실행하는 서버의 /etc/httpd/conf.d/php.conf 파일 사본이 있습니다.

#        
# PHP is an HTML-embedded scripting language which attempts to make it                                             
# easy for developers to write dynamically generated webpages.                                                  
#
<IfModule prefork.c>
  LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
  LoadModule php5_module modules/libphp5-zts.so
</IfModule>

#
# Cause the PHP interpreter to handle files with a .php extension.
#
AddHandler php5-script .php
AddType text/html .php

#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php

#
# Uncomment the following line to allow PHP to pretty-print .phps
# files as PHP source code:
#
#AddType application/x-httpd-php-source .phps


답변

이것은 PHP에 필요한 모듈 누락으로 인해 발생할 수 있습니다. php7이 설치되어 있다고 가정하고 다음을 사용하여 사용 가능한 php7 모듈을 검색하십시오.

sudo apt-cache search php7-*

위의 명령은 설치에 사용 가능한 모든 PHP7 모듈을 나열합니다. 다음과 같은 모듈 설치를 시작할 수 있습니다.

sudo apt-get install libapache2-mod-php7.0 php7.0-mysql php7.0-curl php7.0-json


답변

.htaccess에 다음과 같은 것이 있으면 …
AddHandler application / x-httpd-php53 .php .php5 .php4 .php3
그런 다음 주석을 달고 다시 새로 고침을 시도하십시오.


답변

나도 같은 문제를 안고있어. Apache는 특정 웹 사이트에서 PHP 파일을로드하지 않고 다운로드 만합니다. 이 게시물과 답변을 읽고 .htaccess 파일의 마지막 위치에이 줄이있는 것을 보았습니다.

AddHandler x-mapp-php5.5  .php

나는 그것을 언급했고 모든 것이 잘 작동합니다.

모두에게 감사합니다 !!!