저는 다양한 웹 포럼 솔루션을 테스트하기 위해 VM에서 Ubuntu Server를 실행하고 있습니다. apache2 웹 서버에서 액세스할 수 있도록 ~/public_html/을 설정했는데 제대로 작동합니다.
그러나 브라우저에서 .php 파일로 이동하면(내 VM의 IP 주소/~username/phpfile.php 사용) 파일이 제대로 표시되지 않습니다. 대신 파일에 저장할 것을 제안하거나 어떤 프로그램으로 열 것인지 묻습니다. 흥미롭게도 해당 대화 상자는 그것이 PHP 파일임을 인식합니다.
시스템에 다음 버전의 PHP가 설치되어 있습니다.
PHP 5.3.2-1ubuntu4.5 with Suhosin-Patch (cli) (built: Sep 17 2010 13:49:46)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
그리고 다음 서버:
Server version: Apache/2.2.14 (Ubuntu)
Server built: Nov 18 2010 21:19:09
이/잠재적인 해결책의 원인이 무엇인지 아는 사람이 있다면 매우 기쁠 것입니다. :)
편집: 이 동작은 ~/public_html/ 디렉토리의 파일에서만 명백하게 나타납니다. /var/www/에 있는 모든 PHP 파일은 정상적으로 작동합니다.
그 이유를 설명할 수 있는 사람에게 상이 가나요? :D (그리고 상이란 단지 잘한 일을 의미할 뿐 실제 상은 없습니다.)
답변1
현재 PHP의 CLI 버전만 설치되어 있을 수 있습니다.
sudo apt-get install php5
그리고 아파치를 다시 시작하세요
sudo apache2ctl restart
.
다음을 수행하여 PHP 모듈이 Apache에 로드되었는지 확인할 수도 있습니다.
sudo apache2ctl -M
모듈이 로드되면 다음과 같은 내용이 표시되어야 합니다.
Loaded Modules:
...
php5_module (shared)
...
Syntax OK
답변2
이것을 아파치 구성에 추가하십시오
AddType application/x-httpd-php .php
답변3
.php 파일이 요청될 때 파일 내용을 반환하는 대신 PHP 인터프리터를 시작하도록 Apache를 구성해야 합니다.
이는 해당 디렉토리에 대한 httpd.conf에서 수행되어야 합니다. 다음과 같이 보일 것입니다 :
# Use for PHP 5.x:
LoadModule php5_module modules/libphp5.so
AddHandler php5-script php
# Add index.php to your DirectoryIndex line:
DirectoryIndex index.html index.php
AddType text/html php