2015-09-04 62 views
1

我有一个脚本用于为WP All Import Pro运行cron作业。该脚本在Debian Jessie上运行时没有错误,我正在转移到运行CENTOS 6.7 x86_64,WHM 11.50.0 & cPanel的专用服务器。未找到参数选项中的PHP错误r

运行新的服务器上的脚本,将引发此错误&填补了自定义日志文件:

Error in argument 2, char 2: option not found r 

-r选项是没有脚本标记运行PHP:

-r <code>  Run PHP <code> without using script tags <?..?> 

不知道在这一点上做什么,任何帮助将不胜感激。


PHP CLI版本

[email protected] [~]# php-cli -v 
PHP 5.5.28 (cli) (built: Aug 28 2015 14:51:30) 
Copyright (c) 1997-2015 The PHP Group 
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies 
    with the ionCube PHP Loader v4.7.5, Copyright (c) 2002-2014, by ionCube Ltd., and 
    with Zend Guard Loader v3.3, Copyright (c) 1998-2014, by Zend Technologies 
    with Suhosin v0.9.36, Copyright (c) 2007-2014, by SektionEins GmbH 

脚本

#!/bin/bash 
#!/usr/bin/php-cli 

## http://devlog.rolandow.com/2014/11/wp-import-cron-cli-update/ 

while getopts ":j:" opt; do 
    case $opt in 
    j) 
     jobId=$OPTARG 
     ;; 
    \?) 
     echo "Invalid option: -$OPTARG" >&2 
     ;; 
    :) 
     echo "Option -$OPTARG requires an argument." >&2 
     exit 1 
     ;; 
    esac 
done 

if [ "$jobId" = "" ]; then 
    echo No job id 
    exit 1 
fi 

# Set magic variables for current FILE & DIR 
__FILE__="$(test -L "$0" && readlink "$0" || echo "$0")" 
__DIR__="$(cd "$(dirname "${__FILE__}")"; echo $(pwd);)" 
LOGFILE="${__DIR__}/tmp/wpai_cron_${jobId}.log" 
CURLOG="${__DIR__}/tmp/wpai_cron_${jobId}_current.log" 
DONE=0 

function log { 
    echo "$(date): $*" >>$LOGFILE 
} 


log "Start import for jobID $jobId" 

cd $__DIR__/public_html 
php -e -r 'parse_str("import_key=ica&import_id='$jobId'&action=trigger", $_GET); include "wp-cron.php";' >>$LOGFILE 2>&1 
sleep 1 

while [ $DONE -eq 0 ] 
do 
    php -e -r 'parse_str("import_key=ica&import_id='$jobId'&action=processing", $_GET); include "wp-cron.php";' >$CURLOG 2>&1 
    cat $CURLOG >>$LOGFILE 
    DONE=$(grep 'is not triggered' $CURLOG | wc -l) 
    sleep 1 
done 
rm $CURLOG 

log "End of import for jobId $jobId" 
log "" 
log "" 

的错误

Fri Sep 4 05:17:41 EDT 2015: Start import for jobID 04 
Error in argument 2, char 2: option not found r 
Usage: php [-q] [-h] [-s] [-v] [-i] [-f <file>] 
     php <file> [args...] 
    -a    Run interactively 
    -b <address:port>|<port> Bind Path for external FASTCGI Server mode 
    -C    Do not chdir to the script's directory 
    -c <path>|<file> Look for php.ini file in this directory 
    -n    No php.ini file will be used 
    -d foo[=bar]  Define INI entry foo with value 'bar' 
    -e    Generate extended information for debugger/profiler 
    -f <file>  Parse <file>. Implies `-q' 
    -h    This help 
    -i    PHP information 
    -l    Syntax check only (lint) 
    -m    Show compiled in modules 
    -q    Quiet-mode. Suppress HTTP Header output. 
    -s    Display colour syntax highlighted source. 
    -v    Version number 
    -w    Display source with stripped comments and whitespace. 
    -z <file>  Load Zend extension <file>. 
    -T <count>  Measure execution time of script repeated <count> times. 
+1

尝试在脚本中用'php-cli'更改'php'。 –

+0

http://stackoverflow.com/a/2954562/670662 –

回答

4

我有完全一样的脚本,并设置为你,改变

php -e -r 

php5-cli -e -r 

使其顺利运行。注意它在脚本中有两个地方。