Php 如何允许Apache服务器外部访问

Php 如何允许Apache服务器外部访问,php,html,apache,web-services,ssh,Php,Html,Apache,Web Services,Ssh,我有各种运行后台程序服务的PIs,它们在引导时自动启动。我正在尝试设置一个网页来监视每个守护程序服务的状态。为此,我提出了以下PHP脚本: <?php //dashboard.php $command = "ssh -p 97 -i PI12.rsa pi@192.xxx.xx.xx tail -5 /var/log/vidlog.csv ; sudo service surround status "; $output = shell_exec($command); echo "<

我有各种运行后台程序服务的PIs,它们在引导时自动启动。我正在尝试设置一个网页来监视每个守护程序服务的状态。为此,我提出了以下PHP脚本:

<?php //dashboard.php
$command = "ssh -p 97 -i PI12.rsa pi@192.xxx.xx.xx tail -5 
/var/log/vidlog.csv ; sudo service surround status ";
$output = shell_exec($command);
echo "<pre>$output</pre> ";
?>

我假设问题是我的Apache服务器无法访问我的PI?我需要做什么才能让Apache web服务器和PI交互?

问题是www数据用户没有使用SSH连接到PI的权限

因此,我通过进入/etc/apache2/envvars并将www数据用户更改为可以访问PIs的用户,找到了解决方案:

 export APACHE_RUN_USER=myuser
 export APACHE_RUN_GROUP=myuser
致:


您向我们展示的代码根本不会运行-它有语法错误。我认为您在
sudo服务环绕状态

身份文件上没有路径-请告诉我您没有将其留在文档根目录中

使用shell_exec调用shell命令是一个非常粗糙的工具。您真的想查看返回状态和stderr。虽然可以通过IO重定向解决后者,但最好使用proc_open()来解决这两个问题


请注意,ssh(与许多Unix/Linux命令一样)有一个用于调试的-v选项,PHP有一个非常好的ssh扩展。

什么是PI?(除了3.141592…)在安装ApacheWeb服务器之后,您必须配置哪些文件应该是公共的,以及如何处理这些文件。请从一些Apache文档示例开始。e、 这个问题太广泛了,因为我们必须开始教你web服务器管理的基本知识。我指的是树莓Pi!我正在尝试使用PHP脚本从PI中提取日志文件和cron服务状态,并将内容显示在我的网页上。当前,我的apache2.conf文件具有以下内容:
选项FollowSymLinks AllowOverride无需全部拒绝AllowOverride无需全部授予的选项索引FollowSymLinks AllowOverride我的问题是如何允许Apache服务器访问Raspberry PI上的文件/文件夹。下面是我对这个问题的临时解决方案。我不熟悉proc_open(),但我会研究它。没有理由认为服务器没有访问权限-如果您的解决方案解决了这个问题,那么服务器已经有访问权限-但是它运行的用户没有。“但是它运行的用户没有”,这与我在解决方案中得出的结论相同。。
 export APACHE_RUN_USER=www-data
 export APACHE_RUN_GROUP=www-data
 export APACHE_RUN_USER=myuser
 export APACHE_RUN_GROUP=myuser