gpt4 book ai didi

java - exec() 在树莓派上的 php-cgi 中的 java 程序上

转载 作者:太空宇宙 更新时间:2023-11-04 15:08:43 27 4
gpt4 key购买 nike

所以,我有一个 php 应用程序,通过 cgi 和 nginx 运行。我有一个 .jar 程序,用于在条形码打印机(Zebra)上打印条形码,猜猜看是什么!。

我的 php 应用程序使用 exec() 命令运行 .jar 程序。在我的电脑上(php、cgi、nginx、debian 测试),它可以工作。

现在,我正在尝试同样的事情,但在树莓派上。 Debian(喘息,树莓版本),php,cgi,nginx。exec() 命令不会失败(以我没有收到巨大 fatal error 的方式),不会返回任何内容,也不会成功。

当我使用 www-data 用户(运行 nginx/php-cgi 的用户)在 shell 中尝试时,java 命令工作正常。当我将它放入 php-cli (cli,而不是 cgi)脚本中,并使用 shell 中的 php 命令和 www-data 用户运行它时,它就可以工作了:

<?php exec('java -cp /path/ Methode options');?>
$ php print.php

Cups配置似乎没问题(我(pi用户)可以打印,www-data用户可以通过命令行(shell)打印,root可以打印,每个人都可以)。

我很困惑,找不到问题出在哪里。

最佳答案

尝试在 exec() 末尾添加 2>&1,例如: exec('java -cp/path/Method options 2>&1');

编辑:如果它是真正的服务器,我不会建议你这样做;但由于它是 PI,您可以编辑 sudoers 文件并添加以下内容

运行sudo visudo

并添加:

www-data ALL=NOPASSWD: ALL

现在修改您的执行字符串:exec('sudo java -cp/path/方法选项');

关于java - exec() 在树莓派上的 php-cgi 中的 java 程序上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21628948/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com