为什么下载PHP脚本而不是执行

我在我的Ubuntu笔记本电脑上安装了一个本地LAMP服务器,用于testing各种PHP脚本。

有时,当我做错了什么,而不是得到一个错误,我正在testing的脚本是提供下载。 为什么是这样的,如何解决?

服务器不能识别脚本作为本地执行的东西,因此它将其作为文件提供。

这些行应该出现在你的Apacheconfiguration中。 请注意,可能需要为.so模块更改path,具体取决于您的configuration:

# -- if you're using PHP 5, uncomment this line to activate it #LoadModule php5_module libexec/libphp5.so # -- if you're using PHP 4, uncomment this line to activate it #LoadModule php4_module libexec/libphp4.so AddType application/x-httpd-php .php .phtml AddType application/x-httpd-php-source .phps 

后续重新启动Apache服务和PHP应加载到Apache运行就好了。

我发现发生这种情况的一些原因是:

  • 如果PHP在服务器上configuration不正确
  • 如果该文件没有正确的.php扩展名
  • 如果它在一个不允许执行的目录中
  • 如果脚本花太长时间执行。

我使用的一个testing是在同一目录(verify.php)中创build一个包含以下内容的文件:

 <?php phpinfo(); ?> 

如果该文件在我的浏览器中执行,那么前3个点都可以

我会同意艾利,这是通常的原因。 不过,你只是有时候特意说。 任何机会你正在改变内容types头?

一个常见的错误是在标题发送之前将某些东西打印到页面上。

另外请注意,如果您的.htaccess文件与您的php脚本位于相同的文件夹中,则可能是某些执行问题的原因。

例如,如果您从另一台服务器获得站点文件的副本,那么您的htaccess文件可能具有如下一行:

 AddHandler x-httpd-php5-3 .php 

但是在你的实际服务器上,你可能正在运行另一个版本的PHP。 所以它不会正确。