我在虛擬機器上運行 Ubuntu 伺服器,以測試不同的網路論壇解決方案。我已經設定了一個 ~/public_html/ 以便可以透過 apache2 Web 伺服器訪問,而且效果很好。
但是,當我在瀏覽器上存取 .php 檔案(使用我的虛擬機器的 ip-address/~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
將其新增至您的 apache 設定中
AddType application/x-httpd-php .php
答案3
您需要設定 apache,以便在請求 .php 檔案時啟動 php 解釋器,而不是只傳回檔案內容。
這需要在相關目錄的 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