2013年9月29日

MODX Evolution CMSサイトを引越し(サーバ移転)するには

MODxサイトの引越し(サーバ移転)に関する方法を紹介します。

MODX Evolution CMS

1. データのバックアップ

データベース

管理画面の「ツール」メニューから「バックアップ・リストア」にアクセスします。「Drop文を生成」、「テーブル名」をチェックします。ログをあえて残す必要がない場合には、「modx_event_log」と「modx_manager_log」の「データサイズ」欄のリンクをクリックしてクリアします。最後に「選択したテーブルをバックアップ・ダウンロード」の前の「ここをクリック」。

MySQLデータベースの照合順序が ujis_japanese_ci になっている場合、MODxのデータのバックアップを使うと文字化けすることがあります。その場合は、データベースからサーバのPhpMyAdminでローカルにsqlファイル(A)をエクスポートします。

データベース以外のデータ

FTPでサイト全体のデータ(B)をローカルにバックアップします。

2. 移転先サーバへのアップロード

Aのファイルを移転先サーバのPhpMyAdminでインポートします。また、BのデータをFTPで移転先サーバにアップロードします。

3. パーミッションの設定

下記のディレクトリを707に

  • assets/cache
  • assets/export
  • assets/flies
  • assets/flash
  • assets/images
  • assets/media

下記のディレクトリを606に

  • assets/cache/siteCache.idx.php
  • assets/cache/sitePublishing.idx.php

下記のディレクトリを404に

  • manager/includes/config.inc.php

それぞれ変更します。

4. config.inc.phpの書き換え

manager/includes/config.inc.php のデータベース関連の引数を書き換える必要があります。

  • $database_type = 'mysql'; → このまま
  • $database_server = 'xxxx.xxxx.xxx'; → 適宜変更(例:'localhost')
  • $database_user = 'xxxx'; → 適宜変更
  • $database_password = 'xxxx'; → 適宜変更
  • $database_connection_charset = 'utf8'; → このまま
  • $database_connection_method = 'SET CHARACTER SET'; → このまま
  • $dbase = '`xxxx`'; → `適宜変更`
  • $table_prefix = 'modx_'; → このまま

5. MODXのグローバル設定の変更

MODXの管理画面の「ツール」メニューの「グローバル設定」を開いて、次の設定を書き換えます。

  • ファイル管理の設定 - 対象ディレクトリの物理パス → 適宜変更(例:/virtual/xxxx/public_html/)
  • インターフェイスとその他の機能 → 適宜変更(例:/virtual/xxxx/public_html/assets/)

6. キャッシュのクリア

MODXは、画面表示を早めるために一度表示されたページのURLをサーバ上にキャッシュしておくようになっています。そのため、1?2の作業によって、MODxがキャッシュされた以前のドメインに遷移しようとする可能性があります。もし、このような状態になってしまったら、管理画面にログインして「メイン」の「キャッシュをクリア」を実行します。

2013年9月8日

MODX Evolution CMSのDittoスニペットでRSSフィードを自動生成

MODX標準搭載のDittoスニペットは、RSSフィードの自動生成も簡単です。Dittoスニペットで自動生成したRSSフィードから新着記事をTwitterに自動ツイートしたり、Facebookに自動投稿したりすることもできます。

RSSフィードの自動生成の設定例

たとえば、リソースID「9,28,33」配下のリソースの新着10件からRSSフィードを生成する場合は、以下のようにRSSフィード用のリソースを作成します。

1. リソースを作成し、下表のように設定します。

項目設定備考
タイトル サイト名  
説明(description) サイトの説明 通常のMETAタグのdescriptionに記述する内容
エイリアス rss.xml ファイル名。index.rdf、feed.xmlなどとしてもよいが、その場合、テンプレート内のRSSフィード指定も忘れずに。
テンプレート blank  
メニューに表示 無効 Wayfinder、Ditto、Breadcrumbsなどのスニペットに表示させないようにするときは、「無効」に。
内容 [!Ditto? &format=`rss` &parents=`9,28,33` &depth=`3` &display=`10` &orderBy=`pub_date DESC` &showInMenuOnly=`1`!] 各変数については、下記を参照。
ページ設定 「公開する」と「キャッシュをクリア」の2つだけをオン(その他はすべてオフ)  
コンテントタイプ application/rss+xml  

2. テンプレートの<head>?</head>内に下記のコードを挿入して、保存。

<link rel=”alternate” type=”application/rss+xml” title=”RSS 2.0” href=”[(site_url)]rss.xml” />

RSS生成用のDittoスニペットの変数について

  • format:出力形式。【必須】
  • parents:対象とする子ドキュメントが属する親ドキュメント。IDで指定。カンマで区切って複数指定可能。【必須】
  • depth:対象とする子ドキュメントの階層。「1」以上の整数で指定。デフォルトは、「1」。【必須】
  • display:表示するドキュメント数。デフォルトは、「3」。すべてのドキュメントを表示するには、「all」。上記の例は、「10件」。
  • language:ナビゲーションメッセージの言語。デフォルトは、「英語」。日本語にするには、「japanese-utf8」。【必須】
  • showInMenuOnly:メニューに表示している記事に限定するかどうか。デフォルトは、「0(限定しない)」。限定するには、「1」に。
  • orderBy:ソートのキーとするフィールドとソート順。デフォルトは、「createdon DESC(作成日時 降順)」。昇順にするには、「ASC」。上記の例は、「公開日」。 【必須】