gpt4 book ai didi

php - 从 PHP 运行 node.js 脚本时无法访问文件

转载 作者:行者123 更新时间:2023-12-04 18:42:55 25 4
gpt4 key购买 nike

我将我的 PHP 脚本设置为使用 exec 运行我的 Node 脚本exec("node ../server/server-manager/server-manager.js &");但是,我的 Node 脚本无法创建日志文件并输出此错误。{ Error: EACCES: permission denied, open '../../logs/server-manager/server-manager.06-20-2021 11-01-59 PM.log'我假设它是因为 PHP 脚本没有足够的权限以 root 身份运行 Node 脚本。
我尝试将脚本和文件夹权限更改为 777,但问题仍然存在。
如何让我的 PHP 脚本以完全访问权限运行我的 Node 脚本?
这是我的脚本的输出:

Current directory:  /var/www/image-game/top/server/server-manager

{ Error: EACCES: permission denied, open '../../logs/server-manager/server-manager.06-21-2021 00-53-22 AM.log'
at Object.openSync (fs.js:443:3)
at Object.writeFileSync (fs.js:1194:35)
at Object.appendFileSync (fs.js:1240:6)
at Console.console.log (/var/www/image-game/top/server/console.to.file.js:21:6)
at Object. (/var/www/image-game/top/server/server-manager/server-manager.js:71:9)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
errno: -13,
syscall: 'open',
code: 'EACCES',
path:'../../logs/server-manager/server-manager.06-21-2021 00-53-22 AM.log' }

最佳答案

除非您安装了只读路径或使用 acls,否则其他深奥的设置 chmod 应该足以使其工作。
那么,你确定路径扩展吗?
您可以这样做以查看命令正在使用的当前工作目录

echo shell_exec("pwd");
因此费用
echo shell_exec("realpath ../../logs");
另外,您确定正在运行的用户吗?
echo shell_exec("id"); // may show www-data
因为提供访问权限的一种方法是执行 chmod 777。另一种方法是将文件夹添加到运行 php 的那个文件夹中。 chown www-data 也应该工作

关于php - 从 PHP 运行 node.js 脚本时无法访问文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68060725/

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