このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【Cron】XServerでphpを定期実行させる方法

2024年5月13日

サイト運営をしていると定期的に自動実行したいことが出てきたりします。

専用のツールなどを使う手もありますが、phpで済むならレンタルサーバーで定期実行させることができます。

今回はXServerでphpプログラムを定期実行させる方法を紹介します。

Cronとは

CronとはLinuxなどでプログラムを定期実行させるためのコマンドです。

Windowsのタスクスケジューラと似たようなものです。

1. phpファイルの作成

まず定期実行したいphpファイルを作成します。

《注意点》

require_once(dirname(__FILE__).'/wp-load.php'); // phpファイルをpublic_htmlに保存する場合
require_once(dirname(dirname(__FILE__)).'/wp-load.php'); // phpファイルをpublic_htmlの1つ下のディレクトリに保存する場合

WordPressの関数(get_postsなど)を使用する場合はwp-load.phpファイルの参照設定する必要があります。

上のようにrequire_onceをプログラムの先頭に記載してください。

phpファイルをpublic_htmlディレクトリに保存するならdirname関数は1つ。phpファイルをpublic_htmlの1つ下のディレクトリに保存するならdirname関数を2つネストして使用します。

2. phpファイルをディレクトリに保存

FTPソフト(FileZillaやFFFTPなど)を使ってレンタルサーバーのディレクトリにphpファイルを保存します。

3. phpファイルのパーミッション変更

phpファイルのパーミッション変更(FileZillaの画面)

FTPソフトから保存したphpファイルのパーミッションの変更を行います。

XServerで説明があるようにパーミッション値を「701」にしておけばCronから実行ができます。

実行するスクリプトファイルに対し、実行権限を付与するパーミッション(パーミッション値「701」など)に変更する必要があります。

https://www.xserver.ne.jp/manual/man_program_cron.php

4. Cron設定

Cron設定

XServerのサーバーパネルにログインし、「Cron設定」をクリックします。

Cron設定追加

Cron設定の追加タブをクリックして設定を入力していきます。

上の画像では毎日8時に実行するように設定しています。「*」を打ち込んだところは毎日や毎時間といった意味になります。

Cron設定のコマンドについて

Cron設定画面にてコマンドを記載するのですが、ここはミスしやすいので慎重に進めてください。

/usr/bin/php7.4-cgi /home/サーバーID/独自ドメイン名/public_html/hogehoge.php

phpバージョン

phpのバージョンは7.4のように必ず*.*で記載します。7.4.33のようにフルバージョンで記載すると動作しません。

PHPの高速化に関する設定(FastCGI、キャッシュモジュール)が標準で有効になります。

各PHPバージョンとも、「FastCGI」が標準で有効になります。 
設定を変更することはできません。

高速化設定ページより引用

また、XServerでは高速化の関係でデフォルトでCGIが有効になっています。

そのためphp7.4-cgiのように末尾に-cgiを付ける必要があります。

間に半角スペースを入れる

/usr/bin/php7.4-cgi ここに半角スペース /home/サーバーID/独自ドメイン名/public_html/hogehoge.php

phpバージョンとファイルパスの間には半角スペースを入れる必要があります。

ここは間違えやすいので気を付けてください。

サーバーID

サーバーIDはxs******というものでサーバーパネルの上部に記載されています。

phpファイルはフルパス指定

/home/サーバーID/独自ドメイン名/public_html/hogehoge.php

phpファイルはフルパスで指定する必要があります。

必ずpublic_htmlを記載してphpファイルに到達するまでのパスを記載します。

【推奨】通知アドレスの登録

Cron結果の通知

Cron設定画面にて「Cron結果の通知アドレス」という欄があります。

ここにメールアドレスを入力すると、Cronが正常動作したかメールで結果を教えてくれます。

最初はメールアドレスを入れておいて、正しく動作するか確認するのをおすすめします。

《PR》

速い! 高い! 分かりやすい!

このサイトもXServerを使っていますがワードプレスを使うならXServerがおすすめです。

php

Posted by やろまい