代码之家  ›  专栏  ›  技术社区  ›  3840

php脚本获取“exec格式错误”或“权限错误”

  •  1
  • 3840  · 技术社区  · 9 年前

    在尝试在新的suse企业linux 12安装上执行任何脚本时,我都会遇到“exec格式错误”或权限错误。它在sles 11上运行,但现在,甚至phpinfo都无法运行。

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

    <?php phpinfo(); ?>
    

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

    apache错误日志显示“exec格式错误”和“输出头之前的脚本结束”,当使用所有者root:root而不使用shebangand行运行时。

    当我添加一个显式标头和一个shebang行时,脚本看起来像这样

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

    结果是apache的日志文件中出现“格式错误的头”错误。

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

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

    如果有人能给我一个提示,说明如何在这个平台上运行php脚本,我会很高兴。谢谢

    1 回复  |  直到 9 年前
        1
  •  0
  •   3840    9 年前

    好吧,我自己想好了:

    mod_php5软件包已安装,但未自动激活。请执行以下操作:

    a2enmod mod_php5
    rcapache2 restart
    

    文件需要配置如下:

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