YmBok
搜索 充值水晶

PHP调用Shell脚本,命令找不到环境变量问题解决

PHP调用Shell脚本
需要设置php执行shell的root权限,否则执行sh会找不到命令。


1.通过system函数获取当前apache的用户,代码如下:

<?php

header("Content-type: text/html; charset=utf-8");

# echo system('whoami');

$result = shell_exec('sudo -E bash run.sh');
$array = explode('\n',$result);

foreach ($array as $value) {
   echo "$value <br>";
}

?>

2.假如得到的用户是:www,执行命令: sudo visudo设置权限:

增加2行配置设置www以root方式运行shell脚本,如下:


## Allow root to run any commands anywhere
root ALL=(ALL) ALL
www ALL=(root) ALL

## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
%www ALL=(ALL:ALL) NOPASSWD:ALL

3.重启apache

4.设置php禁用函数,删除disable_functions=后面的exec system shell_exec 函数,重启php



运行Shell脚本时,如果出现linux /bin/bash^M: bad interpreter错误

解决办法:vim 编辑文件,esc后执行 ":set ff=unix",将文件设置为unix格式,然后执行:wq,保存退出。

在Shell脚本里加入同步环境变量,非常重要

source ~/.bash_profile
source /etc/profile




内容来源与作者发布和网络,如有版权相关问题请及时与我们取得联系,我们将立即删除。

关于作者

还如一梦中 点击这里给我发消息

相关推荐

希望你会喜欢本站的内容

能用于cocos2d-x NDK的wstring和string的转换代码

std::string WString2String(const std::wstring&amp; wstr){ std::string curLocale = setlocale(LC_AL

2022-12-19 还如一梦中
《传奇世界》手游修改教程之怪物掉落设置

下面讲解如何修改传世世界手游中的物品掉落,再原始的版本中,掉落的设置无法满足玩家的喜欢,我们需要自己修改,有简单的方法,也有费时的方法,先教大家基础的方法,后面教大家快捷的方法。 首先再客户

2022-07-06 还如一梦中
《传奇世界》手游修改教程之道士BB召唤

道士控制自己技能召唤的宝宝,服务端/data/sbin/resource/script/system/skill 打开SkillScript.lua --新的道士宝宝召唤机制 SkillSc

2022-07-06 还如一梦中
《传奇世界》手游修改教程之攻沙时间修改

客户端和服务端ShaWarDB,关键的字段是时间逗号后面那个数字: --攻沙时间设置 改为3天后 local Items = { {holdTimes = 5,defensePos = '{x

2022-07-06 还如一梦中
《传奇世界》手游修改教程之Luac4加密

Lua是游戏的脚本一般不会直接打包到app里,要先加密为luac4,在传奇世界手游里android可以支持luac4,但苹果不行 我们通过lua编译工具(tools/luaecode)编译l

2022-07-06 还如一梦中
《一梦传世》元神版本纯源码手工编译教程

《一梦传世》 元神 版本纯源码手工编译 全部文件包含服务端与客户端(其中包含AndroidStudio工程,Eclipse工程,IOS工程)目录如下: 分别稍稍下目录内容: ymwe

2022-07-06 还如一梦中
白鹭冰雪源码编译服务端VIP教程

2022-07-02 还如一梦中
白鹭冰雪源码编译客户端VIP教程

2022-07-02 还如一梦中
刺客传奇引擎架设教程

荐服务端系统环境 Win Server 2008 64位 一、将服务端拷贝到服务器,解压YmcqServer.zip。 二、安装64位DBC2000: 安装DBC_2000,安装成功后打开安装目录,

2022-06-07 还如一梦中
刺客引擎编译打包修改免费视频教程(六)

6、delphi引擎服务端编译

2022-06-07 还如一梦中

友情链接