浏览器从apache web服务器下载php文件
我有一个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