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
スクリプトで../
スクリプトが実行されるディレクトリとスクリプトで使用する場合は、必ずフルパスを使用してください。./
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