无法使用php通过apache2执行bash脚本和程序?

2024-06-16 12:17:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两台电脑相互连接,如图所示

PC1<;=============>;PC2

PC2运行着apache2,有两个可执行的python1.py和python2.py python程序文件

我想创建一个php脚本,它将生成一个简单的网页,有两个按钮button1和button2。单击按钮1时,python1.py应在PC2上执行,如果单击按钮2,则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');
?>

其中/测试.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');'

Tags: py命令echovarhtmlwwwshline
1条回答
网友
1楼 · 发布于 2024-06-16 12:17:16

您没有将page1.php作为PHP脚本执行。没有shebang行(例如#!/usr/bin/env bash),脚本就无法正确解释。出现这些错误是因为bash试图解释您的文件,而不是PHP。您有两种选择:

  1. 在脚本的开头放一行shebang:#!/usr/bin/env php
  2. 使用PHP cli执行文件:php ./page1.php

如果您还打算通过apache、nginx等使用脚本,我建议使用#2,否则#1更有意义。你知道吗

相关问题 更多 >