Laravel 定期処理を自動で実行②エックスサーバーにcronを設定

Laravel自動処理

エックスサーバー上でcronを使って、Laravelプロジェクトの自動処理を行う方法を解説します。

指定した時間に、php artisan schedule:run を実行するようにします。

なおエックスサーバーでは、phpのバージョンを指定する必要があり、ここがトラップ!

トラップに引っかからず、cronを設定する方法を解説していきます。

Laravelで自動処理を作成する方法は前回記事で解説しているので、併せて参考にしてください。

Laravel 定期処理を自動で実行②エックスサーバーにcronを設定

まずは必要なファイルを本番環境に移動させておきましょう。

その後、エックスサーバーの設定をしていきます。

① ファイルの準備

今回は、下記のコマンドを実行します。

まずは開発環境で、コマンドが問題なく動くようにしておきます。

その後、エックスサーバー上にデプロイします。

前回の記事を読んで実行してくれた方は、git pullでデプロイ後、Cronをインストールした場合は、composer installも実行しておいてください。

②エックスサーバーでcronを設定

エックスサーバーのサーバーパネルにログインします。

アカウントメニューから「Cron設定」を選択してください。

「Cron設定追加」タブをクリックします。

まずは時間間隔を設定します。次のようにすべてに*をいれておくと、毎分実行されます。

毎日16時だけ実行したい、という場合は、次のようにいれます。

じゅんこ
じゅんこ

とりあえず最初はすべて*として毎分実行すると、テスト結果がすぐ分かります。

コマンドの部分は、次のように入力します。

cd /home/プロジェクトのパス/ && /usr/bin/phpのバージョン artisan コマンド >> /dev/null 2>&1

条件によって変わりますが、下記のような感じになります。

Laravelのcronコマンド例)

プロジェクトのパス・phpのバージョン情報の調べ方を解説します。

プロジェクトのパスの調べ方

cdのあとは、スペースをいれます。&&の前後も、スペースをいれてください。

プロジェクトのパスですが、Git Bashなどのコマンドツールで開発環境にログインし、プロジェクトの場所に移動し、pwdを実行してください。

現在のディレクトリの場所を表示してくれるコマンドです。

/home/プロジェクトのパスが表示されるので、この部分をコピーして、cron設定に使います。

phpのバージョンの調べ方

phpのバージョンは、エックスサーバーの PHP Ver.切り替えをクリックします。

ドメインを選択した後、「PHPバージョン切替」が表示されます。

上記のように表示されていれば、cron設定に「PHP7.3」といれます。

なお、エックスサーバーのマニュアルはこちら。

③cron実行結果が送られるアドレスを設定

Cronを設定した後は、Cron設定一覧タブの「Cron結果の通知アドレス」にアドレスを入れて「通知アドレス設定」ボタンをクリックします。

こうしておけば、うまくいかなかった場合、テスト結果がメールで届きます。

④ テストする

あとは実行結果を待つだけ。

なお、今回のcron設定のコマンドの意味が気になる方は、下記のエラー対策記事の後半をご覧ください。

エックスサーバーへのデプロイ方法で悩んだ場合はこちら。

いちからすべてのステップを解説しております。

Laravel自動処理

【Laravelの教科書・無料プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック
【LaravelでWebアプリ開発します】

「会員制サイトを作ってほしい」「開発の時間がないから頼みたい!」

こんなご要望承り中。オンラインミーティングでも、ご相談承ります。

サンプルやお見積もり目安を見てみる

Twitter始めました。
40代からプログラミング!

コメント

タイトルとURLをコピーしました