Debian apache2 沒有執行 php 腳本,而是顯示原始碼
我知道這可能是網上討論最多的話題,我確實在這裡搜尋和 stackexchange 並嘗試了各種答案,但似乎沒有一個對我有用,因此我發布這個。
我有一個帶有 LAMP 堆棧的 Debian,最近不得不將 php 從 5.4 升級到 5.6(最新)。
我首先刪除了這樣的舊版本:
a2dismod php5
sudo apt-get –remove –purge libapache2-mod-php5filter libapache2-mod-php5 libphp5-embed php-pear php5 php5-cli php5-common php5-curl php5-dev php5-gd php5-mcrypt php5-mysql
在我的文件中添加了以下內容
/etc/apt/sources.list
:deb http://packages.dotdeb.org wheezy all deb-src http://packages.dotdeb.org wheezy all deb http://packages.dotdeb.org wheezy-php56-zts all deb-src http://packages.dotdeb.org wheezy-php56-zts all
並執行以下命令:
wget https://www.dotdeb.org/dotdeb.gpg sudo apt-key add dotdeb.gpg sudo apt-get update sudo apt-get upgrade sudo apt-get install libapache2-mod-php5 php-pear php5 php5-cli php5-common php5-curl php5-dev php5-gd php5-mcrypt php5-mysql php5-mysqlnd
然後我用這個命令啟用了 php5 並用這個命令
a2enmod php5
重新啟動了 apache2service apache2 restart
當我訪問網站上的一個 PHP 腳本時,我看到了原始碼,但該腳本沒有被執行。
在伺服器上,我可以看到 PHP5.6 已正確安裝:
root@server:~# php -v PHP 5.6.18-1~dotdeb+zts+7.1 (cli) (built: Feb 6 2016 23:39:42) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
我可以看到在 apache2 中啟用了 PHP5 模組:
以下是這些文件的內容:
我什至嘗試重新啟動整個伺服器,它沒有幫助。我已經檢查過了
/var/log/apache2/error.log
,我沒有看到任何錯誤。我所看到的是:[Tue Feb 09 12:52:09 2016] [notice] Digest: generating secret for digest authentication ... [Tue Feb 09 12:52:09 2016] [notice] Digest: done [Tue Feb 09 12:52:09 2016] [notice] Apache/2.2.22 (Debian) mod_ssl/2.2.22 OpenSSL/1.0.1e configured -- resuming normal operations
我在 apache2 中使用 VirtualHost 來服務該站點。這是我的條目:
<VirtualHost *:80> ServerAdmin support@mydomain.com ServerName www.mydomain.com DocumentRoot /home/setup/public_html <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /home/setup/public_html/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost>
知道為什麼 PHP 腳本沒有被執行嗎?我錯過了什麼?任何幫助將不勝感激。
好的,我已經修好了。
我刪除了以下內容:
# Running PHP scripts in user directories is disabled by default # # 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. <IfModule mod_userdir.c> <Directory /home/*/public_html> php_admin_flag engine Off </Directory> </IfModule>
從
/etc/apache2/mods-enabled/php5.conf
並重新啟動 apache 和 PHP 現在可以工作了。