【发布时间】: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