小编arm*_*ani的帖子

PHP不是从Raspberry Pi上的网页执行[但在PHP-CLI中很好]

建立:

  • 覆盆子皮
  • nginx web服务器
  • 安装了PHP5和PHP-CLI

我的Python脚本"lights.py"非常酷,因为它通过连接到Arduino Uno [然后通过USB连接到Pi]的继电器打开/关闭我客厅的灯光.我知道我可以使用Pi的GPIO引脚,但我没有.无论如何,这无关紧要.

我希望能够通过我的Pi托管的网站从Web浏览器激活脚本,所以我的/var/wwww/test/lights.php包含以下代码:

<?php
 exec('python lights.py');
?>
Run Code Online (Sandbox Code Playgroud)

简单,不是吗?好吧,当我在浏览器中浏览该页面时,没有任何显示(预期),但灯光不会改变状态(意外). 但是,在命令行,以用户Pi身份登录,我可以运行"php /var/wwww/test/lights.php",它运行正常!

我想这是因为nginx似乎使用这个名为www-data的用户来做东西,所以也许它的权限问题呢?现在我正在为我徘徊在未知领域...我尝试了"su - www-data",看看我是否可以尝试使用该用户的脚本,但它要求输入密码,我从未设置过(并且空白密码不起作用).

非常感谢任何帮助.

更新 - 这是"ls -la/var/www/test/lights*"

-rw-r--r-- 1 www-data root  37 Feb  1 23:56 /var/www/test/lights.php
-rwxr-xr-x 1 www-data root 129 Feb  1 23:51 /var/www/test/lights.py
Run Code Online (Sandbox Code Playgroud)

第二次更新 - 检查:

pi@raspberrypi ~ $ sudo su - www-data
$ pwd
/var/www
$ php ./test/lights.php
python: can't open file 'lights.py': [Errno 2] No such file or directory
$ python ./test/lights.py
Traceback (most recent call last):
  File …
Run Code Online (Sandbox Code Playgroud)

php nginx raspberry-pi

7
推荐指数
1
解决办法
4074
查看次数

Android 应用程序在物理设备而非模拟器上崩溃:“Parcel: dup() 在 Parcel::read [...] 中失败:错误:打开的文件太多”

我正在尝试将旧手机变成联网的安全摄像头,因为在所有这些骚乱期间,我所在地区的犯罪率急剧增加(而且我不想依赖其他人的应用程序来控制对我私人时刻的访问)。

我正在分块发送,所以摄像机会记录视频几秒钟,然后停止,将捕获的文件的二进制文件编码为 Base64,然后通过 POST 请求将其发送到家庭服务器,所有这些都是无限循环的。服务器解包 + 解码 + 将其作为原始二进制“MP4”保存到自己的磁盘上(TODO:运动检测的有趣后处理)。

在(和周围)我的目标手机的操作系统版本和屏幕尺寸上使用各种虚拟设备,这一切都可以长时间工作。我已经使用 60 秒的块超过 15 分钟,加上 6 秒的块超过一个小时。我一直收到模拟器在我的服务器上生成的愚蠢的虚拟房间视频。

但是在运行 Android 6.0.1 并梦想成为安全摄像头的三星 Galaxy S5 上,通常需要发送 2 到 3 个视频,然后应用程序才会崩溃……除非您将分辨率设置得太高,然后您会遇到不同的症状。

症状 #0:在块的末尾崩溃

E/Parcel:dup() 在 Parcel::read 中失败,i 为 1,fds[i] 为 -1,fd_count 为 2,错误:打开的文件太多

E/Surface:dequeueBuffer:IGraphicBufferProducer::requestBuffer 失败:-22

W/Adreno-EGLSUB: DequeueBuffer:721: dequeue native buffer failure: Invalid argument, buffer=0x0, handle=0x0

W/Adreno-EGL: <qeglDrvAPI_eglSwapBuffers:3800>: EGL_BAD_SURFACE

紧随其后的是第二个错误:

E/CameraDeviceGLThread-1:在 GL 渲染线程上收到异常:

java.lang.IllegalStateException: swapBuffers: EGL error: 0x300d
Run Code Online (Sandbox Code Playgroud)

最后,一旦块时间到了,相机再次开始录制,就会发生最终错误,使整个应用程序崩溃:

I/CameraDeviceState:传统相机服务转换到状态 ERROR

E/AndroidRuntime:致命异常:CameraThread

Process: com.example.roselawncam, PID: 14639
Run Code Online (Sandbox Code Playgroud)

android.hardware.camera2.CameraAccessException: 相机设备遇到严重错误

症状#1:在块中间崩溃,因为您为了自己的利益而使用太高分辨率

这些警告清楚地表明资源紧张会导致此症状。它们发生在应用程序崩溃时,更高的分辨率会导致更快的崩溃。我给这些坏男孩计时:

  • 1920x1080 (30 FPS):5 秒 …

android video-capture kotlin

5
推荐指数
1
解决办法
492
查看次数

在编译时等待许多未知的 future

我想利用 Tokio 的运行时来处理可变数量的异步 future。由于 futures 的数量在编译时是未知的,似乎FuturesUnordered是我最好的选择(宏,例如select!需要在编译时指定您的分支;join_all可能是可能的,但文档建议“在很多情况下”当 order 不可用时使用 FuturesUnordered )没关系)。

这段代码的逻辑是一个recv()循环被推送到futures桶中,它应该始终运行。当新数据到达时,它的解析/处理也被推送到 futures 桶(而不是立即处理)。这确保接收器在响应新事件时保持低延迟,并且数据处理(可能需要大量计算的解密)与所有其他数据处理异步块(加上侦听接收器)同时发生。

.boxed()顺便说一句,这个帖子解释了为什么期货会变得。

问题是这个神秘的错误:

错误[E0277] :`dyn futures::Future<Output = ()> + std::marker::Send` 无法在线程之间安全共享
  --> src/main.rs:27:8
    | 
27  | 27     }).boxed());
   |        ^^^^^  `dyn futures::Future<Output = ()> + std::marker::Send` 无法在线程之间安全共享
   | 
   = help : `dyn futures::Future<Output = ()> + std::marker::Send` 未实现 `Sync` 特性
   =注意:需要,因为 `Sync` 的 impl 要求Unique<dyn futures::Future<Output = ()> + std::marker::Send>`
    = note:必需的,因为它出现在类型 `Box<dyn futures::Future<Output = ()> …

rust async-await rust-tokio

5
推荐指数
1
解决办法
2861
查看次数

Python"While"循环逻辑错误?

我有一个Python脚本,每5秒查询一次MySQL数据库,收集帮助台票证的最新三个ID.我使用MySQLdb作为我的驱动程序.但问题是在我的"while"循环中,当我检查两个数组是否相等时.如果它们不相等,我会打印出"新票已到达".但这永远不会打印!看我的代码:

import MySQLdb
import time

# Connect
db = MySQLdb.connect(host="MySQL.example.com", user="example", passwd="example", db="helpdesk_db", port=4040)
cursor = db.cursor()

IDarray = ([0,0,0])
IDarray_prev = ([0,0,0])

cursor.execute("SELECT id FROM Tickets ORDER BY id DESC limit 3;")
numrows = int(cursor.rowcount)
for x in range(0,numrows):
   row = cursor.fetchone()
   for num in row:
      IDarray_prev[x] = int(num)
cursor.close()
db.commit()

while 1:
   cursor = db.cursor()
   cursor.execute("SELECT id FROM Tickets ORDER BY id DESC limit 3;")

   numrows = int(cursor.rowcount)
   for x in range(0,numrows):
      row = cursor.fetchone()
      for num in …
Run Code Online (Sandbox Code Playgroud)

python logic while-loop

3
推荐指数
1
解决办法
407
查看次数

有人可以为我翻译这个写得很糟糕的Perl代码吗?

我需要获得这个Perl代码中使用的算法,但我对Perl一无所知.通常这不是问题,因为我会研究这种语言,但这种正则表达式的东西已经超出我的想象!

任何人都可以伪代码吗?我只需要知道发生了什么,所以我可以用其他东西来实现它,最好是PHP甚至是C++,但我会担心那部分.我只需要以某种方式破译这是做什么的:

$a = $ARGV[0];
$a =~ s/[^A-F0-9]+//simg;
@b = reverse split /(\S{2})/,$a;
$c = join "", @b;
$c .= "0000";
$d = hex($c) % 999999929;
print "$d\n";
Run Code Online (Sandbox Code Playgroud)

perl

3
推荐指数
1
解决办法
321
查看次数

简单的PHP问题,我敢肯定

我刚刚建立了一个新的Ubuntu 12.04 LTS 64位服务器,为它附带的Apache选择任何软件包.我正在尝试在浏览器中打开此index.html文件:

<html><body><h1>Testing Database</h1>

<?php

$con=mysql_connect("localhost","****","****");
if(!$con) {die('Could not connect: ' . mysql_error());

mysql_select_db("Test", $con);
$result=mysql_query("SELECT * FROM main");
while($row=mysql_fetch_array($result))
{
   echo $row['id'] . " " . $row['name'];
   echo "<br />";
}

mysql_close($con);
?>

</body></html>
Run Code Online (Sandbox Code Playgroud)

我在MySQL中创建了一个数据库和表.我制作了一个运行得很<?php phpinfo(); ?>好的phpinfo.php文件(含).但由于某种原因,Internet Explorer只显示标题[测试数据库],Chrome只显示标题,加上:

"; } mysql_close($con); ?>
Run Code Online (Sandbox Code Playgroud)

我在这里关注教程,我的设置有问题吗?我觉得我在这一小块代码中缺少某种括号,但找不到它.

php mysql apache ubuntu

0
推荐指数
1
解决办法
123
查看次数

Python - 在Windows中打开带有通配符(%)目录路径的文件

在Python中,我正在尝试打开一个保存到%TEMP%目录的文件.我试过了:

file = open("%TEMP%\file.txt")
Run Code Online (Sandbox Code Playgroud)

file = open("%%TEMP%%\file.txt")
Run Code Online (Sandbox Code Playgroud)

file = open("%TEMP%\\file.txt")
Run Code Online (Sandbox Code Playgroud)

file = open("%%TEMP%%\\file.txt")
Run Code Online (Sandbox Code Playgroud)

总是得到(这个专门用于最后一个例子):

IOError: [Errno 2] No such file or directory: '%%TEMP%%\\file.txt'
Run Code Online (Sandbox Code Playgroud)

为了理智,从Windows命令提示符我做了一个type %TEMP%\file.txt,它打印出文件确定.有帮助吗?

python windows file

0
推荐指数
1
解决办法
498
查看次数