よくよくあるような記事なので、百番煎じくらいですが、

自分用の覚え書きとしてここに書き残します。

2つほどのVPSを利用していたのですが、やはり電気代程度(月600円?)では仮想マシンの性能は低いので、貧乏性に従って構築を勧めていこうと考えました。

VPS→自宅サーバーへのWordpress引っ越し、です。

サーバーハードウェア

家に転がってたノートPCを使います。

スペック

  • CPU :Core2Duo U7600@1.2Ghz
  • メモリ:2GB
  • SSD:64GB
  • Sony Vaio VGN-G2

です。中古PCを改造したものですが、VPSで借りると月1500円くらいのスペックなんじゃないかなぁと思います。

下から2.5番めくらいのプラン?かなw

OS

まず、自分はubuntuが大好きなのですが、CentOSの方が今回やりたい安定したWordpressサイトの運用という点で、情報も多かったため、OSはなれないCentOS7にしました。

ミドルウェアなど

KUSANAGIを鬼のように意識します。

本当はKUSANAGIがディストリのようにISOを配布してくれていたらそれをぶち込みたいのですが、VMWAREの仮想形式OVAでしか配布していませんでした。

VMWAREEXViを使えば導入できそうですが、よくわかりませんw

ので、全部手動で導入することを決意しました…

↓サイトからほぼ丸パクリでいくことにします。

http://www.atmarkit.co.jp/ait/articles/1508/07/news024.html

  • nginx
  • FastCGI
  • HHVM(php7)
  • MySQL

の構成で行こうと思います。

OSインストールからWordpressインストールまで

https://www.centos.org/download/

からDVDISOを落としてきて、USBにYUMIで書き込みます。

で、ノーパソにインストールします。

→さっそくのエラー。どうやらUSBイメージを作るソフトが限られている模様。

CentOS7 の USB インストールAdd Star

1. 公式サイトから Minimal の isoダウンロードしてくる。
2. DD for Windows – Tech Info を使い、1. でダウンロードした isoUSBフラッシュメモリに書き込む
3. USB メモリをつっこんでターゲットを起動する

その他にもRufusというツールも使えるっぽい。

→結局DD for Winでやったらイメージ壊れてたんで、ubuntuでコマンドからやったらいけた。

https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/sect-making-usb-media.html

時間かかるけど、イメージチェック→インストールで確実に。

→インストール中にフリーズしちゃった\(^o^)/

軽くぐぐったら

http://qiita.com/toshi32y/items/8f0d38633fae60a1f36a

ここで、普通に「Install CentOS 7」等を選択し、インストールしようとすると、
ペンギンの絵が出てフリーズするので、「e」を押して、カーネルの起動オプションを変更します。

linuxefi /images/pxeboot/vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet

の箇所、以下の様に追記し、[Ctrl-x]でGUIインストーラが起動します。

linuxefi /images/pxeboot/vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet nomodeset net.ifnames=0 intel_pstate=disable

GUIインストーラ(Anaconda)が起動するので、通常どおりインストールして再起動してください。

てあった。e押す代わりにTABおしたら下にオプションが出るので

nomodeset net.ifnames=0 intel_pstate=disable

を追記してインストール。構成も最小に。うまくいった!

ただ、インストール後にも同じようなエラーが発生するそうなので、さっきのオプションを設定してやらないとダメみたい。

また似た現象に遭遇したら設定することにする。後回しにする。

最小構成ってwgetも入ってないのね。恐れおののく・・・

とりあえずyum update -y

 

WordPressインストール

WordPressですが、

[一撃]CentOS7にWordPressをインストールする一撃シェルスクリプト

という素敵なものをみつけたので、ちょっと怖いですが、エラーがなければ儲けもので使ってみようと思います。

→追記。やっぱり100%インストールはできませんでした。

足りない部分を調べつつ保管していく、形になるのでおすすめできないかもしれません。

CentOSに決めた理由の一つでもありますし。

サイトからシェルスクリプトをコピペし、改行コードをUNIX形式、UTF-8BOM無しで保存します。

で、USBにコピーしておきます。

sh wordpress_install.sh

で恐る恐る実行。見守ります。

→エラーで止まることはなく無事再起動

うまくいったかなぁと調べてみるとphpがインストールされていない様子。

→php7をインストールすることにします。

http://qiita.com/100/items/8e9d9540845cc23e6111

アクセスしてみると403。一応動いているのかな?

phpinfo()置いてみます。

CentOS7にyumでPHP7, PHP-FPM, OPcache, APCuをインストール

→MySQLのRootパスワードがわかんない!

5.7からlogファイル内に記録されてるようなんだけど、探しても見つからない・・・

初期化できるお!ってあるから、頑張って初期化してみる。

http://qiita.com/ksugawara61/items/d8d69b7d57a3afcef980

で初期化はできるんだけどログインできない。なんで?

→さよならmysql! よろしくMariaDB!

http://server.etutsplus.com/centos-7-mariadb-install-and-mysql-secure-installation/

mysqlが残っているとインストールできなかったので

yum remove mysql*

で消したら入りました。

→DBユーザー作ろーなんだっけー

http://wiki.minaco.net/index.php?MySQL%2F%E3%83%A6%E3%83%BC%E3%82%B6%E3%81%A8DB%E4%BD%9C%E6%88%90

いつもうろ覚えのユーザー作成。grant all あーなんだっけ?みたいな。

→あ、忘れてた。nginxのユーザーを作成します。

http://www.uetyi.com/server-const/nginx-setting/entry-1337.html

 

これでようやく環境が整いました。

WordPressの動作確認と引っ越し

ここでWordpressが動作するか確認しましょう。

→プラグイン導入時にFTP接続が求められる件

http://www.sandalot.com/wordpress%E6%9B%B4%E6%96%B0%E3%81%A7ftp%E5%85%A5%E5%8A%9B%E7%94%BB%E9%9D%A2%E3%81%8C%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AE%E5%AF%BE%E5%87%A6%E6%B3%95/

確実にディレクトリの権限が間違っていると思います。ただ、後回しにしたいのでとりあえずの対処。

→何億回やっても覚えられないSCPコマンド

 

リモートからローカルにコピー

$ scp ユーザ名@リモートのホスト名:コピーしたいリモートのファイル ローカルのコピー先

$ scp user@remoteHost:/home/user/test.txt /local/path

ローカルからリモートにコピー

$ scp コピーしたいローカルのファイルパス ユーザ名@リモートのホスト名:保存したいパス

$ scp /local/test.txt user@remoteHost:/home/user/tmp/

→動作したら引越し作業に入ります。

Duplicatorというプラグインを使って引っ越しをします。

All-in-One WP Migrationがやたら推されていますが、512MBまでしかデフォでは引っ越しできないこと(メディアファイルだけわければ引っ越しはできます。)

一度Wordpressをセットアップしてからでないと引っ越しできないので自分はDuplicatorの方が今の所好きです。

→引っ越し元から1GB近くのファイルをエクスポート中に502BADゲートウェイになって、完了できない><

timeoutとか伸ばしてみたんですが、ようわからんし、All-in-One WP Migrationで分割してエクスポートしてみる。

結局All-in-One WP Migrationかい!

ではさっき書いたSCPコマンドなんかを使ったりして自鯖に転送します。

後はブラウザからimportするだけ!

引っ越しが無事終わったことを確認します。

 

DDNSについて

自宅サーバーなので、DDNS対策は必須です。

まず一番簡単そうなのが、DiCEを使った方法です。

http://centos.server-manual.com/centos5_dice.html

ここを丸パクリします。

この情報もCentOS決定の一つです。Ubuntuにもあるでしょうけどw

ちょっと古めの情報だったのでところどころ使えず。

↓のようになった。
wget http://www.hi-ho.ne.jp/yoshihiro_e/dice/diced01914.tar.gz
tar zxvf diced01914.tar.gz
rm -f diced01914.tar.gz
mv DiCE /usr/local/bin
cd /usr/local/bin/DiCE/
yum install ld-linux.so.2
yum localinstall -y http://mirror.centos.org/centos/6/os/x86_64/Packages/nkf-2.0.8b-6.2.el6.x86_64.rpm
setarch `uname -m` /usr/local/bin/DiCE/diced | nkf -uw

DiCEの設定

https://centossrv.com/bbshtml/webpatio/2332.shtml
http://dyn.value-domain.com/cgi-bin/dyn.fcg?ip

IP検出には↑を入れる。

ここからWordpressのチューニング

HHVMとNGINXの連携

ここが一番つまった。

https://www.howtoforge.com/tutorial/how-to-install-wordpress-with-hhvm-and-nginx-on-centos-7/

これの通りやればよかった、が、

Step 6 – Configure HHVM and Nginx

ここだけはvim hhvm.confしないで

conf.d内にある設定ファイルに

Paste the configuration below:

の内容を追記してやれば良い。

SSLの設定@nginx

https://www.server-world.info/query?os=CentOS_7&p=nginx&f=4

リバースプロキシのあたりの覚え書き

cd /etc/systemd/system/
vim hhvm.service
FileSocket=/var/run/hhvm/hhvm.sock
ここなどのportをsockに置き換える所が一番大事。sockとかよくわからんけど、ここ!
nginxの設定なら、各.confを置換してやる。
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/hhvm/hhvm.sock;

コメントアウトして、下を追記!

 

NGINXのSSL化

http://www.mk-mode.com/octopress/2014/09/13/centos-7-0-setting-of-nginx-ssl-connection/

・CentOS内のポート443開ける

firewall-cmd –permanent –add-service=https
systemctl reload firewalld.service
firewall-cmd –list-all
Nginx 設定ファイル作成

テスト環境でドメインを192.168.0.6にしてたのだけど、それが元のドメインに戻ってくれない!

パーマリンクのnginx設定見直しとかしたけど治らない。
直接書き換えるスクリプトを使うことにする
http://webkaru.net/wordpress/move-site-to-new-url/