php 失败 执行shell_php执行shell脚本失败 - CSDN
精华内容
参与话题
  • 今天发现在使用定时器的时候,执行一个shell脚本,打印日志正常,然后在系统中不能查到当前Shell脚本执行的结果。 因为使用的是Web程序,对于Shell调用这块也是新手。以前没有遇到过这种问题,只能靠猜了。 判断 ...

    问题

    今天发现在使用定时器的时候,执行一个shell脚本,打印日志正常,然后在系统中不能查到当前Shell脚本执行的结果。

    因为使用的是Web程序,对于Shell调用这块也是新手。以前没有遇到过这种问题,只能靠猜了。

    判断

    1、Shell脚本问题。

    验证方式:进入系统控制台,然后直接调用脚本,验证脚本正常。排除脚本本身问题。

    2、判断应该问题来自于权限

    验证方式:进入控制台,查看执行日志author.log。果然上面提示账号权限有问题。

    ls 查看Shell脚本信息,发现Web程序的用户和Shell脚本的权限用户不是同一个账号。将其修改为同一个账号,,再次启动程序问题解决。


    结论:

    类似问题基本上都是由以上两个方面引起的。有异常的时候多看下日志,基本上的问题都会打印出来的。


    展开全文
  • PHP执行shell_exec方法失败

    万次阅读 2020-05-06 11:56:28
    多半原因在php.ini文件中未打开方法权限 在php.ini开启即可

    多半原因在php.ini文件中未打开方法权限
    在php.ini开启即可

    展开全文
  • PHP执行shell命令无效

    2018-09-30 01:58:25
    $...上面的shell命令在linux命令行里可以执行PHP文件在CLI模式下也可以执行,在WEB下执行返回127,找不到命令。PHP是用root权限运行的,这是什么原因?
  • php使用exec()、system()等调用python脚本时,shell命令在服务器执行成功,而放在浏览器运行却失败。 解决方法: 1、使用print判断脚本有没有被成功调用; 发现可以打印出一部分,没有...

    问题现象


    环境:Ubuntu 12.04、PHP 5.5.9、python3.5。

    php使用exec()、system()等调用python脚本时,shell命令在服务器执行成功,而放在浏览器运行却失败。


    解决方法:


    1、使用print判断脚本有没有被成功调用;


    发现可以打印出一部分,没有打印的部分应该是程序有问题。


    若是所有print没有打印,则可能是apache执行用户的权限不够,可新建用户并添加在root权限组里,在php.ini修改apache执行用户,重启apache即可。(因为博主不是这个问题,所以没有测试可行性。。。)


    2、在shell命令下程序运行完全正常,没有报错,这个时候就只能去找apache错误日志了!!!

    一般系统范围的Apache错误日志默认位置是/var/log/apache2/error.log。默认位置可以通过编辑Apache的配置文件进行修改。


    如果是自定义的错误日志,用文本编辑器打开 /etc/apache2/apache2.conf,然后查找以 ErrorLog 开头的行,该行指定了自定义的 Apache 错误日志文件的位置。例如,在未经修改的 Apache 配置文件中可以找到以下行:

    ErrorLog ${APACHE_LOG_DIR}/error.log

    错误日志里完美的记录着所有你作死的记录,果然我的python是因为编码问题才在浏览器运行失败的!

    展开全文
  • php中判断shell_exec执行结果

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

       在做第三方登录的时候,注册时头像下载比较耗时,所以改为了异步 shell_exec 执行wget 

       不过shell_exec执行成功无输出  和  执行失败 返回的都是null 在记录错误日志的时候区分就成问题了。


       在php手册的评论中找到了区分的方法,在此记录一下。

       

    $shell = "wget -O despath sourcepath &&  echo 'success' ";
    $shellExec = shell_exec($shell);
    var_dump($shellExec);

      这样 当前面的执行成功的时候 会执行echo 执行结果就是success 而不是空了 

      执行失败不再继续执行echo  执行结果仍旧是null 

      这样就区分除了执行结果,记录对应日志就OK了。

      补充一下,大概是这样的。。。

     

     $shellExec = shell_exec("cd ../");
     var_dump($shellExec);//NULL
      
     $shellExec = shell_exec("cd ../ && echo 'suc'");
     var_dump($shellExec);//string(4) "suc "
    

    展开全文
  • php中的exec和shell_exec两个函数都可以用来执行linux命令,但它们在使用方式以及结果的返回上,差别还是比较大的。 exec 调用方式: exec($cmd.' 2>&1',$output,$status); $cmd:shell脚本 2>&1:...
  • 通过执行系统命令,我们可以调用系统的一些功能,甚至能与其他语言进行交互。 1 system() : system — 执行外部程序(命令行),并且显示输出 这个函数会将结果直接进行输出 (注意:是直接输出区别于返回值,因为这个...
  • 使用php system,exec,之类的的shell调用函数无法退出的问题 当执行的脚本没有后台任务时,不会有任何问题 一旦出现无限循环的后台进程则会卡住不动 比如test1.sh的内容如下 #!/bin/bash while true do ...
  • Linux下用crontab执行定时任务不会缺省的从用户profile文件中读取环境变量参数,经常导致在手工执行某个脚本时是成功的,但是到crontab中试图让它定期执行时就是会出错。 这是因为用户登陆Linux操作系统的时候,”/...
  • 在Windows平台下安装PHP后,在使用PHP的exec、shell_exec等函数时,经常会遇到报错:unable to fork...,这实际上是因为PHP对cmd.exe没有足够的权限引起的。 解决方法:为C:\Windows\System32\cmd.exe(系统不是...
  • PHP中exec函数和shell_exec函数的区别

    千次阅读 2018-12-29 17:38:51
    这两个函数都是执行Linux命令函数,不同的是获取返回结果不一样,exec只能获取最后一行数据,shell_execu则可以获取全部数据。 php中的exec和shell_exec两个函数都可以用来执行linux命令,但它们在使用方式以及结果...
  • linux下shell执行PHP不成功问题

    千次阅读 2016-10-11 17:42:18
    保证服务挂了或被操作系统误杀后能自动重启然后把.sh脚本加入到crontab里去,我设的是每隔1min执行一次的,过了1min发现服务还没有起来,于是查看cron有没有执行我的shell脚本,用 tail -f /var/logs/cron查看发现...
  • [总结]C与Shell程序的交互

    千次阅读 2008-08-01 14:59:00
    C与Shell程序的交互一、C调用shellC程序调用shell脚本共有三种方式:system()、popen()、exec系列函数1)system(shell命令或shell脚本路径); system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来...
  • 有时候我们需要执行一系列操作, 每一步需要上一步执行成功后才会执行下一步否则就退出整个脚本, 直接举个栗子: wget https://getcomposer.org/installer || ( echo "failed"; exit ) && php composer-...
  • 最近使用php来进行各种系统操作,省去登录服务器,在网页上进行各项caoz
  • Centos执行shell命令返回127错误

    千次阅读 2019-11-23 11:06:04
    Centos执行shell命令返回127错误 在终端可以正常运行 web执行shell 返回127错误 解决方法 应该是运行环境和登录用户的运行环境存在差异造成的 在脚本执行之前,添加. /etc/profile,加载环境变量,问题解决 #!/...
  • 如何在shell中处理异常

    万次阅读 2015-08-18 10:14:29
    前言 似乎好像大概有句话是这么说得,好程序与...平时写php或者java程序等等的时候,很多人都会去注重对于异常的处理,比如try..catch等等,但往往在写一些脚本的时候,忽视了对于异常的判断。本文主要就是写如何在
  • iamlaosong文 前面文章曾提到过的定时检测压缩包并完成解压、修改文件名...后来在脚本中增加一些其他命令如pwd、echo等都执行了,最后发现是导入程序没有执行,其实也不是没有执行,而是执行后退出来了。 下面是找问题
  • php执行shell脚本的权限问题

    千次阅读 2018-02-28 14:19:31
    由于以前在ECS中每次都是以root用户身份登录和进行操作,所以基本都没有用到sudo,但是最近项目需要要进行这么个事:通过浏览器访问php网页,php网页里会调用执行linux下的一个脚本。本来这个事很简单的,但是我在...
  • PHP的exec()函数无返回值排查方法

    千次阅读 2016-09-26 16:24:45
    exec()执行外部命令失败,但没有任何错误信息。 exec执行某命令在命令行下没有问题,但是在php中就出错。这个问题99.99%与权限有关,但是exec执行的命令不会返回错误。一个技巧就是使用管道命令,假设你的exec调用...
1 2 3 4 5 ... 20
收藏数 17,867
精华内容 7,146
关键字:

php 失败 执行shell