Virtualmin' Feed to Program'无法打开文件

时间:2015-03-08 06:31:11

标签: php postfix-mta webmin

我在具有多个域的Centos6 vps服务器上运行Virtualmin。我试图将电子邮件发送到转发到php脚本的电子邮件别名。

电子邮件无法送达,并显示以下消息......

Command died with status 1: "php
/home/mydomain/public_html/mail_pipe.php". Command output: Could not
open input file: /home/mydomain/public_html/mail_pipe.php

我将路径定义为

php /home/mydomain/public_html/mail_pipe.php

我已将文件权限设置为0777 + x

在mail_pipe.php里面我有一个我以前用过的邮件解析脚本。由于那不起作用,现在我只是想做一些事情,所以我可以看到文件是否被访问,因为错误消息说它无法打开文件。

#!/usr/bin/php -q
<?php
    $myFile = "steve.txt";
    $fh = fopen($myFile, 'a');

    $stringData = "File was opened \n";
    fwrite($fh, $stringData);
    fclose($fh);
?>

我很确定它实际上是在尝试打开正确的文件,因为当目标文件不存在时,我找不到文件错误。

上次我这样做时,我得到了帮助。他做了所有服务器端设置,而我处理了PHP脚本。所以我在这里有点偏离我的元素。

2 个答案:

答案 0 :(得分:1)

因此,在与Jamie谈论此事后,这个特定工作流程的用例非常有限。

但是,有一种方法可以实现您的目标,即为此操作创建用户,然后以该用户身份登录到Usermin,并将转发设置为该用户的脚本。

它在Virtualmin中不起作用的原因是别名正在被处理为无人(或系统上的任何后缀用户)用户,该用户无权访问用户主目录。在Usermin下创建它时,它将通过procmail作为创建规则的用户执行操作,因此用户将拥有运行脚本并写入文件所需的权限。

另一种解决方法是,如果脚本不需要向用户的家中写任何内容(例如复杂的自动应答器或其他内容),则将脚本放在没有人的位置访问。

我们目前正在讨论是否要从Virtualmin表单中删除它(因为它具有如此有限的用途并且可能令人困惑),或者使其实际按预期工作。我倾向于让它按预期工作,但考虑到当前的工作方式可能会带来安全性。

答案 1 :(得分:1)

这些是我使用Virtualmin 4.14进行此操作的步骤。

从Virtualmin主页,选择所需的域。

点击&#34;编辑用户&#34;

创建/选择将转发的用户。

点击&#34;登录Usermin&#34;在底部。 (注意:如果不存在,请重启Usermin)

点击&#34; Usermin&#34;在Virtualmin徽标旁边的左上角。 (不直观)

点击&#34;邮件&#34;打开邮件菜单。

点击&#34;邮件转发和回复&#34;

点击&#34;添加邮件转发规则&#34;

点击&#34;启用&#34;

选择&#34; Feed to program&#34;

输入邮件脚本的完整路径。 ie&#39; /home/mydomain/public_html/mail_pipe.php'

文件必须:存在/以shebang / be executable开头

非常感谢Stuporglue用这个脚本作为我的起点...

https://github.com/stuporglue/mailreader