静的HTML化によるキャッシュ・再構築機能を開発しました
-
WordPressではwp-cacheやwp-super-cacheなどがありますが、
アクセスが無いとキャッシュが生成されないと思います。
アクセスが無い私のサイトはキャッシュが生成されずとても寂しかったので、
もっとアグレッシブにキャッシュを生成するプラグインを開発しました。説明は
http://pc.freeblo.com/370.html
にあります。ぜひ皆さんに叩いて頂ければ幸いです。
-
「コメント承認時」にも該当ページ再構築ができればいいのにね;)
shokun0803さん
機能のご提案、有り難うございます。
早速追加してバージョンを0.6としました。
さすがにリンクは書き過ぎたので書きませんが、私のサイトに置いてあります。それにしてもWordPressは、このデータ取り出したいな。というタイミングや、
ここでオレコードを割り込ませたい。みたいな絶妙なタイミングがあったりで、
本当に素晴らしいソフトウェアですね。
オープンソース万歳です。europa3さん
今HPからDLしましたがVer.0.5が落ちます^^;
差し替え中ならごめんなさい。Ver.0.5でも管理画面>投稿>キャッシュ再構築選択時のエラーは依然出てました。
おっとっと、失礼致しました。
取り急ぎ、まずはエラーログの原因を探さねばなりませんよね・・・!全体構築を行う際、キャッシュを事前に削除する機能を一時的に取っ払ってみたのですが、
こちらでもエラーログに同様のメッセージは出ますでしょうか?このログなのですが、推理小説のようにいくつかの情報を頂く必要がありそうで、
以下はいかがでしょうか。お手すきの際の、今オリンピックちょうど面白そうな競技やってないなー。みたいなタイミングでお調べ頂けますと助かります。1.サイト上に/wp-contentと絶対パス指定されている箇所は無いでしょうか
とはいえwp-のディレクトリは無視する処理にしているので、これはまあ無いだろうなと個人的には思います。2.cacheディレクトリに、wp-contentというディレクトリは作成されていますでしょうか
1.と関連して、これもたぶん作成はされていないだろうな・・・とは思います3.再構築すると、明らかにPHP的な『エラーですよ~』みたいな赤文字メッセージでしょうか。
もしそうでしたら、そのエラーメッセージを貼り付けて頂くと状況確認がより的確になるかもしれません4.最新版0.61は再構築自体が行われませんでしょうか?
cacheディレクトリの中身を削除して、もう一度動かしても作成されていなければ、デッドエンドwしてますどうぞよろしくお願い致します。
europa3さん
今週は有給消化で連休なので暇人な私です。
ver.0.61を試してみました。まずは動作の方から・・・
コメント承認しても再構築が行われませんでした。
もちろんオプションで自動実施に変更してます。
手動で再構築すれば表示されました。
ほかは問題なく動作してます。(たぶんw)続いてエラーの件
1.探してみましたがありませんでした。
2.確認しましたが作成されてませんでした。
3.キャッシュの再構築画面は正常に表示されますし、再構築を実施しても画面にエラーはでないです。
4.cacheディレクトリの中身を削除しても再構築で正常にファイルができます。エラーログの出るタイミングですが・・・
管理画面>投稿>キャッシュ再構築を押した時
File does not exist: /home/public_html/wp-content, referer: http://www/blog/wp-admin/edit.php?page=make-cache/make-cache.php
補足:ページは正常に表示されます。設定の保存・トップページのみ再構築/全てを再構築 を押した時
File does not exist: /home/public_html/wp-content, referer: http://www/blog/wp-admin/edit.php?page=make-cache%2Fmake-cache.php&updated=true
補足:再構築ボタンを押した場合、完了後に画面が切り替わった時にでます。まぁ動作に問題はないのですが出力されるのが気になりますね。
masaruさん
ご確認有り難うございました!
取り急ぎ・・・なのですが、エラーログが吐かれる原因が分かったかもしれません。
というのも、前回>その他、追記頂いた内容なのですが、これは私も最初に見た時、
>「おお、絶対パス指定している。なんてこと!」
>と思ったのですが、これはWordPressのプラグイン内でJavaScriptを呼び出す時の書き方らしく、
>このままで良いもの『っぽい』です。と書いたのですが、このままでも良くも何ともなくて、全然ダメでした。大変なゴミ投稿をしてしまいました。
前回書いた記事に追記でミスリードの旨を指摘してごめんなさい記述をしたいのですが・・・どうやれば前の投稿を編集出来るんですかね・・・?ここで書くべき内容ではありませんが。新しいファイルを用意しまして、これならばルートディレクトリを読もうとする問題は起きない気がしております。
ちなみに、再構築中はgif画像がカラカラ回るようにしていたのですが、
もしかしたらmasaruさんはその画像は見えていなかったのでは・・・?という気もしております。
こちらは見えておりましたでしょうか?お手数お掛けしてしまい大変申し訳ございません。
エラーをお教え頂きとても感謝しております。どうも有り難うございます。europa3さん
ver.0.62を試してみました。
エラーの件:
エラーはでなくなりました。
また、ぐるぐるも出るようになりました。
#0.61まで表示されませんでした。
#どこででるのかなとは思ってましたが(o゜▽゜)o動作:
コメント承認時やゴミ箱(コメントの)を空にしたときに自動で再構築されました。
新規投稿・投稿編集も問題なく自動再構築されました。要望:
投稿やページをゴミ箱に送った場合やステータス変更時(公開→下書き等)も
自動再構築できる便利かなと思ったりします。
コメントがゴミ箱に移すと再構築されてるっぽいので・・・。別件:
前の投稿の編集は管理者以外変更できません。masaruさん
無事エラーログが消えて良かったです!またご提案誠に有り難うございます。ご提案内容の機能を実装してみました。
私の管理している2サイトでは問題無く動いておりますので、お試し頂いても大丈夫そうです。
http://ドメイン/WordPressインストールディレクトリ
http://ドメイン/ディレクトリ/ディレクトリ2/WordPressインストールディレクトリ
にて試験済みです。詳細はサイトの更新履歴を見て頂ければ幸いです。
ちなみに別件の
>前の投稿の編集は管理者以外変更できません。に関してなのですが、もう少しご教示頂いてもよろしいでしょうか。
なにしろ、管理者以外の人がページを編集するなんざ、私のか細いWordPressブログ経験では、
一度も経験が無いお話でしてwいいプラグインになりそうですね;)
>前の投稿の編集は管理者以外変更できません。
に関してなのですが、もう少しご教示頂いてもよろしいでしょうか。
これはこのフォーラムの件ですね。
europa3さん
ver.0.7を試してみました。
その前に:
ちゃんと寝てくださいね(;゜ロ゜)
開発より睡眠が大切です。
メインPCのHDDがご臨終して交換品が届くの待っている状態なので確認が遅くなってすみません。
#現在はサブPCです。
WD10EARSが2週間くらいでHDDエラーを吐き2度目の交換 orz本題:
新機能の記事をゴミ箱にいれた時の再構築は問題ないです。(エラーもなし)
新規投稿や投稿編集(記事編集・公開状態変更等)をして投稿を押すと
下記エラーがでます。(ページも同様)
エラーがでるだけで動作はしています。PHP Warning: fwrite(): supplied argument is not a valid stream resource in /home/public_html/blog/wp-content/plugins/make-cache/make-cache.php on line 195, referer: http://www/blog/wp-admin/post.php?action=edit&post=397&message=1 PHP Warning: fopen(/home/pc.freeblo.com/html/wp-content/plugins/make-cache/log) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory in /home/public_html/blog/wp-content/plugins/make-cache/make-cache.php on line 203, referer: http://www/blog/wp-admin/post.php?action=edit&post=397&message=1 PHP Warning: fwrite(): supplied argument is not a valid stream resource in /home/public_html/blog/wp-content/plugins/make-cache/make-cache.php on line 204, referer: http://www/blog/wp-admin/post.php?action=edit&post=397&message=1 PHP Warning: fwrite(): supplied argument is not a valid stream resource in /home/public_html/blog/wp-content/plugins/make-cache/make-cache.php on line 211, referer: http://www/blog/wp-admin/post.php?action=edit&post=397&message=1 PHP Warning: fwrite(): supplied argument is not a valid stream resource in /home/public_html/blog/wp-content/plugins/make-cache/make-cache.php on line 215, referer: http://www/blog/wp-admin/post.php?action=edit&post=397&message=1 PHP Warning: preg_match() expects parameter 2 to be string, object given in /home/public_html/blog/wp-content/plugins/make-cache/make-cache.php on line 422, referer: http://www/blog/wp-admin/post.php?action=edit&post=397&message=1 PHP Warning: fclose(): supplied argument is not a valid stream resource in /home/public_html/blog/wp-content/plugins/make-cache/make-cache.php on line 223, referer: http://www/blog/wp-admin/post.php?action=edit&post=397&message=1
203行目は開発版の名残?
思った事:
管理者でログインしているのに個別記事からコメントを書こうとするとキャッシュがあるので未ログイン状態で表示されますが、実際にコメントすると本文だけ記載すればコメントできるのが気持ち悪いですね。
また、管理者の場合、コメント承認が必要ないので再構築を手動実行させるか記事編集でそのまま投稿して自動再構築しないとだめなのが手間ですね。
っといって代替え案が思い浮かびませんが^^;別件:
shokun0803さんがいうようにフォーラムのことだと思って書きました。
フォーラムの記事編集は管理者権限のある人しかできません。
それ以外のこととして書いてましたら見当外れな回答ですみません。shokun0803さま
評価有り難うございます。
目指して超えるか迂回して超えようMovableTypeの再構築。
をスローガンに頑張りたいと思います。記事編集の件、早とちりしてすみませんでした。やっぱり夜遅くはダメですね。
有り難うございます!masaruさま
ハードディスクが吹っ飛ぶのは非常に痛いですよね。
私も先日外付けハードディスクが吹っ飛び、
3年近くかけてせっせとためてきた<s>18歳未満は見てはいけない画像や動画が全て吹っ飛び悲嘆に暮れました。</s>
悲嘆に暮れる。とはこういう事を言うのか。と思いました。
#フォーラムに関係ない文章なので必要でしたら削除してください管理者様エラーの件、失礼致しました。
こちらは開発版のログ吐き出しコードが残ってしまっておりましたので、削除しておきました。
現在は問題無いかと思います。
思わぬところで原始的なデバッグ方法をとっている事がバレてしまいましたねwまた承認が必要ないところで再構築が行われない点は、確かに面倒だと思いますので、
修正ポイントとして再びコードに入りたいと思います!
サイドバーの『ログイン』というメッセージは、キャッシュである以上、どうしてもこう出ざるおえないんですよね・・・
cookieを読んで差し替えればもしや。みたいな事は可能なので、
後日make-cacheプラグイン専用のサイドバー周辺も機能(専用タグ?)を作るかもしれません。よろしくお願い致します!
europa3さん
ver.0.7差替版を試してみました。
雑談(猥談?w):
大事データ<del>18歳未満は見てはいけない画像や動画</del>はRAID構成のHDDに突っ込まれます(ぁ
WD10EARSはAV機器用に開発されたのをPC用に流用したみたいなので不具合が発生する可能性あるらしいです。
それの大当たりを連続で引いてます(o゜▽゜)o本題:
新規投稿や投稿編集(記事編集・公開状態変更等)をして投稿を押すと
下記エラーがでます。(ページも同様)
エラーがでるだけで動作はしています。PHP Warning: fwrite(): supplied argument is not a valid stream resource in /home/public_html/blog/wp-content/plugins/make-cache/make-cache.php on line 180, referer: http://www/blog/wp-admin/post.php?action=edit&post=368 PHP Warning: fwrite(): supplied argument is not a valid stream resource in /home/public_html/blog/wp-content/plugins/make-cache/make-cache.php on line 196, referer: http://www/blog/wp-admin/post.php?action=edit&post=368 PHP Warning: preg_match() expects parameter 2 to be string, object given in /home/public_html/blog/wp-content/plugins/make-cache/make-cache.php on line 401, referer: http://www/blog/wp-admin/post.php?action=edit&post=368
ご確認をお願いします。
その他:
サイドバーの『ログイン』というメッセージは、キャッシュである以上、どうしてもこう出ざるおえないんですよね・・・
サイドバーではないです。
個別記事(europa3さんとこだとこれとか)の事です。
コメント欄が未ログインでキャッシュされるので管理者で投稿するときに入力項目(名前やメアド)が出たままになりますが、コメント欄だけ埋めれば投稿ができるのが気持ち悪いなと・・・。
まぁここは致し方ないかもしれませんね(^_^;)masaruさま
大変失礼致しました!デバッグコードがまだ2つほど記述されていましたのではずしておきました。
preg_matchのワーニングは、私の環境では出なかったのですが、サーバごとに違うのかもしれません。
取り急ぎそれと思われる箇所をワーニングが出ないように修正してみましたので、
よろしければ暇な時にでもお試し頂ければ幸いです!コメント欄はおっしゃる通り、少々気持ち悪いですね。
そういえば私もコメント投稿試験中に、
『なんだメールアドレスがめちゃくちゃでも通過しちゃうな。』
と感じたのを思い出しました・・・どうぞよろしくお願い致します。
europa3さん
試してみましたが下記の条件でエラーがでました。
動作に問題はないです。
投稿やページの公開状態を公開から非公開に変更した場合
#その他の動作では問題ないです。
PHP Warning: preg_match() expects parameter 2 to be string, object given in /home/public_html/blog/wp-content/plugins/make-cache/make-cache.php on line 399, referer: http://www/blog/wp-admin/post.php?action=edit&post=368
また、0.7から体感ですが再構築にかかる時間が増えている感じがします。
ついでにうちの鯖環境です。
サーバOS:CentOS 5.4
WEBサーバ:Apache 2.2.3
MySQL:5.0.77
PHP:5.1.6
デュアルコア インテル® Xeon® プロセッサー 3040 * 2
メモリ8GB
HDD 1TB*4 2TB*4masaruさん
Warningの原因が分かりました!preg_matchの箇所でオブジェクトを見ようとしているという問題があることが無事分かりましたので、ようやく解決と思われます。
#エラーログの言っている事そのままですが。またついで・・・というか、前から導入したかったKtai Styleへの標準対応を行いました。
オプション指定にて
Ktai Style対応 ●する
にすると、携帯からのアクセスの場合、そのままKtai Styleに流し込みます。ああ構造変更しておいて良かった!また再構築の時間が増えている件ですが、これは
トップページ、記事ページ
の再構築に関してでしょうか。こちらは、カテゴリトップ、日付(年ページ、月ページ、日ページ)の再構築と、
作業している事が以前よりも増えたため・・・かもしれません。
もう少しユーザごとの希望に応じて、再構築ポイントを指定出来るといいかもしれませんね。
少々検討してみます。
#それにしても8GBのメモリ・・・羨ましいですw
- トピック「静的HTML化によるキャッシュ・再構築機能を開発しました」には新たに返信することはできません。