php+shell_php 执行shell shell_exec - CSDN
精华内容
参与话题
  • php执行shell脚本

    千次阅读 2019-03-25 16:44:15
    php作为一门服务器端脚本语言,也是可以调用系统命令的,这其中就包括了执行shell脚本 编写test.sh脚本如下 #! /bin/sh mkdir /www/a 很简单的一个shell脚本 创建一个文件夹 php脚本如下 system('/us...

    原文:https://blog.csdn.net/zhangsheng_1992/article/details/52805760 

    php作为一门服务器端脚本语言,也是可以调用系统命令的,这其中就包括了执行shell脚本


    编写test.sh脚本如下

    #! /bin/sh

    mkdir /www/a

    很简单的一个shell脚本 创建一个文件夹


    php脚本如下

    system('/usr/bin/test.sh')


    在运行前 首先需要验证的

    1.test.sh脚本是否具有可执行权限

    2.apache nginx phttp等web服务器是否有test.sh的权限

    3.由于是同步文件命令 所以需要确保用户对要下载的目录有写入权限

    4.由于我使用php版本高于5.4,已经删除了安全模式一说,说一也不存在运行在安全模式下

    5.执行的脚本请使用绝对路径 这点很重要


    但是  实际运行后  我发现输出了faild  说明脚本并没有执行成功  查了下原因  是因为apache用户不具备某些目录的执行权限(没个用户有没个用户的可执行目录,你的脚本需要在该目录下)   切换目录属主容易造成安全问题  在linux下 root用户是不受此限制的 所以 临时让用户可以切换到root权限 既可以简单的规避此类问题  如何操作呢?

    首先 查看你的apache用户或者nginx php-fpm用户

    可以使用 ps -ef  | grep httpd 命令来查看  其他同理

    经查我的apache用户为_www用户

    然后 visudo   或者 vim /etc/sudoers 找到

    ## Allow root to run any commands anywhere 

    root    ALL=(ALL)       ALL这一行 在下边追加

    _www ALL=(root)  NOPASSWD:ALL
    第一列是用户  第二个是可以切换到的用户 我这里写的是root  如果你想让随意切换可以在这里写All  第三个是可以执行的脚本路径 ALL 表示所有

    最后 重启apache让用户重新获得权限

    修改php脚本

    system('sudo /usr/bin/test.sh')


    运行 执行成功~~~

    展开全文
  • Notepad++ 是一款Windows环境下免费开源的代码编辑器,支持的语言:C, C++ , Java , C#, XML, HTML, PHP, Javascript! 本文给大家讲解的是用notepad++在windows下开发的shell脚本上传到linux下无法执行问题...
    Notepad++ 是一款Windows环境下免费开源的代码编辑器,支持的语言:C, C++ , Java , C#, XML, HTML, PHP, Javascript!
    

    本文给大家讲解的是用notepad++在windows下开发的shell脚本上传到linux下无法执行问题解决方法(bom问题),感兴趣的同学参考下。

    问题描述:

    在一次调试shell语句的过程中发现,从notepad++文本拷贝出来的shell到Linux执行时,无任何错误!但是把notepad写好 的shell脚本上传到Linux系统调试时,报无法找到命令的错误!细想一下,问题根究肯定在Nodepad++上面,后查找原因,原来是格式转换的问题

    1、查看当前文本格式

    Notepad++界面中,在右下角有文件格式的描述:“Dos\Windows或UNIX或Mac”。

    2、文件转换方法

    1417770665_9378.jpg


    但是如果每写一个shell文件都需要这样转换可能会很麻烦,那有没有一劳永逸的办法呢?答案是有的,我们可以设置Notepad++默认新建的文件都是shell格式,具体操作如下:

    打开在notepad++,设置,首选项

    1417770666_9772.jpg

    注意点:

    1 文件格式,换行符windows和linux不一样

    2 utf8文件不要有bom头

    欢迎转载请注明来源一路博客,地址:http://www.16boke.com/article/detail/144

    展开全文
  • shell脚本 Permission denied,解决方法

    千次阅读 2017-06-09 13:51:56
    chmod +x +文件名 e.g. chmod +x .startup

    chmod +x +文件名
    e.g. chmod +x .startup

    展开全文
  • 解决PHP调用exec或shell_exec的问题

    千次阅读 2018-11-26 14:03:45
    最近在做一个项目需要用到PHP调用python,在服务器执行命令是可以的,但是当放在项目代码中,在web中执行命令就不行了,调试了一天,终于可以了! 环境:centos7+nginx+mysql+php7.1 首先要解决的就是权限问题和...

    最近在做一个项目需要用到PHP调用python,在服务器执行命令是可以的,但是当放在项目代码中,在web中执行命令就不行了,调试了一天,终于可以了!

    环境:centos7+nginx+mysql+php7.1

    首先要解决的就是权限问题和用户组问题:

    一、查看启动你php的进程的用户是谁。

    可以通过在命令行执行:ps -ef | grep php来看。或者在php中执行 echo exec('whoami') 来查看。centos下默认会是nobody。 nobody默认没有任何权限。

    此时先自己添加一个用户和组。

    /usr/sbin/groupadd xxxx
    /usr/sbin/useradd -g xxxx -s /bin/bash xxxx

    加完用户后、vim /etc/passwd 里面就可以看到你添加的用户了。

    二、修改php启动用户为您刚添加的用户

    找到你得php安装的地方的php-fpm.conf 。打开配置文件、编辑里面的 user = xxxx;  group = xxxx; (xxxx为您刚才添加的用户)

    重启php-fpm(service php-fpm restart)

    重复上面查看php启动进程的用户、应该已经变了。

    三、添加刚才的用户xxxx到sudoers里面

    visudo //修改/etc/sudoers的内容
    ## Allow root to run any commands anywhere 
    root    ALL=(ALL)       ALL
    xxxx   ALL=(ALL)       ALL //新添加这一行
    %xxxx        ALL=(ALL)       NOPASSWD: ALL  //设置xxxx组下面的用户使用sudo不需要输入密码

    四、到这里已经可以正常在exec中使用sudo  your command来执行命令了!!!!

    当然、最好不要在生产线上环境使用哦!可以在内网机器上面实现!一切为了安全。

    thinkphp3.2框架测试代码

    public function test1(){
            exec('/usr/local/python3/bin/python3 aa.py 2>&1',$out,$res);
            dump($out);
    }

    需要修改aa.py的权限和用户组

    chmod  -R 777 aa.py

    chown www:www aa.py

    另外就是路径问题 ,在框架里要放在和入口文件一致的目录下

    展开全文
  • 我知道的有如下两种方式可以在shell中访问操作mysql数据库 1. mysql -uusername -ppasswd -e "command;command" [root@localhost ~]# mysql -uroot -p123456 -e "select user,host from mysql.user" +------+----...
  • SSH Secure Shell Client中文乱码的解决方法  自己是使用linux下面的方法而已。 SSH Secure Shell Client中文乱码的解决方法 Posted on 2012-03-24 00:26 52linux 阅读(30665) 评论(2) 编辑 收藏 ...
  • windows+PHP+shell_exec()无法执行的原因

    万次阅读 2018-01-23 11:33:34
    今天使用shell_exec()命令执行wkhtmltopdf.exe 生成pdf文件时,总是无法生成PDF文件,使用var_dump()打印返回值,结果是null。可是检查代码并没有什么问题啊?执行程序的目录是 D:\Program Files\wkhtmltopdf\bin\...
  • 今天发现在使用定时器的时候,执行一个shell脚本,打印日志正常,然后在系统中不能查到当前Shell脚本执行的结果。 因为使用的是Web程序,对于Shell调用这块也是新手。以前没有遇到过这种问题,只能靠猜了。 判断 ...
  • MAC 下的简单 SHELL 入门

    万次阅读 2015-12-31 08:02:24
    在 MAC 下,通过 SH 文件来实现 WIN 下的 BAT 功能
  • PHP执行shell_exec方法失败

    万次阅读 2020-05-06 11:56:28
    多半原因在php.ini文件中未打开方法权限 在php.ini开启即可
  • 漏洞概况 ThinkPHP是一款国内流行的开源PHP框架,近日被爆出存在可能的远程代码...由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞。 漏洞危害 攻击者可通过该漏洞获取...
  • SSH Secure Shell Client乱码解决方法

    千次阅读 2018-04-26 10:42:15
    转自:https://www.cnblogs.com/52linux/archive/2012/03/24/2415082.html这是SSH Secure Shell Client多年未解决的短板,要求客户端和服务器端都要‘UTF-8’编码,Windows中文版的编码是非UTF-8。zh_CN.UTF-8是...
  • 什么是Shell

    千次阅读 2018-08-10 21:41:23
    Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。...
  • php中判断shell_exec执行结果

    万次阅读 2016-05-05 13:58:43
     不过shell_exec执行成功无输出 和 执行失败 返回的都是null 在记录错误日志的时候区分就成问题了。  在php手册的评论中找到了区分的方法,在此记录一下。   $shell = "wget -O despath sourcepath && echo
  • [shell]shell简介

    万次阅读 2018-07-11 12:02:21
    一、简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核...
  • shell脚本定时执行php程序

    千次阅读 2019-03-05 11:18:30
    其实很简单的,在做开发的过程中可能会遇到一些情况需要定时得去跑一些程序,这时呢我们就可以用到这crontab这个定时器来帮助我们完成这些任务。 首先写好你需要执行的php...好,显示插入成功,证明这个shell是...
  • Linux + Shell bash / sh / ksh / csh / tcsh

    千次阅读 2010-09-09 11:50:00
    None
  • CentOS7定制Gnome3外观

    万次阅读 2017-12-15 14:11:35
    改造CentOS7.3外观,把centos打造成类似Ubuntu16.04的界面。
  • shell 脚本中,通常会使用相对路径来做处理,但有时候,我们也许需要用到绝对路径。 在shell怎么获取一个文件或目录的绝对路径呢? 也许你会立马想到realpath(如果你写过php的话),那么shell支持这个命令吗?看...
  • Centos7下shell脚本添加开机自启动

    万次阅读 2018-07-20 10:24:55
    nohup /usr/bin/php -f /data/aliyun51015cn/redisChannel/psubscribe.php > psubscribe.log &   1、赋予脚本可执行权限(/opt/script/psubscribe.sh是你的脚本路径) # chmod ...
1 2 3 4 5 ... 20
收藏数 115,317
精华内容 46,126
关键字:

php+shell