【问题标题】:The PHP executes the shell_exec command but doesn't do anythingPHP 执行 shell_exec 命令但不执行任何操作
【发布时间】:2016-09-24 15:42:32
【问题描述】:

我正在使用这个脚本在 post.sh 文件中使用 curl 发布一些日期

#!/bin/sh

var1=`base64 javascript_100.file`

# post it 3 times
for i in `seq 1 3`; do

/usr/bin/curl -i --verbose -d "jobTexterea=$var1" http://my_server_address/target_page.php

done

我使用我的 Shell 执行 post.sh 文件没有任何问题,但是当我使用 shell_exec('sh /path_to_post_file/post.sh') 在我的 php 脚本中调用它时,我从我的 var_dump(shell_exec('sh /path_to_post_file/post.sh')); 收到此错误。

错误:() HTTP/1.1 302 发现日期:2016 年 9 月 24 日星期六 15:14:38 GMT 服务器:Apache/2.4.23 (Fedora) OpenSSL/1.0.2h-fips PHP/5.6.25 mod_perl/2.0 .9 Perl/v5.22.2 X-Powered-By:PHP/5.6.25 位置:http://my_server_ 地址/内容长度:401 内容类型:text/html; charset=UTF-8 发生 MySQL 错误。 您的查询:INSERT INTO jobsNum_pro_batch (job_batch_id, jobs_in_batch, job_type) VALUES ('26','1','JavaScript')

post.sh 文件中的代码将信息发布到target_page.php,从而将所有内容放入数据库中的不同表中。问题是从 PHP 页面运行 shell_exec('sh /path_to_post_file/post.sh') 不会将任何信息上传到数据库中。但是,命令本身运行没有错误,我检查了它

<?php
    if (shell_exec('sh /path_to_post_file/post.sh')){ 
        echo "<b> shell_exec was executed </b><br>";
        var_dump(shell_exec('sh /path_to_post_file/post.sh'));
    } else {
        echo "<b> shell_exec was not executed </b><br>";
    }
?>

我收到消息 shell_exec 已执行

有人知道出了什么问题吗?

【问题讨论】:

  • 您的脚本中有一个相对文件路径。在这两种情况下,您是否从同一目录运行它?
  • @Jean-FrançoisFabre 执行 shell_exec 的 PHP 脚本与 post.sh 文件位于不同的文件夹中。我在shell_exec命令中使用文件的完整路径/var/....../post.sh。
  • 不确定,但在这种情况下,文件 javascript_100.file 是否可以从不同的目录访问?
  • javascript_100.file 与post.sh 文件位于同一文件夹中,因此不会出现任何复杂情况。我可以从 shell 本身执行post.sh 文件,一切都会正常运行。
  • 你的意思是这行得通? cd /tmp; sh /path_to_post_file/post.sh ?

标签: php mysql bash shell curl


【解决方案1】:

这成功了!感谢@Jean-FrançoisFabre,对他的代码进行了一点小改动,问题就消失了!

#!/bin/sh

progdir=$(dirname $0)

var1=`base64 $progdir/javascript_100.file`

# post it 3 times
for i in `seq 1 3`; do

/usr/bin/curl -i --verbose -d "jobTexterea=$var1" http://my_server_address/target_page.php

done 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-23
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    • 2013-01-01
    • 2014-10-01
    • 2018-12-08
    相关资源
    最近更新 更多