1

laravelスケジューラのcronの書き方はホスティングごとに異なるため、この場合ドキュメントは役に立たないことに気づきました。

以前のホスト (siteground) で使用したのと同じコードが、現在のホスト (inmotion) では機能していないようです。

CPanel から設定したスケジューラを実行する cron は動作しているようです。

php -q /home/xxxxx/xxxxx/artisan schedule:run

私のcronが実行されるたびにこのメールを受け取るので、うまくいくようです:

Running scheduled command: /usr/bin/php -q /home/xxxxx/xxxxx/artisan {command} > '/dev/null' 2>&1 &

現在、上記のスクリプトは実行されていないようで、サーバー全体がクラッシュするまでプロセスがスタックしてメモリを消費します。

だから私はここでかなり混乱しています。なぜphp -q /home/xxxxx/xxxxx/artisan schedule:run実行するのですが、どういうわけか私のアプリは実行できません/usr/bin/php -q /home/xxxxx/xxxxx/artisan {command}

php-cli私はそれをグーグルで検索し、代わりに使用する場所をいくつか提案しましたphp -qが、php-cliでcommand not foundエラーが発生しました。

この件についてサポートに問い合わせたところ、次のような回答がありました。

php-cli は php コマンドライン インターフェイスのコマンドではないため、別のホストでそのコマンドをどのように実行できたのかはわかりません。残念ながら、これは有効なコマンドではないため、このコマンドを実行して何を達成しようとしているのか、私にはわかりません。

php -q は php-cli を実行するオプションであり、cron に使用する必要があります。ただし、実行しているファイルのコーディングが正しい場合にのみ正しく実行されます。

私はこれを2日間使用しています。私の質問は、laravelスケジューラーをエラーなしで実行するにはどうすればよいですか?インモーションサーバーなどにlaravel(ルーメン)アプリケーションをデプロイした経験がある人はいますか? 前もって感謝します。:)

4

1 に答える 1

3

したがって、まだ確実ではないcli phpバージョンと関係がある可能性がありますが、最終的にこれで動作するようになりました:

/usr/bin/php -ea_php 70 -q /home/xxxxx/xxxxx/artisan schedule:run

次に、49 行目の Illuminate/Console/Scheduling/Schedule.php ファイルを次のように編集しました。

return $this->exec("/usr/bin/php -ea_php 70 -q /home/xxxxx/xxxxx/artisan {$command}", $parameters);

今はうまくいくようです。:)

于 2017-04-05T01:41:51.110 に答える