【问题标题】:Unable to run Bash Script from PHP Code out of HTML Page无法从 HTML 页面的 PHP 代码运行 Bash 脚本
【发布时间】:2021-09-02 16:54:01
【问题描述】:

这里有个小问题。 已经尝试了很多我在网上找到的方法来解决这个问题,但到目前为止还没有成功。

当单击静态 HTML 端的按钮时,我正在尝试执行服务器端 Linux Bash 脚本。 它只是不起作用。

我的设置是一个运行在 ubuntu 上的 nginx 网络服务器,有一个包含 PHP 代码的静态 HTML 页面:

Ubuntu 版本:18.04.2 LTS(仿生海狸)/ Linux 版本:5.4.0-42-generic / Nginx 版本:nginx/1.14.0 (Ubuntu) / PHP版本:7.4.11

Bash 脚本与网站的 index.html 存储在同一文件夹中 (/var/www/website)。 出于测试目的,将脚本文件的所有权授予用户 www-data,甚至授予所有用户对该文件的完全访问权限(chmod 777 script.sh), 脚本文件也绝对是可执行的。

这也很好用: sudo -u www-data php -r "shell_exec('bash script.sh');"

HTML 文件中的 PHP 代码:

<?php
    shell_exec('bash script.sh)';
?>

用一些回声测试这部分得到执行。看起来也不错。

但是脚本永远不会运行..

非常感谢任何提示,您可能会说,我的网络技能和我的脚本技能一样糟糕;)

非常感谢和最好的问候

七月

【问题讨论】:

  • 您必须将 php 代码放入 .php 文件而不是 .html 文件中,但如果可以,请检查 script.sh 文件的第一行是否包含 #!/bin/bash。也许只有shell_exec('./script.sh)'; 就足够了。或者尝试指定脚本的完整路径,如shell_exec('bash /var/www/website/script.sh)';
  • @hloland 非常感谢您的提示!我尝试将 php 代码放在 .php 文件中并包含文件 html 代码,但没有让它工作,但我会继续朝这个方向尝试。 script.sh 肯定没问题 :)

标签: php html linux nginx scripting


【解决方案1】:

shellscript 是否可以在没有 sudo 的情况下执行?可以试试

chmod +x script.sh

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-04
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多