WordPress サイトを静的 HTML に変換するプラグイン StaticPress

実は WordPress サイトを静的 HTML に変換するプラグイン StaticPress をリリースしていました。
ダウンロードは、WordPress 公式プラグインディレクトリからお願いします。
WordPress › StaticPress « WordPress Plugins

このプラグインを使用することで WordPress で作成されたサイトを丸ごと静的ファイルに変換することができます。
また、変換時にサイトのパーマリンク構造を変換することができるため、http://wp.example.com/ というオリジナルサイトを http://www.example.com/static/ というサイトとして公開するための html を作成することも可能です。
完全に静的ファイルを作成するため、コメントやサイト内検索・コンタクトフォームの設置などはできません。
それらについては Disqus や Facebook コメント、Google カスタムサーチ・Google フォームなどで代替するようにサイト設計してください。

残念ながら、現状では Windows 環境に対応できていません。
github でソースを公開しているので、修正して pull request 送ってくれたりすると私が喜びます。
https://github.com/megumiteam/staticpress

Facebook ページなんかもあるので、よろしければ「いいね!」してくださいね。
https://www.facebook.com/StaticPress

あと、私が在籍している digitalcube では higanworks と合同で AWS OpsWorks を利用した自動化ソリューションを提供するサービス Opsrock.in を開始しました。
そこでは、StaticPress で生成した HTML を OpsWorks の StaticWeb レイヤにデプロイするソリューション等も提供して行きますので、こちらもご参照ください。
StaticPress × OpsWorks

以下、簡単な使い方など

screenshot-1
プラグインを公式ディレクトリからインストールして有効化すると、サイドバーに「StaticPress」というメニューが追加されます。

screenshot-2
[StaticPress] – [StaticPress 設定] では、各種設定ができます。

  • 静的サイト URL: 変換後のサイト URL を指定します
  • 出力先ディレクトリ (ドキュメントルート): 静的ファイルを出力する先のディレクトリを指定します。
    ※ドキュメントルートになるディレクトリを指定してください。
    例えば /var/www/html と指定して 静的サイトURL を http://www.example.com/static/ と指定している場合、ファイルは /var/www/html/static 以下に出力されます。
  • BASIC 認証 ユーザー名: 任意の入力項目です。
    例えば動的サイトを完全に BASIC 認証で隠して、静的サイトのみを公開したい場合にこのオプションを使用します。
    動的サイトの方に BASIC 認証をかけておいて、このオプションを設定しておけば良いでしょう。
  • BASIC 認証 パスワード: 任意の入力項目です。
    BASIC 認証 ユーザー名と組になるパスワードを設定します。

screenshot-3
設定が終わったら、サイドバーメニューから [StaticPress] – [StaticPress] を選択すると「再構築」というボタンが表示されているはずです。
これをクリックすると、オプションで指定されたディレクトリに静的ファイルが出力されます。
全ての URL をクロールして静的ファイルを作成するため、再構築には時間がかかります。
もし、エラーが発生した場合は、もう一度「再構築」ボタンをクリックすると、前回の作業の続きから行います。

以下に変換したサイトのリンクを置いておきますね。

WordPress サイトを静的 HTML に変換するプラグイン StaticPress」への12件のフィードバック

  1. tmrtmr00000

    はじめまして。
    突然すみません。

    staticpress使わせてもらっております。

    そこで2点、質問があります。

    1.SSLにしているサイトの書き出しが自分の環境では出来ないのですが、SSLには対応していないのでしょうか?
    2.ディレクトリを作成する関数があると思うのですがそこをカスタマイズしてディレクトリの作成ができない時にajaxで他のエラーと同様に書き出しボタンを押した時にエラーを出したいのですがうまくいきません。
    エラーメッセージを追加するにはどこをカスタマイズしたら良いかアドバイスを頂けると助かります。

    何卒、よろしくお願いいたします。

    返信
  2. もぐめっと

    こんにちは。
    いつもstaticpress使わせてもらっております。

    今回以下の環境で構築してみたのですが、htmlファイルがS3でみると「Content-Type : text/x-asm」になってしまい、ブラウザで見るとhtmlファイルとして認識してくれません。

    @OS : Ubuntu12.04
    @MySQL : 5.6.15-1+sury.org~precise+1-log
    @Apache
    Server version: Apache/2.4.6 (Ubuntu)
    Server built: Sep 23 2013 07:23:34
    Server’s Module Magic Number: 20120211:24
    Server loaded: APR 1.4.6, APR-UTIL 1.5.2
    Compiled using: APR 1.4.6, APR-UTIL 1.5.2
    Architecture: 64-bit
    Server MPM: prefork
    threaded: no
    forked: yes (variable process count)
    Server compiled with….
    -D APR_HAS_SENDFILE
    -D APR_HAS_MMAP
    -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
    -D APR_USE_SYSVSEM_SERIALIZE
    -D APR_USE_PTHREAD_SERIALIZE
    -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
    -D APR_HAS_OTHER_CHILD
    -D AP_HAVE_RELIABLE_PIPED_LOGS
    -D DYNAMIC_MODULE_LIMIT=256
    -D HTTPD_ROOT=”/etc/apache2″
    -D SUEXEC_BIN=”/usr/lib/apache2/suexec”
    -D DEFAULT_PIDLOG=”/var/run/apache2.pid”
    -D DEFAULT_SCOREBOARD=”logs/apache_runtime_status”
    -D DEFAULT_ERRORLOG=”logs/error_log”
    -D AP_TYPES_CONFIG_FILE=”mime.types”
    -D SERVER_CONFIG_FILE=”apache2.conf”

    @Wodpress : 3.9.1

    同じ環境でWodpress3.5.2 の時はcssファイルだけtext/x-asmになったので毎回手で直していたのですが今回はhtmlファイルだけtext/x-asmになってしまい、さすがに毎回手で治すのは大変なので、なにかしら原因などがわかればご教授頂けると幸いです。

    よろしくお願いいたします。

    返信
      1. もぐめっと

        すいません、wordpress側の問題かと思ったのですがstaticpress-s3側をいじってみたらうまく行きました。
        プルリク送ってみたのでもしよろしければご確認いただければと思います。

        よろしくお願いいたします。

        返信
  3. 708

    Staticpressを使用して静的ページを生成し、そのコンテンツをWEBサーバへ
    配信して公開という構成をとっております。

    WordPress上で記事を削除しても、再構築したデータが残ってしまい困っています。
    Wordpress上で削除した記事を、再構築したデータからも削除する方法などありますでしょうか。

    返信
  4. kitayama

    生成した静的コンテンツのリンクが全て、生成元のサイトのURLを指すのですが、何がおかしいのでしょうか?
    WordPressのバージョンは3.6.1です。

    返信
    1. kitayama

      申し訳ありません。解決致しました。
      少し使い方を誤認していたようです。ご迷惑をおかけして申し訳ありませんでした。

      返信
  5. trazomaw

    はじめまして。今サイトは見られないかもしれません、いろいろいじっているので。

    早速ですが、質問があります。
    Warning: file_exists(): open_basedir restriction in effect. File(/home/) is not within the allowed path(s): (/home/u209869269:/usr/lib/php:/tmp) in /home/u209869269/public_html/wp/wp-content/plugins/staticpress/includes/class-static_press.php on line 358 Warning: mkdir(): open_basedir restriction in effect. File(/home/) is not within the allowed path(s): (/home/u209869269:/usr/lib/php:/tmp) in /home/u209869269/public_html/wp/wp-content/plugins/staticpress/includes/class-static_press.php on line 359

    と怒られてしまいます。
    初期化中!
    と出てすぐにエラーと出てしまいます。
    どうすればいいでしょうか?
    wordpressのバージョンは3.5.2です。

    返信
    1. をかもと 投稿作成者

      静的ファイル出力用のディレクトリを作ろうとして失敗しているようです。
      StaticPress には静的ファイル出力用のディレクトリを指定するオプションがありますが、そこで設定しているディレクトリのパーミッションが間違っているのではないでしょうか?

      返信
  6. ぬこ

    なんともタイムリーなプラグイン、試用させて頂きました。ありがとうございます。
    おそらくこのプラグインを使用するような方だと遭遇しやすいと思うバグというか仕様を見つけましたのでご報告致します。

    再構築時にエラーになる場合がありましたが、勝手に自己解決致しました。
    単にPDFがstaticfileとして認識されずfile_put_contentsでエラーになっていただけでした。
    $static_files_extに自分で勝手に追加すれば良いだけの事だとは思いますが、多分、そこそこハマる人がいそうでしたので取り急ぎお知らせします。

    余談ですが、可能でしたらエラーの際にデバッグ情報等表示して頂けたりするととても有難いです。
    また、これとは別に、何か記事等に編集を加えた後に再構築ボタンを押すと反応が無く、二度目はちゃんと反応するようです。
    まだ全部のコードを読み終わっておらず既出でしたら申し訳ありません。

    最後になりましたが、素敵なプラグインありがとうございます。

    返信

コメントを残す

メールアドレスが公開されることはありません。