/var/www/html/-6ren">
gpt4 book ai didi

php - 运行 php shell_exec 而不向浏览器返回结果?

转载 作者:太空宇宙 更新时间:2023-11-04 10:57:06 24 4
gpt4 key购买 nike

好吧,我正在做一场关于权限的噩梦..

我有 /var/www/src/myshell.sh 是可执行的

#!/bin/bash
echo "It's working" > /var/www/html/myshell.txt

这在 CLI 中运行良好,创建的 txt 文件包含“正在运行”文本。

但是当我尝试从 /var/www/html/test.php

运行它时
<?php
$message=shell_exec("/var/www/src/myshell.sh 2>&1");
print_r($message);
?>

它在浏览器中返回以下内容:

/var/www/src/myshell.sh: line 3: /var/www/html/myshell.txt: Permission denied 

并且 myshell.txt 不是在/var/www/html 中创建的

我昨晚整晚都在尝试我能在 SO 和其他地方找到的所有可能的方法来设置正确的权限但无济于事所以我放弃了尝试弄清楚它并想知道是否可以运行此 shell 脚本没有尝试将任何内容返回给浏览器,因为这似乎导致了权限错误。

所以基本上 test.php 启动 .sh 脚本然后忘记它。我打算在这里使用的进程无论如何都不需要发送回浏览器。

这是否可以通过不使用 shell_exec 而是使用另一个 php 命令来实现?

非常感谢

最佳答案

apache 用户没有权限写入“/var/www/html/”。

另外,不要在那里写入,而是创建另一个文件夹并设置写入权限,例如“/var/www/html/var/”,设置该文件夹的写入权限并将其用于任何动态内容。

关于php - 运行 php shell_exec 而不向浏览器返回结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28458064/

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