PHP执行linux脚本

PHP执行linux命令,需要用到几个方法,比如system() exec() passthru()

我用的是exec()

执行一个脚本

<?php

$result="/opt/1.sh";

exec($result,$res,$ret);

if($ret == "0") {

echo "true";

}else{

echo "false";

}

网页访问,返回false

加sudo测试

在linux系统编辑配置文件

vi /etc/sudoers

www  ALL=(ALL)       NOPASSWD:ALL

强制保存

修改php代码

$result="/usr/bin/sudo /opt/1.sh";

访问还是不行

最后,终于解决办法

编辑配置文件,注释一掉内容(表示不需要控制终端)

vi /etc/sudoers

#Defaults    requiretty

最后测试,就返回true了。

时间: 2024-07-30 10:15:48

PHP执行linux脚本的相关文章

Runtime.getRuntime.exec()执行linux脚本导致程序卡死有关问题

Runtime.getRuntime.exec()执行linux脚本导致程序卡死问题问题: 在Java程序中,通过Runtime.getRuntime().exec()执行一个Linux脚本导致程序被挂住,而在终端上直接执行这个脚本则没有任何问题.原因: 先来看Java代码: public final static void process1(String[] cmdarray) {        Process p = null;        BufferedReader br = null

执行linux脚本出现问题

1. 权限不够: 使用 chmod +x XXX.sh 提升权限 2. 出现:/bin/bash^M: bad interpreter: No such file or directory 原因:文件换行里出现\r\n  与linux格式不符合 安装dos2unix   apt-get install dos2unix 然后使用命令:#dos2unix myshell.sh  转换就行 执行linux脚本出现问题,布布扣,bubuko.com

调用Runtime.getRuntime().exec()执行Linux脚本防挂死和返回脚本输出

1.在实际开发中,使用Runtime.getRuntime().exec()执行Linux脚本时,需要同时读取标准输出流与错误输出流缓冲区数据,因为操作系统缓冲区大小有限制,不及时处理会导致缓冲区占满而挂住,这种问题发生在于开发人员对该接口不了解而引发Bug. 具体可以通过使用两个线程同时去读错误和标准输出流缓冲区数据,然后用proc.waitFor()可以获取执行的结果.这种事最常见的场景,只关注脚本执行结果. 2.但在实际开发中,通过Runtime.getRuntime().exec()执行

执行Linux脚本,出现No Such file or directory异常

最近在学习Linux系统的脚本开发,在我编写完标本的情况出现了以下的情况 这个时候出现了No Such file or directory 情况出现 ,提示文件不存在: 但是通过VIM命令访问此脚本,是能够进入此脚本的 这个时候我猜测,可能是由于编码问题引起的,因为我在编写此脚本的时候我是在Windos系统中使用nodpad++编写(nodpad的编码格式此时为ANSI):然后通过Secure连接至Linux服务器,进行粘贴. 我继续在VIM编辑下通过:set ff? 发现编码格式如下: 发现编

【转】PHP计划任务:如何使用Linux的Crontab执行PHP脚本

转:https://www.centos.bz/2011/03/auto-run-task-crontab/ 我们的PHP程序有时候需要定时执行,我们可以使用ignore_user_abort函数或是在页面放置js让用户帮我们实现.但这两种方法都不太可靠,不稳定.我们可以借助Linux的Crontab工具来稳定可靠地触发PHP执行任务.下面介绍Crontab的两种方法. 一.在Crontab中使用PHP执行脚本 就像在Crontab中调用普通的shell脚本一样,使用PHP程序来调用PHP脚本.

linux环境中执行Mysql脚本

1.首先进入shell~ 2.进入服务器后,输入mysql -h localhost -u root -p,进入MySql: 3.输入MySql密码: 4.将脚本复制到服务器,具体怎么做,可以用Xftp; 5.例如,我执行的test.sql,在/usr/local/test.sql目录下,在shell中输入source /usr/local/test.sql linux环境中执行Mysql脚本,布布扣,bubuko.com

Linux中执行shell脚本的4种方法

这篇文章主要介绍了Linux中执行shell脚本的4种方法总结,即在Linux中运行shell脚本的4种方法,需要的朋友可以参考下. bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/root/bin目录中并已有执行权限(添加权限的方法:chmod +x hello.sh). 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: ./ 的意思是说在当前的工作目录下执行hello.sh.如果不加上

如何在linux中执行一个脚本

---恢复内容开始--- 如何在LINUX中在系统启动时自动执行一个执行脚本 如果是开机马上执行的脚本,可以将脚本写到rc.local中: 如果是用户登录后自动执行脚本,可以将脚本写到相应的用户目录下"-/.bash_profile",若脚本"-/.bash_profile"不存在,可以直接拷贝"/etc/profile"命名为"-/.bash_profile": 如果是要任一用户登录后自动执行脚本,可以将脚本写到"

linux 定时执行shell脚本 定时任务

本文讲述crontab具体用法,以供备忘. 在oracle 中可以利用dbms_job包定时执行pl/sql.sql过程,在像备份等需要在操作系统级定时任务只能采用crontab来完成 利用crontab来定时执行任务大致有如下三步: 1.编写shell脚本 2.利用crontab加入到定时任务队列 3.查看作业完成情况 一.如何建立shell脚本 linux下有很多不同的shell,但我们通常使用bash(bourne again shell)进行编程,因为bash是免费的并且很容易使用 程序