レオサーバー+OpenPNEのcronジョブ

 今日は、タイトルの通り、レオサーバーでOpenPNEのcronジョブを設定する方法についてのご紹介です。
 本稿では、OpenPNEのVer.2系での設定について記載していますので留意願います。
 また、本稿は実際の作業に基づくケーススタディの紹介です。同じサーバーで同じシステムを使っている以上成功するとは思いますが、動作を保証するものではありませんので、参考事例との認識でチャレンジ頂きますようお願い致します。

 Wordpressに黒田官兵衛、ついにはOpenPNEのcronジョブを素材にしている最近のブログですが、これは、行政書士が業のために作成しているブログであることを一応アピールしておきます。

<今日のポイント>
・コピー&ペーストで簡単にできます。
・しかし、これをやりきるには、多少の知識と忍耐、チャレンジ精神が必要です。

前提

 あなたがこのブログをお読みになって作業を行おうとされる場合、少なくとも以下のスキルが必要です。

  • FTPソフトでディレクトリにアクセスできること。
  • FTPソフトで属性変更ができること。
  • テキストエディタでファイルを作成できること。

 以上のことについて、「?」がつくのであれば、レオサーバーのマニュアルを参考にしたり、必要に応じてグーグル先生で検索しなければならない可能性がありますが、やってできないことはないと思います。

作業手順

 ここでは、OpenPNEのVer.2.14.9で外部ブログのRSSを取得するcronジョブを設定する方法を例にして説明します。

  1. FTPソフトでOpenPNEのインストール場所とフォルダ名をしっかり確認する。
  2. 実行ファイルを作成する。
  3. ファイルをアップロードしてリネーム、パーミッションを変更する。
  4. cronジョブを行いたいファイルを変更する。
  5. 管理画面でcronを設定する。
  6. 動作確認して終了。

1.インストール場所とフォルダ名の確認

 まず、FTPソフトでOpenPNEのディレクトリを確認します。レオサーバーでは、「public_html」の親フォルダに配置されているはずですので、まずはそこにたどり着いて、ディレクトリ(フォルダ)名を確認しましょう。

2.実行ファイルの作成

 次に、cronジョブを呼び出すための実行ファイルを作成します。テキストエディタを開き、次のコードをペーストします。

#! /bin/sh
/usr/bin/php /home/ユーザー名/OpnePNEのディレクトリ名/bin/tool_rss_cache.php

 次に、「ユーザー名」や「OpenPNEのディレクトリ名」となっている箇所を、ご自身のものに変更します。また、設定したいcronジョブが他のものであるときは、上記コード「tool_rss_cache.php」の代わりに、そのジョブを行うphpファイル名を記載します。
 最後に、ファイル名をつけて保存します。ファイル名は何でも構わないのですが、分かりやすいように「rss.sh.txt」としておきましょう。ファイル名の最後は「.sh.txt」としておくと、後がほんの少しだけラクになります。

3.ファイルをアップロードして作業

 ファイルを保存したら、そのファイルをアップロードします。ファイルのアップロード場所は、OpnePNEのディレクトリ直下です。
 ファイルをアップしたら、ファイル名を変更します。最後の「.txt」を削除し、「rss.sh」というファイル名にします。このとき、ファイル端子は「.sh」でなければなりません。
 次に、ファイルの属性(パーミッション)を「755」に変更します。

4.cronジョブを行うファイルの変更

 さらに、cronジョブを行うphpファイルを変更します。今回は、RSSを読み込むcronジョブを設定していますので、「bin」フォルダ内の「tool_rss_cache.php」をダウンロードしてきます(ローカルに保存しているならそれを使われても問題ありません)。
 そのファイルをテキストエディタで開きます。
 そして、コードを1行ペーストします。

chdir(dirname(__FILE__));//追加
require_once './config.inc.php';

 ファイルを開けると7行目あたりに、上記コードの2行目があるはずです。そこに、上記1行目のコードを付け足します。そして上書き保存して、そのまま再びアップロードします。なお、ペースト後、「//追加」の文言は消しても残しても、どちらでも構いません。

5.cronジョブの設定

 以上でFTPソフトを使った作業は終了です。次は、レオサーバーの管理画面でcronジョブの設定を行います。

/home/ユーザー名/OpenPNEのディレクトリ名/rss.sh

 時間設定を適宜行い、結果を受信するためのメールアドレスを設定して作業は終了です。

6.動作確認

 メールで動作確認ができます。レオサーバーであれば、上記の作業でエラーメッセージが出ることはないと思います。

 

トラブルシュート

 上記の設定で、万が一動かない場合、表示されたエラーメッセージの内容がわかる場合は、その項目を、わからない場合は作業をさかのぼる形でチェックしていきましょう。

  • レオサーバー管理画面のcronジョブ設定のファイル名に間違いはないか。
  • cronジョブを行うphpファイルには一行書き足しているか。
  • 実行ファイルは正しい場所にアップロードできているか。
  • パーミッションは「755」になっているか。
  • また、ファイル端子は「.sh」になっているか。
  • 実行ファイルの作成は正しく行えているか。

まとめ

 現在、レオサーバーで設定できるcronジョブは5つまでとなっています。今回はRSSの外部取得を素材にしましたが、他のcronジョブもファイル名を適宜変更することにより設定することが可能です。
 ご参考なさってください。