내 웹 브라우저가 .php 페이지를 표시하지 않고 계속 다운로드하는 이유는 무엇입니까?

내 웹 브라우저가 .php 페이지를 표시하지 않고 계속 다운로드하는 이유는 무엇입니까?

VMware Workstation에 CentOS7 시스템을 설치했습니다. 호스트 OS는 Win7입니다. CentOS에서 apache2(httpd)와 MySQL을 컴파일하고 설치했는데 둘 다 잘 작동합니다. 즉, 호스트의 웹 브라우저에서 index.html 페이지에 액세스할 수 있습니다. 그럼 내가 그랬어

  1. wgetphp-5.5.37.tar.gz
  2. tar그것
  3. configure그것
  4. 그리고 그것 make으로 make install.

구성 명령은 다음과 같습니다.

[root@localhost:~/Downloads/php-5.5.37]# ./configure  --prefix=/usr/local/php \
--with-mysql=/usr/local/mysql  --enable-fpm

에서 ; /usr/local/apache2/conf/httpd.conf를 추가한 Include conf/vhost/*.conf후 다음과 같이 생성 /usr/local/apache2/conf/vhost/php.conf하고 편집했습니다.

Listen 192.168.1.211:80
AddType application/x-httpd-php .php

<VirtualHost 192.168.1.211:80>
    DocumentRoot /usr/local/apache2/www/phpdir
    ServerName www.phphost.com
    <Directory "/usr/local/apache2/www/phpdir">
        AllowOverride None
        Options Indexs FollowSymLinks
        Require all granted
    </Directory>
</VirtualHost>

IP를 다음과 같이 구성합니다.

ifconfig eth0:1 192.168.1.211/24 up

나는 그것을 발행했고 apachectl -t출력은 괜찮았습니다.

그런 다음 를 입력했고 apachectl restart모든 것이 잘 진행되었습니다. /usr/local/apache2/www/phpdir에 다음을 포함하는 test.php를 만들었습니다.

<?php
phpinfo();
?>

그런데 http://192.168.1.211/test.php호스트 웹 브라우저의 IP 주소 표시줄에 입력하면 페이지가 예상대로 표시되지 않습니다. test.php 페이지를 다운로드하라는 다운로드 대화 상자가 나타납니다. 제가 뭔가를 설정하지 않아서 httpd가 어디서 PHP 엔진을 찾을 수 있는지 모르기 때문인 것 같아요. 그렇죠? 어떡해? 그런데 저는 /usr/local/php에 PHP를 설치했습니다.

편집: 1

httpd.conf콘텐츠:

root@javis:/usr/local/apache2/conf$ grep -v ^# httpd.conf

ServerRoot "/usr/local/apache2"
Listen 80

LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule filter_module modules/mod_filter.so
LoadModule mime_module modules/mod_mime.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule env_module modules/mod_env.so
LoadModule headers_module modules/mod_headers.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
LoadModule unixd_module modules/mod_unixd.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule dir_module modules/mod_dir.so
LoadModule alias_module modules/mod_alias.so

<IfModule unixd_module>
User daemon
Group daemon

</IfModule>


ServerAdmin [email protected]

ServerName 192.168.1.210:80

<Directory />
    AllowOverride none
    Require all denied
</Directory>


DocumentRoot "/usr/local/apache2/htdocs"
<Directory "/usr/local/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

<Files ".ht*">
    Require all denied
</Files>

ErrorLog "logs/error_log"

LogLevel warn

<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    CustomLog "logs/access_log" common

</IfModule>

<IfModule alias_module> 
    ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
</IfModule>

<IfModule cgid_module>

</IfModule>

<Directory "/usr/local/apache2/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

<IfModule mime_module>

    TypesConfig conf/mime.types

    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz


</IfModule>

<IfModule proxy_html_module>
Include conf/extra/proxy-html.conf
</IfModule>

<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

Include conf/vhost/*.conf
root@javis:/usr/local/apache2/conf$ 

답변1

PHP의 올바른 AddType은 application/x-httpd-php다음과 같습니다.httpd.conf

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

또한 PHP 모듈이 로드되었는지 확인하세요.

LoadModule php5_module        modules/mod_php55.so

Apache를 구성한 다음 다른 브라우저에서 페이지를 보려고 하면 크롬이 결과를 고집스럽게 캐시하고 소스 코드를 계속 다운로드하는 날이 있었지만 다른 브라우저에서는 문제가 없었습니다.

당신은해야 할 수도 있습니다

$ a2enmod php5

답변2

귀하의 서버가 PHP 인터프리터를 실행하고 있지 않습니다. 웹 서버가 PHP 코드를 실행하기 전에 먼저 PHP를 설치해야 합니다.

sudo yum install php

좋은 효과를 얻으려면 아파치를 다시 시작하십시오. (PHP를 설치할 때 이런 일이 발생한 것 같습니다.)

일단 설치되면 php페이지는 일반 텍스트로 처리되지 않고 PHP로 렌더링되어야 합니다.

답변3

정말로 가지고 있다면

    ServerName www.phphost.com

VirtualHost정의 에서는 httpd.conf요청이 해당 도메인의 페이지에 대한 것이지만 테스트에는 타겟팅이 필요한 경우에만 해당됩니다 192.168.1.211.

관련 정보