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();
?>
브라우저에서 확인:
올바르게 표시됩니다.이게 누구에게나 도움이 될 것 같아요.
이한 지 이 지난 후 그 이후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로 업그레이드 했을 때도 같은 문제가 발생하였습니다.다음과 같은 방법으로 작업:
»
[domain].conf file, 「」php_admin_value engine Off추가:
AddType application/x-httpd-php-source .phps AddType text/html .php다음과 같이 mod 7.2를 해제하고 7.4를 활성화합니다.
a2dismod php7.2 a2enmod php7.4»
/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
'programing' 카테고리의 다른 글
| SQL을 INSERT IN...과(와) 함께 사용할 때 오류 1064가 발생합니다.선택...중복 키 업데이트 시 (0) | 2022.11.13 |
|---|---|
| @Transactional on class와 메서드의 차이점은 무엇입니까? (0) | 2022.11.13 |
| MySQL은 두 열을 하나의 열에 결합합니다. (0) | 2022.11.13 |
| 5일 전 날짜는 어떻게 알 수 있죠? (0) | 2022.11.13 |
| mariadb 커넥터(python)가 있는 Set Clause로 문자열을 삽입할 수 없습니다. (0) | 2022.11.13 |