php 脚本获取 'exec format error' 或 'permission error'

标签 php linux apache suse

尝试在全新的 suse enterprise linux 12 安装上执行任何脚本时,我收到“exec 格式错误”或权限错误。它适用于 sles 11,但现在,即使 phpinfo 也不起作用。

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

<?php phpinfo(); ?>

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

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

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

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

结果是 apache 日志文件中出现“格式错误的 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

关于php 脚本获取 'exec format error' 或 'permission error',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28499844/

相关文章:

macos - Mac OSX 如何确定要加载哪个 dylib?

apache - 如何在服务器 Windows 中的 plesk17 上安装 Apache

php - 从 .PHP 文件运行 BASH 脚本

c - 以编程方式或来自 procfs 的 netstat 进程名称信息

linux - repo 无法在 Macbook 上的 Ubuntu 16,0 虚拟机上初始化

php - SQL 查询值未传递给 PHP 对象

java - Lucene 4.3.0 的简单测试代码不起作用

PHP Excel导出仅显示MYsql表的最后一行

PHP准备语句插入数据库

php - 如何在PHP项目中使用grunt-usemin?