我有一個apache web服務器。假設這臺服務器的域名是example.com。瀏覽器從apache web服務器下載php文件
當我訪問example.com時,那麼index.php
文件將正確顯示在瀏覽器中。
但是,當我訪問例如example.com/~用戶,則/home/user/public_html/index.php
文件的index.php
文件被下載而不是顯示。
我該如何解決這個問題?我改變了"expose_php = Off"
php.ini
,但沒有任何改變。
我有一個apache web服務器。假設這臺服務器的域名是example.com。瀏覽器從apache web服務器下載php文件
當我訪問example.com時,那麼index.php
文件將正確顯示在瀏覽器中。
但是,當我訪問例如example.com/~用戶,則/home/user/public_html/index.php
文件的index.php
文件被下載而不是顯示。
我該如何解決這個問題?我改變了"expose_php = Off"
php.ini
,但沒有任何改變。
如果您在Debian/Ubuntu的看看這個文件/etc/apache2/mods-available/php5.conf
礦看起來像這樣,你可以看到我有評論一些行讓PHP在用戶工作目錄
<IfModule mod_php5.c>
<FilesMatch "\.ph(p3?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
# 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_value engine Off
# </Directory>
#</IfModule>
</IfModule>
請注意,編輯,你將不得不重新啓動Apache以使修改生效後的文件,命令重新啓動基於Debian的系統上的Apache是:/etc/init.d/apache2 restart
希望這樣可以節省別人的頭痛。我知道這個問題很舊,但在搜索這個問題時仍然會出現。
我不確定這是否適用於所有安裝的apache2,但我在ubuntu上運行apache2,並且遇到了我的web瀏覽器下載文件而不是顯示正確索引文件的問題。
問題出在文件中/etc/apache2/mods-enabled/dir.conf 的默認文檔設置在這裏被重寫我在/etc/apache2/httpd.conf
所以只需打開已成立up /etc/apache2/mods-enabled/dir.conf並更改所列文件的順序。
:)
我也曾有過類似的經歷 - 一些PHP文件工作正常,但其他人似乎有下載的原始PHP代碼。
在我的情況下,這是由於使用短標籤格式<的破損文件?和? >。這是不推薦的,你可能會發現默認的php.ini被強制關閉。在支持關閉的情況下,php代碼被髮送到瀏覽器,就好像它是HTML一樣。
如果無法避免短標籤(如在我的情況 - 使用短標記的整個代碼庫的遺產),那麼你可以將其設置在php.ini中被允許:
short_open_tag = On
什麼Linux發行版,你正在使用?默認情況下,debian/ubuntu禁用用戶公共目錄中的php解析。 – RageZ 2011-04-08 07:09:17