我正在使用此脚本在 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'));
中收到此错误。
Error: () HTTP/1.1 302 Found Date: Sat, 24 Sep 2016 15:14:38 GMT Server: 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 Location: http://my_server_ ddress/ Content-Length: 401 Content-Type: text/html; charset=UTF-8 A MySQL error has occurred. Your Query: 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,对他的代码做了一个小改动,问题就消失了!
#!/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
关于php - PHP 执行 shell_exec 命令但不执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39678124/