![내 웹 브라우저가 .php 페이지를 표시하지 않고 계속 다운로드하는 이유는 무엇입니까?](https://linux55.com/image/89909/%EB%82%B4%20%EC%9B%B9%20%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80%EA%B0%80%20.php%20%ED%8E%98%EC%9D%B4%EC%A7%80%EB%A5%BC%20%ED%91%9C%EC%8B%9C%ED%95%98%EC%A7%80%20%EC%95%8A%EA%B3%A0%20%EA%B3%84%EC%86%8D%20%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C%ED%95%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
VMware Workstation에 CentOS7 시스템을 설치했습니다. 호스트 OS는 Win7입니다. CentOS에서 apache2(httpd)와 MySQL을 컴파일하고 설치했는데 둘 다 잘 작동합니다. 즉, 호스트의 웹 브라우저에서 index.html 페이지에 액세스할 수 있습니다. 그럼 내가 그랬어
wget
php-5.5.37.tar.gztar
그것configure
그것- 그리고 그것
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
.