在PHP中是否有shell_exec和proc_open的替代方案?

问题描述:

看来我不能在我的共享服务器上使用shell_execproc_open在PHP中是否有shell_exec和proc_open的替代方案?

我得到的,当我尝试使用它的消息:

警告:了shell_exec()已因安全原因被禁止在/home/georgee/public_html/admin/email.php 4号线

有没有这些功能的替代品?

+0

我需要该函数来运行另一个脚本,比如'php someotherfile.php'。 – 2010-04-17 05:49:29

+1

include someotherfile.php – 2010-04-17 06:03:58

+0

*(旁注)*检查'disable_classes'和'disable_functions'的ini设置中'phpinfo()'的输出以查看不可用的内容。 – Gordon 2010-04-17 11:12:43

我假设你想用这个进行异步处理,例如在单独的进程中发送eMails(因此在email.php中有错误)。如果是这样,请检查是否启用了cURL。您可以通过HTTP请求触发您的脚本,而无需等待响应。

延伸阅读:

如果卷曲不可用,请尝试使用非阻塞流使用方法:

为了增加安全性,可以考虑使用自定义的API密钥,所以电子邮件发送URL不能擅自触发。将它作为GET或POST传递。您也可以验证请求是否来自同一台服务器。

使用backtick operator

This答案尝试似乎暗示这些不是什么可以做。

+0

我怀疑它会起作用 – 2010-04-17 06:03:32

唯一的选择是不使用共享主机。他们不希望你这样做是有原因的。

只需跟进需要使用共享主机的人员。虽然我不再推荐HostGator由于他们的低于标准支持(由EIG购买产生),但他们允许popen