我有两台PC互相连接,如图所示
PC1< ==============> PC2
PC2运行apache2并有两个可执行的python程序文件python1.py和python2.py
我想创建一个php脚本,它会生成一个带有两个按钮button1和button2的简单网页。单击button1时,python1.py应该在PC2上执行,如果单击button2而不是python2.py那么它们在PC2自身上显示数据并且不向PC1发送输出。
我开始创建以下基本脚本,成功运行'ls'等命令并成功运行这些命令并在PC1上显示结果作为测试,
我有以下问题:
1)在PC2上运行命令并在自己的终端上显示数据? 2)我无法执行像'firefox'这样的单独命令,因为它没有给出任何错误但也没有启动firefox ..因此我如何执行python文件?
<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>
以上工作但当我将其修改为类似下面的内容时,ID不起作用:
<?php
shell_exec('firefox');
?>
或
<?php
shell_exec('/var/www/html/test.sh');
?>
其中./test.sh可执行且具有:
#!/bin/bash
firefox
如果我单独运行bash脚本,它会启动firefox。我希望通过按下网页上的按钮远程完成此操作。
我试过这段代码:
<?php
echo exec('/usr/bin/firefox');
?>
它给出了:
root@astitva-Vostro-3446:/var/www/html# ./page1.php
./page1.php: line 2: ?php: No such file or directory
./page1.php: line 3: syntax error near unexpected token `('
./page1.php: line 3: `echo exec('/usr/bin/firefox');'
并且因为firefox是GUI因此尝试了以下:
<?php
echo exec('/var/www/html/test.sh');
?>
它给出了:
root@astitva-Vostro-3446:/var/www/html# ./page1.php
./page1.php: line 2: ?php: No such file or directory
./page1.php: line 3: syntax error near unexpected token `('
./page1.php: line 3: `echo exec('/var/www/html/test.sh');'
答案 0 :(得分:0)
您没有将page1.php
作为PHP脚本执行。如果没有shebang行(例如#!/usr/bin/env bash
),则无法正确解释脚本。您正在接收的错误正在出现,因为bash正在尝试解释您的文件,而不是PHP。您有两种选择:
#!/usr/bin/env php
php ./page1.php
如果您还要通过apache,nginx等使用脚本,我建议#2。否则#1更有意义。