我正在编写一个 c 程序,每隔几秒就会在后台调用一个 php 脚本。所以当你第一次调用这个程序时,它会通过fork创建一个子进程,然后退出父进程,而子进程会陷入死循环。到目前为止,在无限循环中,我有 system("echo hello >> daemon.txt")
行在 hte while 循环中,它会相应地更新,所以我知道该过程正在运行。但是,当我调用我的脚本时,它似乎没有执行。
我的 php 脚本 timeChecker.php
#!/usr/bin/php
<?php
$handle =fopen("hello","a");
fwrite($handle, "boo\n");
fclose($handle);
?>
当使用 php timeChecker.php 或 ./timeChecker.php 从命令行调用时,代码会按预期执行。
但是,在尝试了多种调用命令的方法之后,例如 system("php timeChecker.php")
, system("/usr/bin/php timeChecker.php")
, system("/usr/bin/php var/www/timeChecker.php")
, system("/var/www/timeChecker.php")
以及它的所有变体,代码仍然不执行。我做错了什么简单的事情吗?或者我应该简单地使用不同的方法来检查脚本?
最佳答案
正如您在问题中所建议的,php 脚本位于“/var/www”中。 您是否有在该目录中执行的权限?
test是通过system()调用脚本的c程序。 我让它以这种方式工作:
sudo mkdir /var/www/script_dir
sudo mv timeChecker.php /var/www/script_dir
sudo mv test /var/www/script_dir
sudo chown -R myusername:myusername /var/www/script_dir
从 script_dir 执行测试。
关于php - 我如何使用 system() 从 c 程序调用 php 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24848243/