我从目录 httpdocs/pub/ftp-admin/ 运行 .sh bash 文件。在目录的命令行上一切正常。如果我在 plesk 中执行 cron 任务,所有 magento 2 命令都不起作用,并且我会收到此消息。
Magento 支持 PHP 7.1.3 或更高版本。
请参阅下面的脚本。怎么了。我运行: CentOS Linux 7.8.2003 和 php 7.2.31
#!/usr/bin/env bash
file=*.ZIP
if [ -f $file ]
then
echo $file "exist"
#
cp $file ./backup
#
unzip -P web $file
#
rm -f $file
fi
#
if [ -f *BASIC.XML ]
then
mv *_BASIC.XML BASIC.XML
php -f ../../bin/magento import:job:run 1
fi
#
if [ -f *PRICES.XML ]
then
mv *_PRICES.XML PRICES.XML
php -f ../../bin/magento import:job:run 4
php -f ../../bin/magento import:job:run 2
fi
#
if [ -f *STOCKINFO.XML ]
then
mv *_STOCKINFO.XML STOCKINFO.XML
php -f ../../bin/magento import:job:run 3
fi
#
cp -f *.XML ./backup
#
rm -f *.XML
答案1
每当您在 crontab 中使用脚本时,您都需要相应地设置PATH
命令的变量(此处)。/path/to/the/bin/magento
前任:PATH=$PATH:/path/to/the/bin/magento
要在脚本中使用../
and到脚本中执行脚本的目录,或者始终使用完整路径,例如./
cd
/path/to/the/bin/magento
答案2
问题解决了。 plesk 中的 Cron 任务在较低的 PHP 版本下运行,然后通过 SSH 运行。通过像这样编辑脚本,问题得到解决:
/opt/plesk/php/7.2/bin/php -f $MAGEPATH/magento import:job:run 1