php 个脚本获得 'exec format error' 或 'permission error'

php scripts get 'exec format error' or 'permission error'

我尝试在全新的 suse enterprise linux 12 安装上执行任何脚本时遇到 'exec format error' 或权限错误。它适用于 sles 11,但现在,甚至 phpinfo 也不起作用。

所以为了测试,我使用了这条简单的线

<?php phpinfo(); ?>

在命令行上通过 php -f test.php 工作正常。当使用 cgi 目录中的 url 从浏览器调用它时,会导致错误 500.

apache 错误日志显示 'exec format error' 和 'end of script before output headers' 当 运行 它的所有者 root:root 没有 shebangand 行时。

当我添加一个明确的 header 和一个 shebang 行时,脚本看起来像这样

#! /usr/bin/env php
<?php
header('Content-Type: text/html');
phpinfo();
?>

结果是 apache 日志文件中的 'malformed header' 错误。

文件的权限一直设置为-rw-r--r--。将所有权从 root:root 更改为 wwwrun:www 时,没有任何变化。从正常的 htdocs 目录,浏览器提示下载文件。

我已确保安装了 bot php5 和 apache2-mod_php5 软件包。

如果有人能就如何获得 php 脚本 运行 给出提示,我会很高兴。谢谢!

好的,我自己想出来了:

mod_php5 软件包已安装,但并未自动激活。做:

a2enmod mod_php5
rcapache2 restart

文件需要配置如下:

-rwxr-xr-x 1 wwwrun www  54 Feb 13 13:43 test.php