【问题标题】:How to run a php CLI script from a website [duplicate]如何从网站运行 php CLI 脚本 [重复]
【发布时间】:2012-08-20 14:56:48
【问题描述】:

可能重复:
Run a PHP CLI script from a webpage


我这里有个问题.. 它是关于如何从网页运行 php cli 脚本..
请注意,我使用的是本地主机并且安全模式已关闭..

我已经尝试过 exec() 、 system() 和许多其他方法。
这是我想要做的一个示例:

该网站包含:

<?php
//blabla
$command = "/usr/bin/php test.php";
exec($command);
//blabla
?>

为了检查脚本是否成功运行,脚本“test.php”包含:

<?php
$file = "/home/Me/Desktop/cccc.txt";
$fp = fopen($file, 'w');
fwrite($fp, 'aaaaa');
fclose($fp);
?>

从命令行执行该脚本是可以的,但是当我从网站执行它时它不起作用
有什么想法吗?

【问题讨论】:

  • 网络服务器是否有权写入桌面文件夹?当您从网页运行脚本时,它以网络服务器的用户身份执行,而当直接从命令行执行时,它以您登录的任何用户身份执行
  • @Matt 我读到了,但它没有帮助.. 所以我决定发布一个问题以获得直接答案..
  • @PatrickEvans 我不知道它是否有权限,但我在许多其他文件夹中尝试过。我什至尝试运行其他包含 pcntl_fork() 的脚本并观察了系统..因为那是我接下来要做的:)

标签: php html exec command-line-interface execute


【解决方案1】:

尝试使用更简单的命令,例如 exec("dir")。

如果可行,请尝试 whoiam() 并查找权限。

【讨论】:

  • 这段代码完美运行:exec('ls', $out); print_r($out);我不知道我现在要做什么:/
  • 并执行:echo exec(whoami);返回:www-data
  • 然后写perms prob,确保www-data可以写在dir上。
  • 不,它不能......这是问题......谢谢:)
【解决方案2】:

你需要告诉命令行命令test.php在哪里; “工作目录”几乎肯定不是是 PHP 文件的位置。

试试$command = '/usr/bin/php ' . dirname(__FILE__) . 'test.php';

【讨论】:

    【解决方案3】:

    确保网站用户(通常是 apache)有权执行此脚本。

    【讨论】:

    • 我该怎么做呢?并感谢您的快速回答:)
    • 它还需要权限才能写入该目录中的cccc.txt
    • @ExplosionPills 我认为它有权执行此操作.. 任何方式.. 这是一个示例,因为如果此脚本有效,我会将基础知识用于另一个..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 2015-04-21
    相关资源
    最近更新 更多