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
나는 그것을 언급했고 모든 것이 잘 작동합니다.
모두에게 감사합니다 !!!