ゲマステ!- 新作ゲームレビュー, マイクラ, ゲームMOD情報まとめ

ゲーマーズステーション | ゲームを中心に、動画・ブログ制作などのネットコンテンツ全般からレビュー情報まで分かりやすく紹介

機種別ハイスコア(80点~)タイトルを見る

機種別ハイスコア(80点~)タイトルを見る

HP・ブログ関連 セール・お役立ち情報

エックスサーバーでCronによるphp動作が上手くいかない場合に確認すべき6つの事項

2021年8月9日

エックスサーバー(Xserver)には、サーバー上のPHPファイル等のプログラムを、Cron を利用して自動的に実行させる機能が提供されています。

Cronとは?

Cron(クーロン or クローン)とは、指定時間に指定コマンド(プログラム)を自動的に実行させるサーバーの機能です。定期的なメールの送信や、ブログのRSS取得などにもよく使用されています。

エックスサーバーの「サーバーパネル」にログイン後、「Cron設定」より設定の確認や追加を行うことが出来ます。

▼現在設定されているCronを確認したり、新規追加が可能です。

「Cron設定追加」にて、実行時間とコマンドを設定することで、自由な年月日・時間・頻度で、特定のプログラムを自動的に動作させることが可能となります。

しかし、ここの『コマンド』を正しく記述できていない場合、プログラムは正常に動作しません。

"上手く設定できていると思うのに、どうしても思い通りに動作しない!" という方も多いと思います。

そこで今回は、エックスサーバーにおけるCron設定時に、phpファイルが上手く実行されない(動作しない)エラーが発生した場合の確認事項をまとめて紹介していきます。

職業ユーチューバーにオススメ!

会社員・個人事業主・法人代表者のいずれでも発行可能

アメリカン・エキスプレス®
・ビジネス・カード

当サイトからの入会で
初年度の年会費0円(無料)

20歳から入手可能な金属製ゴールドカード

会社員・個人事業主・法人代表者のいずれでも発行可能

アメリカン・エキスプレス®
・ビジネス・ゴールド・カード

当サイトからの入会で
初年度年会費0円(無料) 3万ポイント

エックスサーバーにおけるCronコマンド記述方法

エックスサーバーでは、コマンド欄に以下のようなコードを記述することで、phpファイルを実行することが出来ます。

(例)abc.phpをPHP 7.2 で実行する場合

 /usr/bin/php7.2 /home/サーバーID/独自ドメイン名/public_html/abc.php

※参考:Cron設定 | エックスサーバー公式

Cronによるphpファイルの実行でエラーが生じる場合、このコマンドに不正な記述が含まれている可能性が高いです。

phpが動かない場合に確認すべき事項

phpファイルが上手く動かない場合、以下に挙げる点を確認してみてください。

確認点①:phpファイルの権限を変更する

Cronで実行したいphpファイルの権限が "604" などの実行権を与えられていないパーミッションになっている場合、ファイルが正常に実行されない可能性が高いです。

そのため、phpファイルを "755" など、実行権のあるパーミッションに変更してあげる必要があります。

エックスサーバーの「ファイルマネージャー」にログインし、実行したいphpファイルが保存されている場所を開いてください。

▼ファイルごとの権限を確認することが出来ます。

そして実行したいphpファイルを選択した状態で、メニューバーより『パーミッション変更』を選択します。

するとパーミッション変更画面が出現するので、"パーミッションを数値で指定する" 内の数値を "755" に変更してください。

あとは「変更」をクリックすることでパーミッションが変更され、phpファイルに実行権限を付与することが出来ます!

確認点②:PHPバージョン指定は正確か?

/usr/bin/php7.2 /home/サーバーID/独自ドメイン名/public_html/abc.php

phpファイルを実行する場合、コマンド上部(赤字部分)にて、現在サーバーで利用しているPHPのバージョンを指定する必要があります。

エックスサーバーでは、「サーバーパネル」の「PHP Ver.切替」よりバージョンが確認できます。

ここで現在使用されているPHPバージョンの数値を、コマンドに記載しましょう。

ここで注意しなければならないのは、PHPバージョンの記載は 上2ケタのみ であるという点です。

  • 誤った記載例:/usr/bin/php7.4.13 /home/...
  • 正しい記載例:/usr/bin/php7.4 /home/...

末尾の3ケタ目まで律義に記載していると、エラーが生じてphpファイルが動作しません

また、phpバージョン記述の直後は、忘れずに半角スペースを開けてください

  • 誤った記載例:/usr/bin/php7.4/home/...
  • 正しい記載例:/usr/bin/php7.4 /home/...

半角スペースを空けない場合も、同様にエラーが生じてphpファイルが動作しません

確認点③:phpが「CLI版」or「CGI版」かを確認する

phpには、主に「CLI版」と「CGI版」の2種類が存在しています。

2つの違いの説明はここでは省きますが、Cronコマンドでは「CLI版」と「CGI版」のいずれかによって、記述方法が異なります

サーバーパネル」の「サーバー情報」より「コマンドパス一覧」タブを開くと、各phpバージョンごとの記述方法を確認することが出来ます。

上画像の通り、エックスサーバーでは「CGI版」のPHPを利用している場合に、コマンド内のphpバージョン記述の末尾に『-cgi』、もしくは接頭に『-fcgi』を付ける必要があります。

  • 「CLI版」を利用している場合の記述例:/usr/bin/php7.4 /home/...
  • 「CGI版」を利用している場合の記述例:/usr/bin/php7.4-cgi /home/...

ちなみにエックスサーバーでは、以前の高速化に伴うアップデートにより、いずれのバージョンにおいても『CGI版』が標準で有効となりました。

そのため、エックスサーバーでCronコマンドを実行する場合、phpバージョンの末尾に『-cgi』を付けることを忘れないようにしてください。

確認点④:サーバーIDは合っているか?

/usr/bin/php7.2 /home/サーバーID/独自ドメイン名/public_html/abc.php

Cronコマンド内の赤字部分において、エックスサーバーにおいて使用している『サーバーID』を記述する必要があります。

間違えて「サーバー番号」を記述してしまう方も多いので注意してください。

『サーバーID』は、エックスサーバーの「アカウント画面」より確認することが出来ます。

確認点⑤:『/public_html』は必ず記述する

/usr/bin/php7.2 /home/サーバーID/独自ドメイン名/public_html/abc.php

Cronコマンドにおいて、独自ドメイン以降とphpファイルまでのパスの合間に『/public_html』を記述する必要はあります。

ブラウザ上では『/public_html』の記述無しで目的のphpファイルを開くことが出来るため、不要だと思って記述しない(削除する)方が少なからずいます。

実際、『/public_html』の記述が無くても実行に成功する例は稀にあります。

しかし、もし常時安定した動作を実現したいのであれば、/public_html』は必ず記述するようにしてください。

確認点⑥:ファイル名や、ファイルに至るまでのパスに間違いは無いか?

/usr/bin/php7.2 /home/サーバーID/独自ドメイン名/public_html/abc.php

最後に、最も基本的な点で重要な点が、「phpファイル名」や「パス(フォルダ保存先に至るまでの記述)」の 記述ミス です。

上述した①~④を確認してもなお実行できない場合は、そもそもphpファイル内に記載ミスがあるか、コマンド内において「phpファイル名」や「パス」の指定ミスが含まれている可能性が高いです。

念のため、ドメイン名も間違っていないか確認した方が良いでしょう(例えば本サイトの場合、『fukafuka295.jp』がドメイン名にあたります)

"絶対に合っている" といった先入観は捨てて、再度キチンと確認してみてください。

通知アドレスの登録を推奨

以上が、エックスサーバーでCronによるphp動作が上手くいかない場合に、確認すべき6つの事項です。

「phpファイルの内容自体に記載ミスがある」といった場合を除けば、上記5項目を確認することで、問題なくphpファイルを動作させることが出来ると思います。

なお、エックスサーバーの「Cron設定」よりメールアドレスを登録しておくことで、Cronの実行結果を通知してもらえるようになります。

▼上手く実行できた場合、Cron Daemonよりphpファイルに到達できた旨が通知されます。

▼上手く実行できなかった場合、エラー内容が届きます。

どのような原因でエラーが発生しているかを確認できるため、初実行時にはメールアドレスを登録しておくと良いでしょう。

Cron自体が非常に便利な機能であり、応用次第で非常に幅広い使い道があります。

ぜひ上手く活用して、自身のサービスを充実させていきましょう!

▼こちらの記事もオススメ!

サーバー上のプログラムを自動実行!Cronの時間指定方法を分かりやすく紹介

サーバー上の機能の1つに、PHPファイル等のプログラムを自動的に実行させる『Cron(クーロン)』と呼ばれるものがあります。 Cronとは? Cron(クーロン or クローン)とは、指定時間に指定コ ...

続きを見る

自サイトのドメインパワーを確認!簡単なドメインパワーチェック方法

「自分のサイトのSEO対策を強化したい!」 「自分のサイトがどれくらいの力を持っているかを知りたい!」 そんな時にはドメインパワーチェッカーのサイトを用いるのが一般的ですが、サイトによってはスコアが異 ...

続きを見る

この記事をシェアする

関連コンテンツ

-HP・ブログ関連, セール・お役立ち情報
-, , , , , , , , , , ,

Copyright© ゲマステ!- 新作ゲームレビュー, マイクラ, ゲームMOD情報まとめ , 2021 All Rights Reserved Powered by AFFINGER5.