*

安全なブログのためにWordPressのStaticpressを使いAWSのS3で公開する方法

公開日: : 仕事

このブログは自宅の古いノートパソコン(Thinkpad X32)にLAMPと呼ばれるセットをインストールし、その上にワードプレスとStinger3というテーマを導入して作っている。そして、作り上げた内容はStatic pressというWordpressのプラグインを使い、静的htmlファイルとしてAWSのS3にアップロードしている。

これで安心して子育て日記を書けるってもんだ。

レノボ・ジャパン ThinkPad X201 3626FJJ

 

この仕組を採用したのは、以下のようなメリットがあると思ったため。

・アクセスが伸びる(SEO対策が取りやすい、見やすい)
・安い(サーバー代、ホスティング代が安い。管理コストが少ない)
・安全(悪意ある行為に利用されない)
・簡単(ネット上に参考情報が豊富。維持管理に追加学習が必要ない)
・拡張性などがある(アクセス数の増加、サイトボリュームの増加に対応しやすい)

参考にしたサイトはこちら

[WordPressをStaticPress+Amazon S3+Vagrantでセキュリティ万全にする方法 [前編]]
http://blog.masuidrive.jp/2013/09/15/wordpress-on-s3-1/

[StaticPress で書き出した html を S3 でホスティングする]
http://ja.staticpress.net/2013/06/11/69/

[AWS S3 のバケットに独自ドメインを割り当てて、静的ファイルをホスティング]

※ちなみに実際にやってみたところ上のメリットに変更が出たので修正

・アクセスが伸びる → 伸びは内容次第。仕組みによる影響を感じるまでにはいっていない。
・安い → 電気代がかかるため外部のサービスを使ったほうがお得らしい(友人K曰く)。サーバー機が調子悪くなったり、S3との連動がうまく行かなかったりで、管理にもそこそこ時間がかかる。
・安全 → 今のところ安全だがS3が悪いことに使われたらどうしよう。
・簡単 → 決して「簡単」ではない。それなりの知識は必要
・拡張性などがある → まだそこまで使っていないので不明。

 

2.Linuxをインストールしてサーバーを作る。

なぜLinuxにしたのかというと、Win7ではStatic Pressが未対応ということが判明したから。なぜ仮想化をしなかったのかというとメインマシンに噛み付くようなものを余り入れたくなかったから。

(1) どのLinuxにするのか

最大の問題はPAEというカーネルとCPUの設計に関わる部分。最新版のLinuxではペンティアムMをサポートしていない。何ということだ・・・そのため最新バージョンではなくPentiumMに対応した中での最新版を選ぶ。以下の2つがあるね。

 Ubuntu 12.04 (11.10でインストール):2017年4月
 CentOS 5.10:2017年5月まで

どちらもあと2年でサポートが切れるようだけど、公開しているわけではないし、他の用途に使うつもりもないのでこれでよしとする。

Plamoも対象にはなったがパッケージのインストールが面倒くさかった記憶があるので今回は対象外とする。また、Puppyという軽量かつ無線LAN対応(※UbuntuもCentOSも何故か無線が上手く機能しない)なので惹かれたが、サーバー機としての信頼性にかける(らしい?)。ということで、今回はCentOSにする。

(2)インストールの手順

USBからインストールするため「unetbootin」を使う。これをWinにインストールすると様々なLinuxのインストール用bootディスクをUSBメモリに焼いてくれる。便利な世の中になりました。

[unetbootin]

CentOS 5を選択する。

一番条件が一致していたのが下記のサイト。

[USBメモリでブートして、CentOS5.5をネットワークインストール]
http://blog.fusic.co.jp/archives/530

ここで書かれているGrubのインストール先が極めて重要。たまたま見つけたサイトだがこれを知らなければブートローダーをハードディスクにインストールできず、USBメモリに入れてしまうところだった。実際、1回それをやってしまいインストールの数時間を無駄にしたし。

CentOSでは無線LANカードを認識しない。Ubuntuでは無線LANがWEPの場合に認識しない(セキュリティをなくすと行ける)。原因は不明だがサーバーは持ち歩くものではないので有線LANでOK。

3.WordPressをインストールする。

(1)Wordpressをインストールする。

参考にしたサイトはこちら。大変お世話になりました。

[CentOSにWordPressをインストールする]
http://qiita.com/speg03/items/516c5c0ca727b47c3d23

[ブログサイト構築(WordPress)]

ワードプレスのインストールは/var/www/html/wordpress/に行い、ドキュメントルートも/var/www/html/wordpress/にしておく。これはstatic pressによる静的ファイルを出力する際、静的ファイルのHTMLをhttp://*******/static/とするため。

(2)WordpressでForbiddenが出るときの対処

ひと通りインストールが終わり、ワードプレスの設定にアクセスしたところForbiddenがでる。chown -Rによるフォルダの権限の問題のようである。

ワードプレス インストール forbiddenで調べるとフォーラムに何件かあり、そのうちの1件にSELinuxという記載があった。それを停止させたらしい。ぼんやりとCentosをインストールした時のことを思い出す。確かそういうものをデフォルトで入れた気がする。

[index.phpが表示できません。 (5 件の投稿)]

そこで、ここを参考にSELinuxを無効にする。

[SELinuxを無効化する]

いけた。

(3)PHPのバージョンが対応していない場合

いけたのだが、すぐさまPHPのバージョンが対応していないというメッセージが表示される。PHPのアップデートはよくわからないので、ワードプレスを変えよう。で、いくつならばPHPが対応しているのか。

ワードプレス バージョン PHPで調べると、ドンピシャのサイトがあった。同じような人はいる。

[サーバーの PHP バージョンは 5.1.6 で使えるwordpressのバージョン]

新たに取ってきたワードプレス3.1.4を解凍して解決。

ところがstatic pressはワードプレス3.5以上が必要という。となるとPHPのバージョンから挙げなければならない。

PHPのバージョンアップについては恐らくここが一番詳しい。インストールまでのコマンド入力や結果の出力も丁寧。さらにどういう作業の順序やエラーメッセージの予測なども詳しく説明している。しかも、5.1.6から一気に5.4までアップしている。

[yumコマンドで外部リポジトリを指定して、最新のPHPにバージョンアップ]

その中でPHPパッケージのインストール元を最新版のあるリポジトリから行うための前処理が必要とされる。同じく、下記のサイトで懇切丁寧に導かれる。

[外部リポジトリの追加と、yum-prioritiesを利用した優先順位の設定]

4.Static pressというプラグインを入れる

(1)プラグインを入れる前の設定など

プラグインを入れようとすると「接続情報」という画面が出てしまうので、これをパスするためにwp-config.phpの最後に

「define(‘FS_METHOD’,’direct’);

を追加する。参考は下記。

[テーマやプラグインのインストール・アップデートのさいにFTP情報の入力をパスする]

(2)ディレクトリが作成できない時の対処

接続情報はクリアできたが「ディレクトリを作成できない」というメッセージがでる。下記を参考にwp-contentsフォルダ内の「plugins」「upgrade」「themes」のオーナーをapacheに変える。

chown -R apache.apache upgrade

[WordPress のプラグインインストールでエラー発生の巻]
http://wordpressoboegaki.seesaa.net/article/370770336.html

(3)Static pressの設定

以下のサイトにはお世話になりました。

[静的ページを生成するプラグイン「STATICPRESS」を使ってみた]
Static pressのディレクトリ設定は現状以下とする

静的サイトURL:http://www.diamond-booth.com
ドキュメントルート:/var/www/html/wordpress/static/

元々は下記の2種類を試していたのだが、静的サイトURLの部分が最終的に自分のサイトのURLとしてサイト内のリンクやSNS用の自分のURLに利用されるため。ここを変更しておく。

静的サイトURL:http://10.0.010/
ドキュメントルート:/var/www/html/wordpress/static/

これは静的サイトをS3にアップする際、ファイルをルートから置いていくことになり、静的ファイルのオリジナルはローカルのstaticディレクトリに生成される。

しかしこの場合、ローカルの静的ファイルを確認しようとhttp://10.0.0.10/static/にアクセスすると、トップページから張られているリンクURLにはサブディレクトリのstatic/が付かない。そのためリンク先として表示されるものはWordpressによって生成される動的なページとなる。

それを避けるためには以下のように静的サイトのページのリンクが全てサブディレクトリの/static/を含ませる必要がある。それに合わせてドキュメントルートはひとつ上であるwordpress/で終えている。

静的サイトURL:http://10.0.010/static/
ドキュメントルート:/var/www/html/wordpress/

ただし、この場合はS3にアップされたファイル群が全て/static/以下に格納されリンクを張られることになり、URLの表示上若干違和感が出る。

 (4)Static pressで発生したエラー

Static pressを実際に動かすと再構築・フェッチと書かれて止まる。この原因は書き込みのパーミッション設定。

まず、/var/www/html/wordpressのオーナーをapacheに変える。続いて、wordpressフォルダの中にstaticというフォルダを作り、同じくオーナーをapacheに変えておく。

5.Static press-S3を入れる

次に、静的サイトを自動的にAWSのS3にアップロードしてくれるプラグイン「Static press-S3」を導入する。

[StaticPressをS3と連携させるStaticPress-S3プラグインをインストール]

ところが、以下のサイトにあるようにS3のキーを入力してもバケッツリストが表示されない。

[WordPressをStaticPress+Amazon S3+Vagrantでセキュリティ万全にする方法 [前編]]

そこで、S3のクライアントツールであるs3cmdをlinuxにインストールし、テスト接続をするとエラーがでる。

[1回めのエラーメッセージ]
The difference between the request time and the current time is too large.

CentOSに設定している時間がおかしいのでそれを変更。

[2回めのエラーメッセージ]
Test failed: 403 (SignatureDoesNotMatch):   The request signature we calculated does not match the signature you provided. Check your key and signing method.

原因はタイプミスでした。大文字のiと小文字のL

パーマリンクの設定についての注意
パーマリンクの末尾に「.html」を追加してしまうとおかしなことになる。

6. Stinger3を入れる

ワードプレスのテーマ(テンプレート)をどうするかというとLanderblueを真似したい。で、ソースを見たがよくわからないので「ワードプレス テンプレート Landerblue」としたところ、「Stinger」というワードが出た。

こ・れ・だ
で、インストール。wp-content/themeに解凍。

下記を参考にワードプレスの基本設定をする。

[SEOにも効果のあるWordPressの基本設定]

アクセス向上のためサイトマップを作成しGoogleに登録しようとするが、sitemap.xmlを生成する標準的なプラグインである「google xml maps」は最新バージョンの4.*.*にすると動的にxmlを作成し動的にgoogleウェブマスターツールに登録をしようとしてエラーとなる。sitemap.xmlはローカルIPの環境で作られたため、記述されたURLがローカルIPになることが原因のようだ。

そこで下記を参考に旧式の「google xml maps」を使い手動で静的なサイトマップを作成する。できたサイトマップはテキストエディタで開き、URLのみ変更する。

[最新版Google XML Siteapsは要注意!仕様・中身がまるで別物!元に戻す方法を紹介]
http://himazines.com/wordpress/google-xml-sitemaps-shiyou-henkou/#i-3

[google sitemap]

7. その他細かな設定について

*ワードプレスで文章を書いている時、行頭を一文字下げようとしても自動的に戻されてしまう件。

[[WordPress] 行頭スペースの自動削除をキャンセル]

[貼るだけ簡単!アクセスが倍増するWordPress用OGPコード]
http://oxynotes.com/?p=3050

——————————————————————————————————————

(おまけ)ローカルPC(Win7)の上にサーバーをインストール

結論:ワードプレスのプラグインであるStatic PressがWindowsに未対応であったことから最終的に使えなかった。

[参照]

(1)アパッチ

2-2-27をインストールすることとする。
binaries → win32 → httpd-2.2.25-win32-x86-openssl-0.9.8y.msi をクリック
ダウンロード開始
インストール

エラー発生

no listening sockets….と出ている

skypeがポート80を使用していることが原因。Skypeの設定を変更する。

[[Apache][Windows7] No listening sockets available エラーで起動できないときの解決方法]

画面右下のタスクバーにあるアパッチアイコン → start → アイコンが変わる → ブラウザでURL:localhost とアクセス → 「It works」

ところが、Windows7ではインストール先をProgramfilesにしてしまうとConfファイルの修正がきかないとかなんとか。

[Windows7でApacheインストールと利用する際に注意すべきこと]
http://d.hatena.ne.jp/dooluka/20110128/1296159592

というわけで念のためCの最上部に「WWW」というフォルダを作ってそこに入れることにした。こういう情報はありがたいが既にこの時点でインストール3回めという悲しさよ。

(2)PHPのインストール

[PHPウェブサイト]

いくつかあるが「Thread safe」というタイプのZipにする(参照サイトの画像より)

ところが要するに大事なのはバージョンでApach2.2と連動するためのファイルが入っているのは、php5.4まで。最新版の5.5にしてしまうとapach2.4との連動ファイルのみになっているので注意。

httpd.conf や php.in を修正するもphpinfo()が表示されない。しばらくミスタイプやコメントアウトエラーなどを探すが見つからない。ググったところphpinfoの書き方に問題があるとのこと

<? phpinfo(); ?> ではなく、<?php phpinfo(); ?> とするようだ。

[phpinfo.phpで何も表示されない真っ白なページになっちゃったら]
http://ameblo.jp/summer/entry-10427572711.html

できた。

(3)MySQL

[Windows 7 にMySQL5をインストール&設定]

最新版もあるが、インストール参考サイトと同じように5.5にする。が、64bit用をインストールしようとしたらプロセッサーが未対応というメッセージ。phpもwin32用だったので32bit用に変える。

[MySQL]

インストールは無事に終わった。そこで動いているのかどうかの確認。

[MySQL5動作確認(MySQLコマンドラインクライアント使用)]

[MySQLサービスの設定&操作]
http://phpjavascriptroom.com/?t=mysql&p=service#a_start

動作確認が出来たのでワードプレス用のデータベースを作成し、ユーザーを追加する。

(4)ワードプレス

[WordPressのインストール]

に従い、サイトからZipファイルを取ってきて解凍。

[ワードプレス ウェブサイト]

wordpressフォルダを丸ごとアパッチのhtdocsに移動。wp-config.phpのMySQL部分(数行)を修正してファイルを保存。

早速ブラウザでアクセスしてみると

「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。」というエラーメッセージがでる。

要するにphp.inファイルでMySQLとの連動をコメントアウトしていなかったことによる。今までの設定の流れから、アパッチ→PHP→MySQLとなっており、PHPの設定はアパッチとの連動設定のみになっていたためである

[WordPressに投稿したメディアをAWS S3に自動的にアップロードする「Nephila clavata (絡新婦)」をインストールしてみた]
http://blog.sus-happy.net/201304/wordpress-aws-s3-nephila-clavat/

ad

関連記事

eyecatch3

家事育児もアウトソーシングできる

 家事や育児をしていると、「あ、これは僕でなくてもいいんだろうな」という仕事が多々あることに気づ

記事を読む

breastpump

搾乳がいいねと君が言ったから、8月1日は母乳記念日

 6/3の日経新聞のニュースにピジョン株式会社が業績を伸ばしていると出ておりまして、子育て世代と

記事を読む

eyecatch

子供がいながらできる仕事とは

 「目の前に子供がうろちょろした状態でできる仕事は何か」ということを考えてみたいと思います。出産

記事を読む

ad

ad

41Fspabd3tL
子どものトマト嫌いをなくす方法

 トマトの嫌いな子どもっていますよね。あれ、なぜなのですかね。

51gdR8cIbrL
安全なブログのためにWordPressのStaticpressを使いAWSのS3で公開する方法

このブログは自宅の古いノートパソコン(Thinkpad X32)に

福本 伸行 賭博黙示録カイジ  講談社 第2巻 P92
クルーグマンの「流動性の罠」論文から日銀黒田総裁の覚悟を思う

 クルーグマンの1998年の論文を山形浩生先生が相変わらず名訳?で

eyecatch6
野菜業界を担うのは誰だ

 野菜業界の今後を担うのは誰かと考え、悩む。  ポテトは完全

vinlandsaga
アホな息子が手に負えないなと感じたときに読む厳選漫画:『ヴィンランド・サガ』

『ヴィンランド・サガ』(既刊14巻:月刊アフタヌーン講談社連載中)

→もっと見る

PAGE TOP ↑