php - 如何从 php/html 执行 shell 脚本?

标签 php html linux bash shell

如何从 PHP 或 HTML 执行 shell 脚本文件。 sh文件位于localhost目录之外,还有很多其他的sh文件都是由第一个sh文件发起的。

假设本地主机目录是 /opt/lampp/htdocs/xampp/test sh文件的位置是/home/user/scripts/run.sh

run.sh 将从/opt/lampp/htdocs/xampp/test/upload上传的一些文件复制到/home/user/scripts/file 并执行其他一些 .sh 文件。

我试过很多PHP方法都没有成功 喜欢

<?php $output = shell_exec('sh /home/user/script/run.sh'); echo "$output"; ?>

<?php
shell_exec("/home/user/server/run.sh");
?>

但运气不好。 我无法将 sh 文件放在 CGI 目录中,因为它依赖于其他脚本和文件。如何从当前存在的目录运行脚本。

最佳答案

最有可能的情况是您作为从 php 执行脚本的用户没有设置任何环境变量。它可能是用户名组 apache:apache。您应该为 PATH 设置一些环境变量,以便它知道可执行文件的位置。您也可以将 sh 指向 /usr/bin/sh :

<?php $output = shell_exec('/usr/bin/sh /home/user/script/run.sh'); echo "$output"; ?>

或者登录到服务器和 echo $PATH 。然后将其复制粘贴到 putenv 函数中:

putenv('PATH={your_paths}');
$output = shell_exec('sh /home/user/script/run.sh'); echo "$output";

关于php - 如何从 php/html 执行 shell 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37015663/

相关文章:

javascript - Laravel 4 Blade {{}} 和 Hogan.js {{}} 语法

php - 如何在centOS中使用php 7.1安装memcached?

javascript - 如何使用原生 HTML5 约束 API 验证单选组是否具有选择

javascript - 浏览器中是否有任何类型的可访问性 header ,例如标志语言

xml - 在 Linux 上使用 shell 脚本从命令行编辑 XML

php - 如何在mysql和php中检查上个月是否已经过去?

php - 在 PHP 中将所有行元素打印为树

javascript - 使用 Javascript 对 HTML 表格进行排序

使用 Curl 的 Linux Bash 脚本读取循环问题

linux - Letsencrypt + Docker - 处理符号链接(symbolic link)的最佳方式?