先小说两句:今天研究了下PHP调用LINUX命令的功能,一开始怎么做都调用不成功,试了好久才终于成功了,所以发出来分享一下。下面我将详细介绍:
PHP中提供了几个调用linux命令的函数,exec、system、passthru,函数使用请参考手册,这里不具体介绍。下面我以exec函数为例具体介绍:
比如LINUX中修改服务器时间命令是 /bin/date -s '2010-05-28 13:10',我们通过php函数exec调用这个命令执行修改时间exec("sudo /bin/date -s '2010-05-28 13:10'",$out,$status);其中$out是输出值,$status是返回值0或1,如果返回0则执行成功,返回1则执行失败。要通过PHP成功执行这个命令(PHP运行用户非root)需要检查以下几点:
1、首先查看php运行用户,可以在web服务器配置文件中查看,或者运行
<?php echo shell_exec("id -a");?>
直接查看。比如我的运行用户是www,编辑/etc/sudoers文件
vi /etc/sudoers
首先加上www用户  www ALL=(ALL)   NOPASSWD:ALL
这表示www用户运行的时候不用输入密码。接着看图片注释掉前面两个,删除圈着的环境变量LS_COLORS,其中Ubuntu中是没有这几个的,这一步可省略,其他Redhat、Fedora、Centos这几个都是需要这么做的。
2、查看php.ini中配置是否打开安全模式,主要是以下三个地方
safe_mode =  (这个如果为off下面两个就不用管了)
disable_functions =
safe_mode_exec_dir=
OVER,下面你就可以用exec调用linux命令执行了。

转载于:https://blog.51cto.com/leven/326150

PHP中exec、system等函数调用linux命令问题相关推荐

  1. 在C ++中使用system(“ pause”)命令

    In this article, we'll take a look at using the system("pause") command in C++. 在本文中,我们将介绍 ...

  2. linux mysql 运行状态_Linux中使用mysqladmin extended-status配合Linux命令查看MySQL运行状态...

    mysqladmin是MySQL一个重要的客户端,最常见的是使用它来关闭数据库,除此,该命令还可以了解MySQL运行状态.进程信息.进程杀死等.本文介绍一下如何使用mysqladmin extende ...

  3. php中使用exec,system等函数调用系统命令

    2019独角兽企业重金招聘Python工程师标准>>> 注意:要想使用这二个函数php.ini中的安全模式必须关闭,要不然为了安全起见php是不让调用系统命令的. 先看一下php手册 ...

  4. 工作中你应该掌握的 linux 命令大全

    作为码农,工作中你一定离不开使用 linux 命令,linux 命令繁多,学习起来确实很累,所以在工作的两年多的时间里,我把自己平时遇到的一些命令都零零碎碎的记录下来,正好这几天有时间对原先的记录做一 ...

  5. 工作中整理的常用的Linux命令

    工作中常用的linux命令整理 文章目录 1.单引号和双引号的区别: 2.关机:shutdown -h now | init 0 | poweroff 3.重启:shutdown -r now | r ...

  6. 工作中5个实用的Linux命令

    这里有五个有用的 Linux 命令,它们将在您的日常 Linux 操作中派上用场:tar.shutdown.free.df和locate. tar tar命令最初被设计用来在磁盘上创建文件的备份副本, ...

  7. 平时用到那些linux命令,工作中经常用到的linux命令,你知道多少?

    ①定时任务管理: crontab –l 查看定时任务 crontab -e 编辑定时任务 ②查看实时日志: tail -f changyues_api.log 实时查看log文件的更新 ③清空日志 e ...

  8. linux从表中提取信息,如何用Linux命令提取表格文本中的某列

    文本文件x.txt内容如下: kaa a:\dkdkdk 123 dfdfdf b:\xxxxxxxxx 3234 j你好x c:\fdfdfv 打开 我现在要提取第二列,即: a:\dkdkdk b ...

  9. 实战中收藏已久的Linux命令

    文章目录 常见的Linux命令 wget 命令 date 命令 top 命令 tar 命令 - 压缩和解压 grep 命令 - 基础正则表达式 sed 命令 - 进行替换.删除.新增.选取,应用场景主 ...

最新文章

  1. 基于OS信号实现Java异步通知
  2. 通信系统之数字复接技术
  3. QCon演讲速递:异步处理在分布式系统中的优化作用
  4. 一阶导与二阶导的关系_数学分析|第九章 定积分关于二阶导函数正负和定积分结合证明不等式问题总结...
  5. 从0开始学springboot之启蒙篇
  6. 广东计算机好的2a学校,广东专插本2A院校排名情况
  7. arduino 嗡鸣器 音乐_[求助]怎样实现红外遥控蜂鸣器播放音乐,求大神指正
  8. 转载|网络编程中阻塞式函数的底层逻辑
  9. matlab7.0停止工作,matlab7.0闪退是怎么回事_matlab7.0闪退怎么办
  10. wireshark怎么抓包、wireshark抓包详细图文教程,简单介绍(及wireshark与wireshark legacy差别 )
  11. 如何把meshlab中的圆环去掉_MeshLab中配准点云
  12. 【java】java 命令 Unable to open socket file: target process not responding or HotSpot VM not loaded
  13. 等待线程结束(join)
  14. 【DotNet 技能系列】VS工具快捷键及常用技巧
  15. hiveSql获取日期时间
  16. 利用IPC$空连接进行入侵及防范的方法
  17. mysql应用教程李辉答案_数据库系统原理及mysql应用教程李辉答案章节期末答案...
  18. 绿色版飞信2008 启动时报错“无法注册类别...”的解决办法
  19. 010Editor分析
  20. CHM电子书制作软件(CHM-Software)工具集锦简介

热门文章

  1. 关于struts2 中result type=stream
  2. linux pam 解锁_Linux 密码复杂度设置pam_pwquality、pam_passwdqc(centos7)
  3. OAuth2.0授权协议与客户端授权码模式详解
  4. kafka中生产者和消费者的分区问题
  5. 什么是ZooKeeper
  6. 日志服务与SIEM(如Splunk)集成方案实战 1
  7. IIS rest服务delete 报错
  8. saltstack案例 自助机
  9. sql1032n sql6048n db2start启动不了 db2修改hostname
  10. Oracle VM + Windows2003 Server 配置