基本功能是在index.php中,调用服务器上另一个位置的stream.html。两个文件在服务器上的位置分别是: 
   index.php的位置 : /usr/local/apache_arm/htdocs/index.php 
   stream.html的位置是 : /home/mjpg-streamer/www/stream.html 
像下面这样写 
<script type="text/javascript"> 
     url = new Array(); 
     url[1] = "./home/mjpg-streamer/www/stream.html"; 
或者改成: 
     url[1] = "../../../../home/mjpg-streamer/www/stream.html";
 
     url[2] = "/temperature.php"; 
     window.setInterval(function(){
document.getElementById("ifr2").src=url[2];
},1000)  
     document.getElementById("ifr1").src=url[1];
 </script>
两种类似的方式结果都会显示: 
Not Found 
The requested URL /home/mjpg-streamer/www/stream.html was not found on this server. 
  
Apache/1.3.39 Server at www.whut.edu.cn Port 80 

  
但如果像调用temperature.php那样把stream.html直接放在index.php的文件夹下,然后用url[1] = "/stream.html"调用,就可以看出来调用成了,但肯定光把网页拷过来功能不完全。 
我现在就想正常调用,从index.php调用stream.html,请问该怎么写啊 
一些本系统的其他说明附在后面,希望有助于解决问题:
主要功能就是电脑通过网络来访问开发板获得视频和传感器读数之类的。 
   开发板是用wifi(无线网卡)连接无线路由器(就是宿舍用的tplink那种类似物)。开发板是linux的系统,以固定ip192.168.1.120连到无线路由,然后电脑在浏览器输入这个地址就会访问到开发板,开发板上装了appche(web服务器软件)的arm版,然后这块我就不是很懂了。 
   我感觉上应该是开发板给pc返回一个index.php文件,然后pc的浏览器就把php文件显示了。 
   如果用同一个局域网的电脑直接输上面那个ip访问,功能基本正常。 
   然后想拓展一下,从公网访问。上网查了查,说是可以从公网输入路由器的地址,然后一般路由器有转发机制(有的叫虚拟服务器),就是把公网访问到路由器地址(学校给动态分配的地址:10.105.xxx.xxx)的某些端口的请求都转到一个局域网内的地址(192.168.1.xxx)上。 
   按照这样弄了,出现个问题,就是发现网页上的视频不能显示,就是下面stream.html的东西都没了。 
这里是index.php里视频那一块的代码 
   <script type="text/javascript"> 
   url = new Array(); 
   url[1] = "http://192.168.1.120:8080/stream.html"; 
较完整的见前面
但是如果直接输入http://192.168.1.120:8080/stream.html是可以访问到的,就是会显示视频和其他标题之类的东西。 
路由器的转发规则设的是80和8080端口全都转到192.168.1.120。
   后来发现上面的写法主要问题在于:这段代码写在index.php中,所以是从外网机上执行,而从外网肯定无法访问192.168.1.120这个ip。 然后我就想到一个解决办法,像其成功调用temperature.php一样,把stream.html也做成类似于从本地访问的形式,即前面提到的url[1] = "./home/mjpg-streamer/www/stream.html";
   然后就出现了一开始所说的问题,apache好像无法找到那个文件,所以想问问是代码写的问题,还是原理上有问题,或者请提出其他解决方法。
   本人搞硬件的,这方面属实不懂,跪求大牛教育。

解决方案 »

  1.   

    我感觉上好像是apache的配置问题,就是它只能在/usr/local/apache_arm/htdocs/这个文件夹下寻找网页文件?
      

  2.   

      index.php的位置 : /usr/local/apache_arm/htdocs/index.php  
      stream.html的位置是 : /home/mjpg-streamer/www/stream.html  
    显然后者不在 apache 管辖范围内,也就是说后者不能通过 web 方式访问如果后者能够用浏览器访问到,请给出访问时的 url
    否则,你需要将后者纳入 apache 的管辖范围:
    修改 httpd.conf
    加入
    ALIAS /www "/home/mjpg-streamer/www"这样
    url[1] = "/www/stream.html";
    就可以了
      

  3.   

    按你说的做了,还是有点问题。显示的效果和直接把stream.html拷到/usr/local/apache_arm/htdocs/文件夹下是一样的。即有字、标题、边框一类的东西,但图像哪里显示的是一个破碎的图片,好像意思是图片无法显示。
      

  4.   

    我查了一下,是不是还要再httpd.conf里写
    <Directory "/home/mjpg-streamer/www">
            Options Indexes MultiViews
            AllowOverride None
            Order allow,deny
            Allow from all
        </Directory>
    不过这个怎么配的?
      

  5.   

    Alias /www "/home/mjpg-streamer/www"
        <Directory "/home/mjpg-streamer/www">
            Options Indexes MultiViews
            AllowOverride all
            Order deny,allow
            Allow from all
        </Directory>
    <IfModule mod_alias.c>