WordPressではwp-cacheやwp-super-cacheなどがありますが、
アクセスが無いとキャッシュが生成されないと思います。
アクセスが無い私のサイトはキャッシュが生成されずとても寂しかったので、
もっとアグレッシブにキャッシュを生成するプラグインを開発しました。
説明は
http://pc.freeblo.com/370.html
にあります。ぜひ皆さんに叩いて頂ければ幸いです。
WordPressではwp-cacheやwp-super-cacheなどがありますが、
アクセスが無いとキャッシュが生成されないと思います。
アクセスが無い私のサイトはキャッシュが生成されずとても寂しかったので、
もっとアグレッシブにキャッシュを生成するプラグインを開発しました。
説明は
http://pc.freeblo.com/370.html
にあります。ぜひ皆さんに叩いて頂ければ幸いです。
このフォーラムの別スレッドにて解法を頂き、日本語が含まれるURLも問題無くキャッシュ出来るようになりました。
http://pc.freeblo.com/395.html
wp-super-cacheは使った事が無いのですが(ソースコードが大きすぎて使う気にならないため)、
あちらは日本語URLが上手く動かないようですが、こちらは動きますので、
ぜひwp-super-cacheにご不満がある方はお使い頂ければ幸いです。
自分の環境では
Firefox
IE6
IE7
IE8
問題無しでした。
>記事を投稿、編集した際には、再構築をしないと反映されない
これ投稿押したら自動再構築とかにできませんかね?
運用上、日に何度か投稿をしますのでそのたびに手動で再構築は手間ですね・・・。
wp-super-cache乗り換えるのに悩みますね。
masaru様。
ご提案誠に有り難うございます。
頑張らせて頂きますw
投稿を押したら、自動で再構築をかけられるように修正を行いました。
他にも機能追加提案があればドシドシよろしくお願い致します。
http://pc.freeblo.com/401.html
europa3さん
早速の実装ありがとうございます。
実際に使ってみましたがもう少し希望を・・・(後出しですみません。
オプションで全再構築する・しないに追加で・・・
該当記事(編集記事)とindexだけ再構築も追加可能でしょうか?
投稿が700弱・ページが650弱あるもので・・・orz
masaruさん
お返事有り難うございます!頑張らせて頂きます!w
お待たせ致しました。
と言っている間に大きく構造を変えたりして、
旧バージョンと新バージョンはキャッシュ構造がまったく違い、
もしアップグレードする場合は注意が必要ですが・・・
トップページと記事のみ再構築
という自動構築が可能になりました。
もしアップグレードで気になる事や、少々怖いな。と思っている方がいらっしゃれば、
サイトにコメントを頂ければ100%サポート致します。
WordPress静的HTML生成プラグイン
europa3さん
実装ありがとうございます。
Ver.0.43を入れてみました。
構造が変わったとのことだったので別サイトに入れてみましたが
動いてないっぽいかんじです(;´Д`)
パーマリンク設定
/%year%/%monthnum%/%day%/%postname%/
.htaccess
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule .*\.html/.* /index.php [L]
RewriteCond %{REQUEST_FILENAME} !^.*(jpg|gif|jpeg|png|JPG|JPEG|GIF|PNG|bmp|BMP|css|CSS).*$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
# END WordPress
make-cache/cache以下にhtmlはできているのでプラグインは動いていますが、
管理者以外(非登録ユーザー)でアクセスしコメントをしても再構築なしで反映されてしまいます。
動いているかの確認を確実にするにはどうすればいいでしょうか?
masaruさん
早速ダウンロードして頂き誠に有り難うございます!
cache以下にファイルは出来ている。とのことで、
恐らくプラグインは動いているのでは?
と思います。
なので、取り急ぎcache以下に生成されたファイルをどれか強引に修正しまして、
URLからアクセスしてみてもらうと、cache以下のhtmlを使っているのか、それともWordPressのシステムが生成して出力しているのか?
が判断出来るかと思います。
例えばキャッシュ以下に
2010/02/20/WordPress%12%11%11%12/index.html
というようなファイルが出来ていたら、このindex.htmlを修正してみてください。
その後、
http://~~~/2010/02/20/WordPress%12%11%11%12/
にアクセスして、書き換えたはずの情報が出てこなければ、make-cacheが使われておりません・・・
またコメントに関してなのですが、実は.htaccessに
RewriteRule .*\.html/.* /index.php [L]
を書き加えている関係で、コメント処理が起こったら、
キャッシュは使わずにWordPressの出力を使うようにしております。
ここは悩んだのですが、コメント投稿して承認待ちになった状態でも、
投稿者本人はページで確認したいよな・・・
と思ったわけでして。
管理者では無い投稿者が投稿した場合、
『承認待ち』
というメッセージ付きでページに反映されておりませんでしょうか?
試しに他のブラウザでそのページを見てみると、恐らく投稿された情報は表示されない気がします。
まずはお試し頂き有り難うございます。
そしてフィードバック本当に有り難うございます!助かります!
原始的な方法ですが私はこの方法しか思いつかず、これで試しておりますw
europa3さん
キャッシュ以下のファイルを直接変更してみてアクセスしましたら
変更前の情報が表示されました(;゜ロ゜)
試しに
/blog/wp-content/plugins/make-cache/cache/2010/02/17/
に直アクセスすると書き換えた情報で表示はされました。
また、自動再構築のタイミングを何もしないにして記事投稿や編集をしてみましたが
やはり再構築しないでも即表示されました。
ん~make-cacheが使われてないみたいですね。
ほかのキャッシュ系プラグインは一度も使ったことがないです。
アパッチの設定で
DirectoryIndex index.html index.htm index.shtml index.php index.cgi
は入れてます。
動かない原因とか心当たりありますでしょうか?
うーむ。引き続きフィードバック頂き誠に有り難うございます。
取り急ぎあまり思い当たるところが無いのですが、
すでに静的HTMLが/blog以下に存在している。ということは無いですよね・・・
/blog/2010/02/17/index.html
みたいな感じです。
DirectoryIndexが効いているであれば恐らくこれが考えられますが・・・
その他、私のサイトの説明の書き方が不足していて、非常に申し訳ございませんでした。
.htaccess
を拝見しますと、
RewriteRule .*\.html/.* /index.php [L]
はmasaruさんの場合
RewriteRule .*\.html/.* /blog/index.php [L]
が良いかもしれません。これでコメント云々は解決する可能性もありますが、
cacheディレクトリ以下のファイルを書き換えても反映されないところを見ると、
これ以前のお話ですよね・・・
何かピンポイントのアイディアがほしいところなのですが、
例えば
WordPressのアドレス
と
ブログのアドレス
を変えたりされておりますでしょうか。こちらでは、この違いも吸収して動いておりましたが、環境によって変わるんですかね・・・?
私の環境でしか動かないんじゃ、使えないプラグインですよねw
オレ仕様しかダメなら公開するな。って感じで申し訳ない気持ちでいっぱいです・・・
europa3さん
返信ありがとうございます。
>すでに静的HTMLが/blog以下に存在している。ということは無いですよね・・・
>/blog/2010/02/17/index.html
>みたいな感じです。
鯖内とURL直でアクセスしましたが存在していません。
>masaruさんの場合
>RewriteRule .*\.html/.* /blog/index.php [L]
>が良いかもしれません。
変更してみましたが変化ありませんでした^^;
また、WordPressのアドレスとブログのアドレスの変更はしてません。
両方ともドメイン/blogです。
失念していたエラーログをのぞいてみたら・・・下記がありました。
管理画面>投稿>キャッシュ再構築を選んだ時に出ました。
File does not exist: /home/public_html/wp-content, referer: http://www/blog/wp-admin/edit.php?page=make-cache/make-cache.php
気になったのがWPの配置場所は/home/public_html/blogなのに何故トップディレクトリを見に行ってるかですね。
管理画面は表示されますし、再構築とかも可能です。
追記:
make-cache.phpの111行目と126行目を/blog/wp-content/plugins/にしたら
エラーがでなくなりましたが相変わらずキャッシュを見に行かないです^^;
masaruさん!たぶん直りましたよ!!
やはりオレ仕様でした。大変失礼致しました。
私のブログは
http://pc.freeblo.com/
というように、ドメイン直下にWordPressを展開していたのですが、バージョン0.43までは
http://pc.freeblo.com/blog/
というように、blogディレクトリの下に展開している場合に、キャッシュは作成されるが肝心のキャッシュ読み込みのタイミングで使われない。
という衝撃の問題があることが判明致しました。
試しに新しいバージョンをインストールして頂ければ、たぶんキャッシュを見に行くようになるかと思います。
http://pc.freeblo.com/blog/
http://pc.freeblo.com/blog2/blog2_2/
という二つのWordPressを用意してテストした結果では、うまくキャッシュを参照しておりました。
その他、追記頂いた内容なのですが、これは私も最初に見た時、
「おお、絶対パス指定している。なんてこと!」
と思ったのですが、これはWordPressのプラグイン内でJavaScriptを呼び出す時の書き方らしく、
このままで良いもの『っぽい』です。
ただ、おっしゃる通りトップディレクトリのwp-contentを見ようとしている点は解せませんね・・・
このエラーがどこで出たのかは非常に気になりますので、
もしかしたら新しいバージョンのものならば、この問題は出ないかもしれませんので、
よろしければログもチェックして厳しくご指摘頂ければ幸いです。
どうぞよろしくお願い致します。
europa3さん
ご対応ありがとうございます。
新バージョンで確認しましたところ無事に動作しました(。・ω・。)
しかし管理画面>投稿>キャッシュ再構築選択時のエラーは依然出ます(;゜ロ゜)
あと少し不便に思ったのが、コメントを承認する都度、全構築しないと駄目なのが・・・
記事件数が多いと再構築の時間が・・・orz
何かいい回避方法があればいいのですけどね(゜_゜)
試しているサイトは
179投稿・3ページ・4カテゴリー・35コメント
で2分前後でした。
適用したいほかのサイトは・・・投稿が700弱・ページが650弱・コメントが350弱・・・
脳内てきと~計算ですが、素敵な分数が出そうです(^□^;)
europa3さんの技術力に期待(。・ω・。)b
masaruさん、試験有り難うございました。
コメント、トラックバックの承認後の再構築は確かに萎えますよね。
次のバージョンでは、ここに対する一つの解法を思いつきまして、導入してみたいと考えております。
基本的には、全体の再構築は滅多にやらなくても済むような仕組みが望ましいですよね。
私のブログのような静かなサイトならばいいですが、
頻繁にやりとりがある素晴らしいサイトでは、疲れちゃいますよねw
乞うご期待!でよろしくお願い致します。
「コメント承認時」にも該当ページ再構築ができればいいのにね;)
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*4
ログイン しなければ投稿できません。