programing

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

sourcejob 2022. 11. 13. 19:29
반응형

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

OS 및 서버 정보:

  • CentOS 6.4 (최종)
  • 아파치 2.2.15
  • PHP 5.5.1

이전에 php 5.3.x를 설치했지만 업그레이드를 결정했습니다.먼저 php 5.3.x를 제거하고 php 5.5.1을 설치했지만 설치가 완료된 후 php 파일을 구문 분석하지 않고 다운로드만 했습니다.스택오버플로우에서 비슷한 질문을 확인했지만 지금까지 도움이 되는 질문은 없었습니다.

참고로 제 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

apache는 파일을 더 이상 다운로드하지 않습니다.이제 아파치는 소스코드를 보여주고 있지만, 모든 것이 부분적인 것은 아닙니다.나는 덧붙였다.

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

Apache를 구성할 때 다른 브라우저에서 페이지를 표시하려고 합니다. 크롬이 결과를 캐시하고 다른 브라우저에서는 소스 코드를 계속 다운로드하는 경우가 종종 있었습니다.

오늘 이 문제를 발견했는데, 설명한 솔루션 중 어느 것도 효과가 없었습니다.다음으로 생각할 수 있는 다른 원인을 제시하겠습니다.

이런 게 있다면

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

in a a a a .htaccessPHP는 PHP를 참조해 주세요.가 제, 음, 음, 음, 음, 음, 음, in, in, in, in, in, in, in, in, 을 몰랐습니다.x-mapp-php6type,그부터, 「」는 「」입니다..htaccessfile은 웹사이트 콘텐츠를 전송할 때 다른 웹 호스트에서 가져온 것입니다.

뺄게요.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-availablemods-available 음 、 mods-available 、 mods-enable 、 mods-enable 、 mods-enable 。

먼저 원고를 삭제합니다.

$ 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와 같은 확장자를 가진 스크립트용 문서 유형의 응용 프로그램/php를 보내는 것처럼 보입니다.실제로 Apache는 스크립트가 텍스트/html을 출력하고 있음을 브라우저에 알려야 합니다.

다음을 시도해 보십시오.

AddType text/html .php

PHP 스크립트를 출력하고 있음을 브라우저에 알려야 한다는 위의 제안에 대해:그것은 내게는 특이한 생각처럼 보였다.구글을 검색해보니 인터넷상에서 꽤 많은 논의가 이루어지고 있더군요.PHP 스크립트를 송신하고 있다고 하는 경우도 있습니다(Apache가 스크립트를 실행해 텍스트/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

.htaccess에 이와 같은 것이 있는 경우...AddHandler application/x-httpd-php53.php5.php4.php3.comment를 한 후 다시 새로 고칩니다.

이 문제는 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

저도 같은 문제가 있어요.Apache는 특정 웹사이트에서 php 파일을 로드하는 것이 아니라 다운로드만 한 것입니다.이 투고와 답변을 읽고 .htaccess 파일의 마지막 위치에 다음 행이 있는 것을 보았습니다.

AddHandler x-mapp-php5.5  .php

제가 코멘트를 해드렸고 모든 것이 잘 작동하고 있습니다.

모두 감사합니다!!!

PHP를 7.3으로 업데이트한 후 이전과 같이 $USER가 아닌 www-data로 실행되는 PHP 스크립트.

PHP-FPM을 재설치하고 활성화해야 했습니다.

sudo apt-get install php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo service apache2 restart
sudo a2enconf php7.3-fpm
sudo service apache2 restart

Virtualmin이 정상적으로 동작하고 있는지 확인하기 위해 Re-Check Configuration 마법사를 사용했습니다./virtual-server/check.cgi[ Vitualmin / System Settings ]에서 선택합니다.

Apache/PHP php 운운운운운 운운운 운운운 운운운 。요./etc/apache2/mods-available/php7.3.conf을 하다SetHandler application/x-httpd-php같이 .

<FilesMatch ".+\.ph(ar|p|tml)$">
#    SetHandler application/x-httpd-php
</FilesMatch>

Apache를 다시 시작한 후 문제가 해결되었습니다. 도움이 되길 바랍니다.

브라우저 캐시도 관리해 주세요.

내 시스템:

Ubuntu          16.04.6 LTS
Webmin version      1.932
Usermin version     1.780
Virtualmin version  6.08
Apache version      2.4.41
PHP versions        7.3.12
PHP-FPM         7.3.12 Server

이전에 5.3에서 5.4로 업그레이드한 후에도 비슷한 문제가 있었습니다.그러나 PHP5 apache/cgi 모듈이 아닌 Debian을 실행하고 fcgid를 사용하여 PHP 페이지를 서버하기 때문에 설정이 조금 다릅니다.업그레이드 후 php5_cgi도 설치되어 fcgid 설정과 충돌하여 PHP 파일이 실행되지 않게 되었습니다.

Apache Module을 비활성화하고 Apache를 재시작해야 했습니다.

a2dismod php5_cgi
/etc/init.d/apache2 restart

일단 php5_cgi 모듈이 제거되면 fcgid는 PHP 페이지를 다시 제공할 수 있었습니다.

비슷한 증상이 있었습니다만, 또 다른 해결 방법이 있습니다. /etc/apache2/mods-enabled/php5.conf에는 코멘트에 도움이 되는 조언이 있었습니다.그 후 다음과 같이 답했습니다.

# To re-enable php in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.

Linux 환경에서 php7을 사용하는 경우

반드시 php7을 유효하게 해 주세요.

sudo a2enmod php7

mysql 서비스와 Apache를 재시작합니다.

sudo systemctl restart mysql
sudo systemctl restart apache2

이틀을 추적했는데 PHP 스크립트를 잘못된 디렉토리에 넣은 것을 알게 되었습니다.

를 Ubuntu에 ./var/www안에 있었어야 했는데/var/www/html.

저는 방금 PHP 작업을 시작했기 때문에, 제 솔루션이 당신이 겪은 버전 변경과 관련이 있는지 모르겠습니다.

이것으로 문제가 해결되었습니다(php7이 설치되어 있습니다).

sudo apt-get install libapache2-mod-http 7.0

sudo 서비스 apache2 재시작

이런 문제가 있었어요.알고 보니 nginx와 apache가 모두 설치되어 부팅 시 자동으로 부팅됩니다.문제는 nginx가 먼저 http 포트에 바인딩되어 아파치가 시작되지 않았다는 것입니다.

또한 nginx가 실행 중일 수도 있지만 php가 apache와 함께 실행되도록 설정되어 있습니다., 을 실행합니다.service nginx status ★★★★★★★★★★★★★★★★★」service apache2 status이치 중이 아닌 nginx를 실행하면 .sudo service nginx stop; sudo service apache2 start그러면 서버가 예상대로 php 파일을 제공합니다.

네... 이 질문에 대한 답변이 이미 1.00,000개라는 것은 알고 있습니다만, 저는 이 질문에 대한 답을 찾기 위해 적어도 6시간을 소비했습니다.또한 수백 번 검색했지만, 단 한 개의 게시물도 찾지 못했습니다.그래서 저는 여기에 제 문제에 대한 해결책을 추가하기로 결심했습니다.

결론은

두.conf 의 .conf /etc/apache2/[[SERVER-NAME].conf 파일:

php_admin_value engine Off
IPCComTimeout 31

을 하고 갔는지 전혀 것에 . 을 사용법.conf이 행들을 제거하고 심볼링크가 있는 것을 확인하면/etc/apache2/sites-enabled/. . -인덱스.-인덱스. -인덱스.-인덱스.-인덱스. -인덱스. -인덱스.-인덱스. -인덱스. -인덱스. -인덱스. -인덱스. -인덱스. -인덱스. -인덱스. -인덱스. -인덱스.

전체 이야기

Ubuntu 16.04 VPS에 Virtual Min이 설치되어 있다.PHP 버전 7.2로 업그레이드했습니다.그 직후 Ubuntu 버전을 업데이트하여 'Kernel Offset: Disabled' 오류를 발생시켰습니다.그래서 최신 Ubuntu 버전을 삭제해야 했고 OS가 다시 부팅되었을 때 BOOM!나는 그의 게시물이 말하는 오류를 얻었다:VPS의 모든 사이트에 대해 index.php를 표시하는 대신 다운로드만 했습니다.

난 모든 걸 시도해봤어

  • PHP7.2를 제거하고 PHP5.6을 설치했습니다(PHP 버전은 아무런 관련이 없으며 작업이 필요한 Apache 구성입니다).
  • 기존 설치에서 Apache 모듈을 활성화 및 비활성화하려고 시도했지만 성공하지 못했습니다.
  • 그런 다음 아파치를 완전히 제거하고 다시 설치했는데, 문제가 발생한 후에도 그대로였습니다!
  • VirtualMin에서 가상 서버 셋업(Webmin >> Servers > Apache Webserver)을 조작해 보았다.
  • Apache의 어느 누락되어 있는지 알 수 있기 에 매우.어디서 - After I enable로 할 수.[ Virtualmin ]> [ ]> [ System Settings ]> [ Re - Check Configuration ] 。a2enmod [MODULE_NAME]그리고 구글링으로 모듈 이름을 찾았어요.검증 단계를 통과하기 전에 약 6-8개의 모듈을 활성화해야 했습니다. 캐시가 소진되기까지 몇 분이 걸렸습니다.따라서 이 작업은 지루한 작업이었습니다.
  • 마지막으로 위의 결론을 심볼링크와 함께 알아내고 그 결과를 실행에 옮겼습니다.하지만 VPS의 모든 사이트를 검색해야 했습니다.

이 문제가 있었습니다만, 실제로 서버의 설정을 가지고 놀지 않는 경우는, 90%의 문제가 .htaccess 파일에 있습니다.

.htaccess 파일을 로컬로 수정하거나 삭제(LOCally)할 수 있습니다.

virtualmin이 있는 경우 /etc/apache2/sites-available의 아파치 구성에서 이러한 행을 코멘트 아웃해 보십시오.

  #RemoveHandler .php
  #RemoveHandler .php7.0
  #php_admin_value engine Off

이전 버전에서 Mint 17에 설치된 5.5.9로 php5를 업그레이드할 때 OP와 비슷한 문제가 있었습니다.

로컬 네트워크상의 머신에서 LAMP 셋업을 실행하고 있습니다.LAMP 셋업은 실제 라이브 서버에 웹 사이트의 변경 내용을 업로드하기 전에 미리 보기 위해 사용합니다.그래서 저는 실제 사이트의 완벽한 로컬 미러를 유지하고 있습니다.

업그레이드 후 실제 사이트에서 완벽하게 실행되고 표시되는 파일은 표시되지 않거나 로컬머신에만 html이 표시됩니다.PHP가 구문 분석되지 않았습니다.phpinfo() 명령어가 동작했기 때문에 php가 동작하고 있는 것을 알 수 있었습니다.로그는 에러를 생성하지 않았다.페이지 소스를 보니 실제 php 코드가 표시되었습니다.

나는 테스트를 구성했다.php 페이지에는 다음 코드가 포함되어 있습니다.

<?php phpinfo(); ?>

이거 성공했어.그리고 내가 변했을 때 깨달았어<?php로로 합니다.<?이치노 내 는 "hpp"를 합니다.<?<?php는 /short_open_tag를을 Off에서On으로 되었습니다./etc/php5/apache2는 short_open_tag on입니다.

상기 중 어느 것도 효과가 없는 경우,

코멘트를 끝까지 써보다

SetHandler ....

를 사용하여 Apache를 재시작합니다.

/etc/init.d/httpd restart

잘 될 거야!

PHP56

vim /etc/syslogd/conf/syslogd.conf

LoadModule php5_module        libexec/apache/libphp5.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

이런 문제가 생겼어요.이렇게 풀어요.Apache를 설치한 후 이 명령을 사용하여 PHP를 설치했습니다.

sudo apt-get install php libapache2-mod-php

정상적으로 실행되지만 Apache에 .php 파일을 요청하면 PHP 스크립트를 실행하지 않아도 됩니다.

그러면 PHP가 활성화 되어 있는지 확인합니다.

$ cd /etc/apache2
$ ls -l mods-*/*php*

아무 결과도 나오지 않았어요.설치된 PHP 패키지를 확인합니다.

$ dpkg -l | grep php| awk '{print $2}' |tr "\n" " "

내 컴퓨터에 설치된 다른 유형의 PHP 버전입니다.그런 다음 apt-get purge를 사용하여 이전 목록에서 일부 PHP 패키지를 삭제합니다.

sudo apt-get purge libapache2-mod-php7.0 php7.0 php7.0-cli php7.0-common php7.0-json

PHP를 재설치합니다.

sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql

PHP 모듈이 로드되었는지 확인합니다.

$ a2query -m php7.0

활성화되지 않은 경우:

$ sudo a2enmod php7.0

Apache 서버 재시작

$ sudo systemctl restart apache2

마지막으로 Apache에서 PHP 프로세스를 확인합니다.

빈 파일을 작성하다

sudo vim /var/www/html/info.php

이 내용을 정보에 추가합니다.php & save.

<?php
  phpinfo();
?>

브라우저에서 확인:

http://localhost/info.syslog

올바르게 표시됩니다.이게 누구에게나 도움이 될 것 같아요.

이한 지 이 지난 후 그 이후2 및 에서 이 할 수 .UserDir★★★★★★ 。

의 또 다른 할 수 있는 은, 「」의 「 디렉토리에서 '사용자 디렉토리를 실행하려고 할 수 .UserDir하는 것은기본적으로 비활성화되어 .사용자 디렉토리에서 PHP 스크립트를 실행하는 것은 기본적으로 비활성화되어 있습니다.가 이 에 있을 때 발생합니다.public_html가 홈 디렉토리로 .http://localhost/~your_username.

를 해결하려면 을 ./etc/apache2/mods-enabled/php7.2.conf. 맨

<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>

사용 후 동일한 문제가 발생하였습니다.zypper rm php*하고 PHP를 사용하여 설치합니다.zypper in php7 php7-gd php7-gettext php7-mbstring php7-mysql php7-pear

apache2 모듈을 활성화하고 웹 서버를 재시작하여 해결했습니다.

a2enmod php7 && service apache2 restart

PHP 7.2에서 PHP 7.4로 업그레이드 했을 때도 같은 문제가 발생하였습니다.다음과 같은 방법으로 작업:

  1. »[domain].conf file , 「」

    php_admin_value engine Off
    

    추가:

    AddType  application/x-httpd-php-source  .phps
    AddType text/html .php
    
  2. 다음과 같이 mod 7.2를 해제하고 7.4를 활성화합니다.

    a2dismod php7.2
    a2enmod php7.4
    
  3. »/etc/apache2/mods-enabled/php7.4.conf 다음 파일, 코멘트:

    SetHandler application/x-httpd-php
    php_admin_flag engine Off
    

에 다음과 것이 .htaccess

AddType application/x-httpd-ea-php56 .php .php5 .phtm .html .htm

언급URL : https://stackoverflow.com/questions/18422140/apache-is-downloading-php-files-instead-of-displaying-them

반응형