我有一个脚本,我用它来为WP All Import Pro运行cron作业。该脚本在Debian Jessie上运行没有错误,我正在转移到运行CENTOS 6.7 x86_64,WHM 11.50.0&的专用服务器。的cPanel。
在新服务器上运行脚本会引发此错误&填写自定义日志文件:
Error in argument 2, char 2: option not found r
-r选项用于运行没有脚本标记的php:
-r <code> Run PHP <code> without using script tags <?..?>
不知道此时该怎么做,我们将非常感谢任何帮助。
PHP CLI版本
root@host [~]# 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
THE SCRIPT
#!/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.
答案 0 :(得分:4)
我有完全相同的脚本和设置,更改
php -e -r
到
php5-cli -e -r
让它顺利运行。请注意它在脚本中的两个位置。