拙著「上手に稼ぐカラ売りテクニック」が発売されました。
株価が下がる局面で利益を得ることができる「空売り」について、詳しく解説した本です。
自由国民社刊で、定価1,512円(税込)です。
再構築不要化カスタマイズ(MT3.3専用版)
2007年7月6日
Movable Type 4をお使いの方は、Movable Type 4対応版のプラグインをご利用ください。
2007年3月7日
複数のBlogを運用する際に不具合が出ることがあったので、修正を行いました。
また、FastCGIにも対応させました。
詳細はこちらのページを参照してください。
Movable Typeでは、Blogの各ページを静的にHTMLファイルに出力することが基本です。
ただ、この方式では、エントリーが増えると再構築に時間がかかるという問題があります。
そこで、当Blogでは、「Perl版ダイナミック・パブリッシング」というプラグインを公開していました。
今回、このプラグインのMovable Type 3.3専用版を作りました。
従来のものに比べて、導入が大幅に簡単になっています。
なお、ページの動的出力の機能は、従来のプラグインから変わっていません。
従来のプラグインで動作している方は、そのままお使いいただいても良いです。
1.動作の条件
Perl版ダイナミック・パブリッシングは、以下の環境で動作します。
- Movable TypeのデータベースをMySQL/PostgreSQL/SQLiteのいずれかで管理している(Berkeley DBは不可)
- WebサーバーがPHPに対応している
- .htaccessの設定を変えることができる
また、このプラグインにはページをキャッシュする機能がありますが、SQLiteではキャッシュ機能は使うことができません。
なお、ページ分割のプラグイン(MTPaginate)は、Perl版ダイナミック・パブリッシングでは使うことができません。
ページ分割を行いたい方は、拙作のプラグイン(DivPages)をお使いください。
2.旧版の削除
旧版のプラグインをこの新版に変えたい方は、以下のテンプレートやファイルを削除してください。
- 各ブログから「dynamic_init.pl」と「mt-dpcache-load.php」のテンプレートを削除してください。
- 各ブログの出力先ディレクトリから、「mt-dynamic.cgi」「dynamic_init.pl」「mt-dpcache-load.php」のファイルを削除してください。
- Movable Typeの「plugins」ディレクトリから、「GetConfig.pl」ファイルを削除してください。
3.プラグインのダウンロードとインストール
このプラグインは、以下のアドレスからダウンロードすることができます。
プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。
また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、Movable Type Plugin Directoryのページをご参照ください。
Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」も販売しています。
ご自分でプラグインを作ってみたい方に、ぜひお勧めしたい一冊です。
詳細は特設ページをご覧ください。
ファイルを解凍すると、「PerlDynamic」というフォルダができます。
このフォルダを、Movable Typeの「plugins」ディレクトリの中にアップロードします。
そして、「PerlDynamic」ディレクトリの中の「mt-perl-dynamic.cgi」と「mt-perl-dynamic-setup.cgi」のパーミッションを「755」などに変えて、実行可能にします。
なお、Movable Type 3.3では、プラグインの日本語化対応機能があり、このプラグインではその機能を利用しています。
そのため、Movable Typeの設定をutf-8以外にしていても、ファイルをアップロードする際には文字コードを変えないでください。
4.データベースの初期化
このプラグインをアップロードした後、初めてMovable Typeにログインする際には、以下のページが表示されます。
「アップグレードの開始」ボタンをクリックすると、データベースにテーブルが追加されます。
アップグレードが終わると、以下の表示になります。
5.ダイナミック・パブリッシングをオンにする
次に、Movable Typeのダイナミック・パブリッシングの機能をオンにします。
ダイナミック・パブリッシングにしたいBlogで、「設定」ページの「公開」タブを開き、「公開」の部分で「テンプレート別に、スタティックHTMLもしくはダイナミック・パブリッシングを選択します」をオンにして、「変更を保存」ボタンをクリックします。
6.Perl版ダイナミック・パブリッシングの初期化
次に、Perl版ダイナミック・パブリッシングを初期化します。
ダイナミック・パブリッシングにしたいBlogで、「設定」ページの「プラグイン」タブを開き、プラグイン一覧の「PerlDynamic」のところで「設定を表示」をクリックします。
すると、「初期化する」というリンクが表示されますので、それをクリックします。
初期化が終わると、以下のようなメッセージが表示されます。
なお、初期化では以下のような処理が自動的に行われます。
- .htaccessファイルの書き換え
- mt-dynamic.phpテンプレートの作成と再構築
- SQL用テンプレート(sqlsub_mysql.phpまたはsqlsub_pgsql.php)の作成と再構築
7.Perl版ダイナミック・パブリッシングの設定
次に、Perl版ダイナミック・パブリッシングを設定します。
初期化完了のページで、「このリンクをクリックして、設定を続けてください。」をクリックすると、設定ページに移動します。
また、ブログの「設定」ページの「プラグイン」タブでPerl版ダイナミック・パブリッシングの「設定を表示」をクリックし、その中の「設定を行う」のリンクをクリックしても、設定ページを開くことができます。
設定ページでは、以下の点を設定します。そして、設定が終わったら、「設定を保存」のボタンをクリックします。
・インデックスページのファイル名
メインページとアーカイブページのファイル名を指定します。
初期値は「index.html」ですが、BlogをPHP化している方は「index.php」に変えてください。
・ページが見つからないときの移動先のURL
間違ったアドレスのページに接続されたときには、エラーページに転送することができます。
その機能を使いたい場合は、この欄にエラーページのURLを入力します。
なお、この欄を空欄にした場合、間違ったアドレスに接続されたときには、「ご指定のアドレスのページは見つかりませんでした。」というメッセージが表示されます。
・キャッシュの設定
Movable TypeのデータをMySQLかPostgreSQLに保存している場合、ページのキャッシュ機能を使うことができます。
キャッシュ機能を使いたい場合は、「キャッシュを使う」のチェックをオンにします。
また、キャッシュをオンにする場合、「キャッシュの容量」の欄で容量も指定することができます。
8.ダイナミック・パブリッシングにするテンプレートを選ぶ
次に、インデックス・テンプレートとアーカイブ・テンプレートの中で、ダイナミック・パブリッシングにしたいものを選びます。
対象のテンプレートを開き、ページ右上の方にある「このテンプレートをダイナミック・ページにする」のチェックをオンにして、テンプレートを保存します。
↓このテンプレートをダイナミック・ページにする」のチェックをオンにする
9.Blog全体を再構築する
ダイナミック・パブリッシングにするテンプレートを選び終わったら、Blog全体を再構築します。
これ以後は、各ページがダイナミック・パブリッシングで出力されます。
なお、再構築後にBlogの出力先ディレクトリを見ると、「~.static」という名前のファイルができています。これらのファイルは、これまでの静的再構築で作られていたファイルです。
これらのファイルは不要になりますので、サーバーから削除することができます。
10.小粋空間のテンプレートをお使いの場合
小粋空間のテンプレートをお使いの場合、メインページや各アーカイブ・ページのテンプレートの先頭に、以下のXML宣言が入っています。
<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
Perl版ダイナミック・パブリッシングを利用すると、ダイナミック・パブリッシング化したページは、すべてPHPで処理されます。
一般的なPHPの設定では、「<?」と「?>」で囲まれた部分はPHPのスクリプトとして認識されます。
上記のXML宣言も「<?」と「?>」で囲まれているため、PHPのスクリプトと認識されてしまい、このままだと以下のようなエラーが表示されます。
Parse error: syntax error, unexpected T_STRING in /○○○/index.php on line 1
そこで、この行を以下のように書き換えて、XML宣言をPHPのスクリプトで出力するようにします。
<?php print('<?xml version="1.0" encoding="<$MTPublishCharset$>"?>' . "\n"); ?>
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください
footbrain
こんにちは。
移植先のサーバーで「Perl版ダイナミック・パブリッシング」に挑戦しているのですが、
何度やっても上手くいきません。
「9.Blog全体を再構築する」までの行程を終え、
「~.static」という名前のファイルは作成されているのですが、
.htaccessが書き換えられていないので、ページを表示することができないのですが、
この原因が分りません。
どうすればいいのでしょうか?
教えてください。宜しくお願いします。
壱
>footbrainさん
こんにちは。
.htaccessが書き換わっていないとすると、その中に「/mtview.php」が4箇所あるはずです。それらを「/mt-dynamic.php」に手動で置換してください。
footbrain
>壱さん
回答ありがとうございます。
「その中に「/mtview.php」が4箇所あるはずです。」とおっしゃるのは、ブログ・ルート・ディレクトリに、ダイナミック・ページのリクエストを扱う.htaccessの中にということですか?
だとすれば、.htaccessの中にはその記述もありませんでしたので、http://www.sixapart.jp/movabletype/manual/3.2/mtmanual_dynamic.htmlからコピーして、存在する4箇所を「/mt-dynamic.php」に置換してみましたが、そうすると500 Internal Server Errorが起きてしまいます。
.htaccessの記述が違うのでしょうか?
footbrain
>壱さん
一度「すべてをスタティックHTMLで出力します」に設定を戻し、再度、「テンプレート別に、スタティックHTMLもしくはダイナミック・パブリッシングを選択します」を選択したところ、壱さんのおしゃる.htaccessが生成されていました。
ダイナミック・パブリッシングにするテンプレートを選んで、再構築をしたところ、今度は、Smarty error: [in mt:16 line 12]: syntax error: unrecognized tag 'MTTag' (Smarty_Compiler.class.php, line 580)が表示されてます。
footbrain
>壱さん
たびたび申し訳ありません。
MTTagを修正したら、今度はMTCaptchaJsURLでSmarty errorが起きています。
MTCaptchaJsURを使用している部分をはずしてみたら、
Parse error: syntax error, unexpected '?' in ***.php on line 5
と表示されてしまいました。
お手上げです。
壱
>footbrainさん
こんにちは。
エラーの状況からすると、Perl版ダイナミック・パブリッシングではなく、Movable Type本来のダイナミック・パブリッシングが動作しています。
そのため、各種のプラグインで追加されたタグが識別できずに、お書きになったようなエラーが発生しています。
もう一度、「6.Perl版ダイナミック・パブリッシングの初期化」を行っていただければ、.htaccessが書き換えられて、Perl版ダイナミック・パブリッシングになるはずです。
footbrain
>壱さん
おっしゃるとおりでした。
初期化して再構築したら、できました。
ただWidgetManagerでサイドバーに読み込んでくるjavascriptが一部機能していませんが、これは大した問題ではありません。
もとはと言えば、MTが.htaccessを生成してくれなかったことが原因なのですが、
困ったときは、最初からやり直す。
これが基本ですね。
お手数をおかけしました。
ありがとうございます。
みずほ
いつもお世話になっています。
3.31の時に再構築のあまりの遅さに、こちらのカスタマイズを試してサイト全体がインターナルサーバーエラーになりあきらめていたのですが、.htaccessのせいのエラーだったのははわかったので.htaccessの中身を見ていたら、さくらでは使えないOptions -Indexesの記述があったのでコメントアウトしてみたらうまくいったようなのです。
Options -Indexes +SymLinksIfOwnerMatchの行はコメントアウトしても問題ないものでしょうか?
無事に動いていると思われるのですが・・・。
壱
>みずほさん
こんにちは。プラグインをご利用いただき、ありがとうございます。
さくらインターネットでは、.htaccessのOptionsを書き換えないと、ダイナミック・パブリッシングは動作しません(MT標準のものも含めて)。
ということで、書き換えても問題ありません。
みずほ
こんにちは。レスありがとうございます。
.htaccessの書き換えは問題ないのですね。
SQLiteではサイト表示にかなり時間がかかってしまうようなので、現在はMySQLでキャッシュを作成して利用しています。
すごく快適になりました。ありがとうございました。
footbrain
DNS情報を変更したら、
ダイナミックに構築しているページを表示しようとすると、
Warning: include() [function.include]: Failed opening '' for inclusion (include_path='.:/usr/local/lib/php') in *****/mt-dynamic.php on line 181
と表示されるようになってしまいました。
初期化しても駄目で、再インストールしてみたりもしたのですが、直りませんでした。
仕方がないので、今はスタティックに戻しましたが、
原因がわかりません。
心当たりはありますか?
教えてください。お願いします。
壱
>footbrainさん
こんにちは。
その状況だと、mt-perl-dynamic.cgiがまともに動いていないものと思われます。
ただ、なぜmt-perl-dynamic.cgiが動かないかは、いただいたメッセージだけでは残念ながら分かりません。
みずほ
こんにちは、いつもお世話になっています(というか、またお世話になりますですが・・・)
現在Perl版ダイナミックパブリッシングをMySQLでキャッシュありの設定で運営しています。
cronで指定日投稿をさせると、投稿は実行されていても実際の表示ページには反映されないのはキャッシュ設定にしているせいでしょうか?手動で投稿し直すと反映されます。
指定日投稿をそう使うことはないのですが、現在の設定で指定日投稿を反映させるにはどのようにしたらいいでしょうか。
私なりにキャッシュをしない設定にすると良いのかなとか、こちらのほぼ指定日投稿ならどうかなとか、こちらのリアルタイム再構築プラグインを利用してうまくいくのかなとか考えていますが、これらの解決方法でうまくいくでしょうか。
cronについてよくわかっていないので、的外れな事も言っているかもしれませんが、よろしくお願いします。
壱
>みずほさん
こんにちは。
ご質問の件ですが、MT側の不具合のようです。
MT/lib/WeblogPublisher.pmの787行目の「or die $mt->errstr;」の後に、以下の2行を追加してみてください。
$blog->touch;
$blog->save;
うに
初めまして。
この度、Perl版ダイナミックパブリッシングを導入しようと思い、こちらに訪れました。
ファイルをアップロードし、実行可能にしたうえでデータベースをアップグレードしているんですが一向にアップグレードが終了しません。。。
IEのStatusバーを見ると「ページでエラーが発生しました。」と表示されます。
エラー:構文エラーです。
スクリプトエラーが表示されてしまいます
これはどうすればいいんでしょうか?
壱
>うにさん
こんにちは。
そのエラーは、MT本体が出力しているJavaScriptで起こっているものと思われます(このプラグインではJavaScriptは使っていません)。
試しに、IE以外の他のWebブラウザでアップグレードを行ってみてください。
うに
壱さん、返信ありがとうございます。
仰った通り、IE以外の他のWebブラウザ(OperaとNetscape)でアップグレードを行ってみましたがいずれも「アップグレードを開始します...」のところから先に進めません。
何か解決策はあるんでしょうか?
宜しくお願い致します。
壱
>うにさん
こんにちは。
お使いの環境に依存する問題のようで、申し訳ありませんが、こちらでは対処することができません。
うに
わかりました。
PHP化を避けてコチラの方法にしようと思ったんですが・・・
別の方法を探す事にします。
わざわざ質問に答えて頂き有難う御座いました。
P
はじめまして、Pと申します。どうか お力をお貸しください!!
現在『チカッパ!レンタルサーバー』というレンタルサーバーで『Perl版ダイナミック・パブリッシング(MT3.3専用版)』を活用させていただいてます。
質問ですが、phptempフォルダの中身が異常に大きくなっており、サーバー容量最大500MBまでの契約のところ、phptempフォルダだけで現在1.5GBほどになってます。
phptempフォルダの中身を削除したり、PerlDynamicの初期化を行う事で解決するのでしょうか?
正しい解決方法を教えてください。
何卒宜しくお願いします!
壱
>Pさん
こんにちは。プラグインご利用ありがとうございます。
phptempフォルダの中身は、自動的に消すように作ってあります。
消えていないとなると、動作に何らかの不具合があるものと思われます。
とりあえず、phptempフォルダの中身は手動ですべて削除してください。
鹿之助
はじめまして。
いつもプラグイン等を利用させていただいています。
僕もPさんと同じようにphptempフォルダの中身が大きくなり、手動で削除していました。
上のレスを見ると本来は自動的に削除されるとのことで、どの辺に不具合が起きているのか調べる方法はあるのでしょうか?
環境はサーバーがロリポップで、データベースがSQLightです。
P
> 壱さん
早速の回答、有難うございます!
重ねて質問なんですが、phptempフォルダの中身が自動で削除されないのは困るので、不具合を修正したいと思います。
やや初心者の私は、不具合を修正するよりも『Perl版ダイナミック・パブリッシング』をインストールし直した方が簡単だと思いますが、再インストールの手順を教えて頂けないでしょうか?
お手数をお掛け致しますが、宜しくお願い致します。
壱
>鹿之助さん
こんにちは。プラグインご利用ありがとうございます。
まず、phptemp/phpcacheディレクトリのパーミッションがどうなっているかを調べてみてください。
また、このプラグインをインストールすると、「mt-dynamic.php」というインデックス・テンプレートが作られます。
そのテンプレートの最後の方に、「// 一時ファイルを削除する」という部分があります。
その中に「@」が4箇所ありますが、それらをすべて削除してこのテンプレートを再構築して、Blogのページをどこか表示してみてください。
「@」の箇所は以下の通りです(赤字)。
// 一時ファイルを削除する
$now = time();
$dh = @opendir('./phptemp');
while (($file = @readdir($dh)) !== false) {
if ($file != '.' && $file != '..') {
$fpath = './phptemp/' . $file;
$mtime = @filemtime($fpath);
if ($now - $mtime > 60) {
@unlink($fpath);
}
}
}
phptempディレクトリ内のファイルが削除できていないとなると、上記の部分でエラーになり、そのメッセージがページのソースの最後に出力されると思います。
壱
>Pさん
こんにちは。
再インストールしてもこの問題は解決しません。
1つ上のコメントに書いたことをお試しいただいて、状況をお知らせいただければと思います。
鹿之助
>壱さん
わかりやすい説明どうもありがとうございます。
早速確認・訂正を行なってみましたがどうも上手く行きませんでした…
>まず、phptemp/phpcacheディレクトリのパーミッションがどうなっているかを調べてみてください。
確認したところ、両方とも755になっています。
>その中に「@」が4箇所ありますが、それらをすべて削除してこのテンプレートを再構築して、Blogのページをどこか表示してみてください。
削除して表示させてみたところ、やはりファイルが残ってしまいました。
ちなみにmt-dynamic.phpのパーミッションは644なのですが、これは問題ないでしょうか?
>phptempディレクトリ内のファイルが削除できていないとなると、上記の部分でエラーになり、そのメッセージがページのソースの最後に出力されると思います。
下記のような記述が書かれていました。
<title>ダイナミック・パブリッシングエラー</title>
<style type="text/css">
<!--
.dperror {
font-family: Verdana, Arial, sans-serif;
font-size: x-small;
color: #666;
line-height: 13px;
font-weight: bold;
margin: 0px 0px 10px 0px;
border: 1px #6C3 solid;
background: #FFD;
padding: 10px;
}
-->
</style>
<title>Build Error</title>
<body>
<p class="dperror">$msg</p>
</body>
他にチェックすべき項目がありましたら、お手数ですが教えてください。
どうぞよろしくお願いします。
壱
>鹿之助さん
こんにちは。
phptemp/phpcacheディレクトリのパーミッションを、757または707に変えてください。
これで、phptempディレクトリのファイルが自動的に消えるようになるはずです。
厳密には、Blog内のどこかのページにアクセスすると、phptempディレクトリのファイルの中で、アクセスの時刻から1分以上前に作られたファイルが削除されます。
P
> 壱さん
先程「@」の削除をやってみましたが、鹿之助さんと同じ結果でした。
phptemp/phpcacheディレクトリのパーミッションを、757に変更したら自動的に消えるようになりました。
有難うございました!
現在は正常に動いているようなんですが、削除した「@」は元の通りに書き加えた方が良いのでしょうか?
鹿之助
>壱さん
言われたとおり、パーミッションを変更したところ無事に削除されていました!
これで安心していろいろいじくることができます。
本当にありがとうございました。
今後もどうぞ宜しく御願い致します。
壱
>Pさん、鹿之助さん
こんにちは。無事直ってよかったです。
なお、削除した「@」は元に戻しておいてください。
みずほ
こんばんは。
指定日投稿が反映されない件について、ご指摘の箇所を修正したら反映されるようになりました。
素早い回答をいただいたのに報告が遅くなってすみません。
いつも丁寧なサポートをありがとうございます。
ゆう
こんにちわ。
前のバージョンから、こっちの3.3専用バージョンに切り換えて使わせて貰っています。
CGI 自体の起動部分を少しでも早くしたいため、mod_perl で動作するようにしたいのですが、
/mt/plugins/PerlDynamic/mt-perl-dynamic.cgi
を mod_perl 化することは可能なのでしょうか?
壱
>ゆうさん
こんにちは。プラグインご利用ありがとうございます。
こちらではmod_perlをテストする環境がないので、申し訳ありませんが、こちらではmod_perl化することはできません。
Tatsuya
Perl版ダイナミック・パブリッシングのプラグインを使わせていただいております。
初期化してインデックスページを「index.php」に変更してからインデックステンプレートだけをダイナミックページに変更して、全体を再構築しましたが、403エラーでブログを見ることが出来ません。アクセスするURLは今までアクセスしていたhttp://hoge.com/blog/でインデックスページが表示されるはずですよね?
Tatsuya
先ほどコメントした者です。
なんとかダイナミック・パブリッシングはできました。
なのですが、エントリアーカイブへのリンクが上手くいきません。
http://hogehoge.com/blog/2007/01/○○○○.php
と言う風なリンクなのですが、そのようなファイルは生成されていませんし、どうしたらいいのでしょうか?何かタグでもあるのでしょうか?
壱
>Tatsuyaさん
こんにちは。
403エラーが出ていることからすると、お使いのサーバーでは、「http://hoge.com/blog/」のアドレスでアクセスする際には、そのディレクトリにindex.htmlやindex.phpなどのファイルが実際に存在していないとならないような設定になっているのではないかと思います。
試しに、「http://hoge.com/blog/index.php」の形式のアドレスにアクセスして、表示できるかどうかを確認してみてください。
もし、これでアクセスできるなら、index.htmlファイルを作って、metaタグのrefreshの機能でindex.phpにリダイレクトするようにすると、「http://hoge.com/blog/」のアドレスでもアクセスできるようになると思います。
壱
>Tatsuyaさん
35番のコメントへの回答です。
エントリー・アーカイブをダイナミックパブリッシングするように設定した後で、エントリー・アーカイブの再構築は行われたでしょうか。
なお、ダイナミック・パブリッシングにすると、URLと一対一に対応するようなファイルは出力されません。ページにアクセスがあった時点で、URLから再構築すべきページを割り出して、一時ファイル(phptempディレクトリ)に出力するようになっています。
Tatsuya
すいません。多分その通りだったと思います。
先ほどダイナミックパブリッシングにして再構築したら無事成功しました。
ほんとにお騒がせ致しました。
k1row
自己解決しましたが、お困りの方も多いようなのでこちらにもコメントさせていただきます。
ダイナミック・パブリッシングにするテンプレートでXML宣言をしている場合普通に
<?xml version="1.0" encoding="<$MTPublishCharset$>" standalone="no"?>
と書くと、Parse error: syntax error, unexpected T_STRING inとエラーが出てしまいますので、以下のように書き替える良いようです。
<?="<?xml version=\"1.0\" encoding=\"<$MTPublishCharset$>\"standalone=\"no\" ?>\n"?>
tattsun
はじめまして。
たっつんと申します。
Perl版ダイナミック・パブリッシングの設定を行おうと、「9.Blog全体を再構築する」まで行い、トップページを表示したところディレクトリとファイルの一覧が表示されてしまいました。タイトルには「Index of /」と表示されています。
.htaccessを変更する必要があるのかと思いましたが、サイズ0で中身が空のファイルしか作成されませんでした。
後少しでできそうなのですが、ご教授お願い致します。
申し訳ありませんが宜しくお願い致します。
壱
>tattsunさん
こんにちは。プラグインご利用ありがとうございます。
まず、手順の5.を行った時点で、Movable Typeが.htaccessを作成します。
そして、手順の6.でこのプラグインがその.htaccessを書き換えるようになっています。
今の状況では.htaccessが出力されていませんので、5.で失敗していることになります。
もう一度5.と6.の手順を行ってみてください。
tattsun
壱 様>
ご回答ありがとうございます。
手順の5.と手順の6.をもう一度おこなうことで.htaccessが作成されPerl版ダイナミック・パブリッシングが有効になることができました。
ご親切にご回答ありがとうございます。:pp_07.gif:
irori
はじめまして。こちらのPerl版ダイナミック・パブリッシングを利用させていただいております。
ところが問題が発生しました。
サーバーをlolipopからさくらインターネットに切り替えたのですが、ページを確認しようとすると505Internal Server Errorで見られなくなったのです。
こちらのコメントを参考にし、.htaccessのOptions -Indexes +SymLinksIfOwnerMatchの行はコメントアウトしています。
また、.htaccessの中身を確認してみますと、一箇所ですが、/mt-dynamic.phpの記述があり、書き換えも完了しているようです。
ですが、どうにもエラーがでてしまいます。ダイナミックパブリッシングをオフにすると大丈夫なのですが、どこが問題なのでしょうか?丸一日かけて検索しましたがもうお手上げです。
どうかご教授お願いいたします。
壱
>iroriさん
こんにちは。
.htaccessの中に/mt-dynamic.phpの記述が一箇所しかないというのは、正しい動作ではありません。全部で四箇所あるはずです。
もし、「/mt-view.php」という記述が残っていたら、それらをすべて「/mt-dynamic.php」に変える必要があります。
また、さくらインターネットでは、PHPを動作させるには、PHPのファイルのパーミッションを705か755にしなければならないです。
Blogの出力先ディレクトリにmt-dynamic.phpができますが、そのファイルのパーミッションを705か755に変えてみてください。
irori
壱様
こんにちは、質問させていただいたiroriです。
こんなに早く応えていただけるとは思っていませんでした。
ありがとうございます!
まさしくPHPのパーミションでした。
755に変更すると、Perl版ダイナミック・パブリッシングが有効になり、ページも確認できるようになりました。
本当にありがとうございました、これで安心して移転できます!
では失礼いたします。
壱
>iroriさん
こんにちは。
無事動作して良かったです。
kaz
はじめまして
Fujimotoさんの記事に助けられ、MTでブログを作っています。
(本当に参考になります)
さて、そのブログがほぼ完成にまできたところで、1つ困ったことが起きました。
月別記事の1ヶ月分だけが、なぜかエラーが起こり、表示されません。
エラーページのソースを見ると、上の方で書かれていたエラーと似ているため、ここで質問させていただきました。
エラーページは下記で、
http://moonitem.com/sneakers/archives/2004/06/
エラー内容は、以下の通りになります。
Build Error
原因と対応策をご教授願えないでしょうか。
足りない情報がありましたら、ご指摘ください。
申し訳ありませんが、よろしくお願いします。
kaz
エラーメッセージが、表示されませんでした。
再度記載しておきます。
<style type="text/css">
<!--
.dperror {
font-family: Verdana, Arial, sans-serif;
font-size: x-small;
color: #666;
line-height: 13px;
font-weight: bold;
margin: 0px 0px 10px 0px;
border: 1px #6C3 solid;
background: #FFD;
padding: 10px;
}
-->
</style>
<title>Build Error</title>
<body>
<p class="dperror"></p>
よろしくお願いします。
壱
>kazさん
こんにちは。プラグインご利用ありがとうございます。
ページの再構築に失敗したときに、お書きになったような空のエラーメッセージが表示される可能性があります。
ただ、何が原因で再構築に失敗しているかは、外から見える状況だけでは分かりません。
ためしに、2004年5月の日付でダミーのエントリーを作って、問題のページが表示されるかどうかをテストしてみてください。
kaz
壱さん、ご連絡ありがとうございます。
2004年5月のダミーエントリーは、問題なく作成できました。
そこで、「ページの再構築に失敗したとき」を頼りに、
2004年6月の記事を未公開に戻し、順次公開に切り替えてみました。
その結果、エラー原因となっている記事が発見できました。
原因としては、EvalTemplateプラグインを使い、記事の中に記載していたMTタグのリンク先がなくなっていたためでした。(わかりにくい説明ですが...)
問題の記事を修正することで、無事、エラーページがなくなりました。
このたびはお騒がせいたしましたが、
壱さんのコメントをヒントに解決することができました。
ありがとうございます。