カテゴリー: 環境構築

取り敢えず、GCP側に移行出来た模様(´・ω・`)

さくらVPSからgTLDドメイン転出用のオースコードが届いたので、移行作業を続行。
【さくら→Google移行作戦 前半】ドメイン移管編

Google Domain 1400+112(税)=1512円だった。さくらVPSは税込み1852円なので340円差か。働いていたら誤差のレベルだな。というか働いていたらさくらVPSからGCPの無料運用に移行することもなかったか(ノ∀`)


移行前に最新データのバックアップを忘れる(ノ∀`)

深いことを考えずに作業した為に、元ブログ側の管理ページに入れなくなる(ノ∀`)
加えてどっちのページが表示されているのかわからなくなるw
致し方なく、データ移行処理後に追加した2エントリは手動で移し替えたw

ドメインとGCPのIPアドレスが結びついている状態で何故かhttps://mole-kingdom.com/idx.htmlのページがURL指定で表示されたのは謎(´・ω・`)?
さくらVPSのインスタンスを止めたら表示されなくなったので、あっち側のページなのは間違いないのだが。なんだろう? キャッシュ?
今はデータを移行したので表示されて当然なんだけども


language-pack-ja

従来の方法でubuntuの文字化けが直らなかったので、以下のエントリに従ってaptでインストールしたら文字化けが解消された。もしかしたらlanguage-pack-jaが入ってなかっただけなのかな?

参考:
Ubuntuのデフォルトロケールを変更する


wp-cli

何故か移行先でDuplicatorプラグインが削除出来なかった(´・ω・`)
正解に言えば停止しようとすると技術的問題がどうとかというエラーが出て、先に進めない。

プラグインフォルダから削除するだけでもいいが、dbの中にゴミが残るとかどうとかいう噂を読み、wp-cliを入れて処理した。いきなりuninstallは出来なかったので先にdeactivateしてからuninstallした。

その後、WordPressのプラグインページに行ったら、まだDuplicatorは何故か存在しつづけていたが、その状態で削除をクリックしたら、無事に一覧から消えた。色々と謎が残る(´・ω・`)

参考:
WP-CLIの使い方
wp-cli コマンド一覧


xlrd

Pythonでexcelファイルを触る為のライブラリ xlrdを使ってみた。なんというか、まあ、ふーん(・∀・)と言った感じである。

パスが上手く通らなくて困ったが、Windowsだと全部"/"でええんかΣ(゚∀゚;)

参考:
Excel読み込み (xlrd)
Windowsのパスがうまく指定\表示できない問題 in Python
パワポエンジニアの憂鬱を軽減する誤字/表記揺れ検出ツールを作った物語


Google DriveでのOCR

なんやかんやで出来るようになったが、何をどうして上手く行ったのかよくわかってない(ノ∀`)
参考にしたコードはWindows向けではなかったからか、ちょっとはまった。Spyder3のフォルダ内で作業していたのが悪かったのかもしれない。

取り敢えず、そもそもoauth2clientが入ってなかったので動かなかったみたい(ノ∀`)
pipでinstallした。

正しい対処法かわからないが、CLIENT_SECRET_FILEの値に絶対パスを追加したり、credential_pathのところを絶対パスに変えて、Anconda Promptでの実行にもパスを追加した。

全く詳しいことを覚えていないが、なんかクレデンシャルがない状態の時にOCR対象のファイル名を引数に指定せずに実行したら、クレデンシャルがとれたような……

その後で改めてファイル名も指定して実行したら、無事にOCRが動いたような……( ´・ω・)ジシンガナイ

固有表現抽出APIにはまだ投げていない(ノ∀`)
忘れなければそのうちやるw

参考:
GoogleのAIとNTTのAIを融合したら最強の業務カイゼンツールが爆誕した
ServiceAccountCredentialsのインポートエラー

もぐら王国 とりあえずGCPの無料枠にWordPressを移したが…

またドメインは変更していないので、ミラーサイト状態(ミラーブログ状態(?))。

GCPの無料枠だと使用出来るメモリ量は600MBくらいであり、それだと当然のことながらOpenCmsを動かすのは無理なので、あっちの方の内容は基本的に廃棄という感じにすることに。※ちなみに今のさくらVPSの1GBですら、しばらくするとOutOfMemoryになるw 今はOutOfMemoryで閲覧不可になることを回避するために日に数回、cronでTomcatをリブートしているw ←酷い対応策(ノ∀`)

まあ、HTML形式でページを移築させればいいわけだが、android関連の翻訳ページや古い環境構築ネタはそのまま廃棄してしまう予定。android関連の翻訳はすでに元ページが存在しないし、環境構築ネタもWin8ベースとか内容が古いから。最早ネットデブリと言っていい。

64進数ネタやらDevQuiz関連は移築しようかなと思いつつ、もう俺氏はJavaを触ることはなさそうだから必要ないんじゃなかろうかとも思ったり(ノ∀`)


数年前の俺氏なら、殊丁寧にエントリ化しているところであるが、面倒くさいから qiitaなどでヤングなジェネレーションの技術者達が詳しく書いているので適当な感じで概略をエントリ化する(・∀・)

ちなみに俺氏は

  1. 無料枠(σ・∀・)σゲッツ!!というか、そういうインスタンスを作成。
  2. ubuntu 18.04を自動インストール(?)、ssh接続出来るようにした。
  3. バケット作成
  4. 中国、オーストラリアからの接続を遮断(`・ω・´)カネガナインヤ
  5. db作成やWordPressは手動インストール。
  6. Duplicatorプラグインでデータ移行。

を行った。(ちょっと手順的に前後してる部分はあったかも)

なんて書くと全てがスムーズに行ったように思われるが、実際は何度もやり直した…(ヽ’ω`)


ググってすぐにヒットするページのURLを羅列して意味があるのかと問われると返す言葉もないが、取り敢えず、ざっと以下のページを眺めてみて、おおまかなGCPの無料枠の概念やその流れを掴むのが妥当だと思う。

GCP(Google Cloud Platform)でWordPressスタート
GCP上でWordPressを無料で構築したい
これから始めるGCP(GCE) 安全に無料枠を使い倒せ
お前らのSSH Keysの作り方は間違っている
GCPでCentOS7を構築してssh接続してみる

Git for Windowsは前にインストールしていたので、それを使ってssh鍵を作る。よくわからないが4096とかで作った。ED~形式って知らんな(´・ω・`)

ちなみに、俺氏がUbuntu18.04を入れた時はスワップが自動生成されてなく、これが後々のハマりへとつながることになった(ノ∀`)


GCPのGoogle Cloud Storage無料枠を使うには注意が必要
GCE の無料枠のサーバを立るときに、初見でハマりそうなところ
GCPの課金データ取得のススメ

IPアドレスの固定やsshポートを変更したり、バケット作成をしたんだったかな。

【 sed 】コマンド(基礎編その4)――文字列を置き換える/置換した行を出力する


どうも中国とオーストラリアからのアクセスは無料運用の妨げになるらしく、それを回避するためにはファイアーウォールルールを使って、その二国からアクセスを遮断しないといけないらしい。

[GCP]課金対象国からのアクセスを抑止する
Google Cloud Platformで中国からの通信をブロック

割当一覧
中華人民共和国 China
オーストラリア Australia

手作業でやらないといけないのか(ヽ’ω`)と思ったら…
GCP:GCE 海外からのアクセスを一括で拒否するFW管理スクリプトというエントリを発見(・∀・)

但し、これは全世界からのアクセスを遮断するスクリプトらしく、これをこのまま使うとちょっと問題が有ったw

無料枠での使用だからなのか、ファイアーウォールルールが100件を越したところでインポート出来なくなった(ノ∀`)

致し方なく、インポート済のau以外のファイアーウォールルールを削り、その後、Cloud Shell上でviでスクリプトファイルを開き、cn以外を削って再実行した。

実は中身のIPの全てが正しい値なのかはチェックしていないのであれだが、ここで大事なことはCloud Shellを使って色々と出来るよということだな(・∀・)

ファイアウォール ルールの使用
【GCP入門編・第9回】 Cloud Shell で、いつでもどこでも Google Cloud Platform (GCP) が操作可能に!

一応、auとcn以外を削ったテキストを作ったが、内容は精査していない(ノ∀`) 加えてCloud Shell上へアップロードをする方法を知らないw まあ利用する時にこれをwgetしてmvでリネームして実行すればいいか。reject_au_cn.txt


UbuntuへのWordPressのインストール等はかつてエントリ化したものを適当に見ながらやったら出来た。確かtaskselをわざわざ入れて、そこからLAMPを入れたんだっけかな?

WordPress検証用環境の作成手順(`・ω・´)

taskselから入れた時にrootパスワードを指定しなかったのか聞かれなかったのか忘れたが、何はともあれ設定した。
MySQLでパスワードを変更する「SET PASSWORD」


で、

  1. Duplicatorプラグインで普通にデータ移行を試みる → OutOfMemoryで失敗。
  2. Duplicatorプラグインで画像データなしでデータ移行を試みる → OutOfMemoryで失敗。
  3. All-in-One WP Migrationプラグインで画像データなしでデータ移行を試みる → 成功するも、エントリを幾つか移動すると反応しなくなる。(最終的にデータベース接続確立エラーになる。)

という流れに…(ヽ’ω`)

600MBじゃWordPressの運用って無理なのだろうかと悩んだが、最終的にスワップ領域を作成していないことに気づく(ノ∀`)

参考にしたエントリでは”bs=2M count=2048″となっていたけれども、そんなにはいらないかなと適当に”count=1024″にしたw
Ubuntu Server 18.04 LTS スワップファイル設定

一応これでフリーズ状態にならなくなったので、もう一度dbやら何やらを綺麗にして、Duplicatorプラグインで画像データ有りでデータ移行を試みたら上手く行った(`・ω・´)

パーマリンク形式変更による404エラー対策の作業を忘れて、一瞬焦ったが(ノ∀`)
※移行するデータ量が512MB以下ならAll-in-One WP Migrationプラグインの方が楽かもしれないが、こっちはこっちでアップロードリミットを修正しないといけなかったりで、それはそれでめどいかもしれない(´・ω・`)


取り敢えずはこれでいいか。データ転送量(?)が1GBを超えない限りは無料運用が出来そうな気配ではあるがはてさて。もしも1GBを超えるようだったら、画像はGoogleドライブに移そうかな。面倒くさそうだけども。
サーバ通信量を節約!ブログ内の画像をGoogleドライブから参照!

後はmole-kingdom.comのドメインをあっちに移せばいいのかな。これは後日するとしよう(´・ω・`)

WordPress検証用環境の作成手順(`・ω・´)

以下のローカル環境に他所で動いているWordPressを移す手順について記す。
かなり端折ったのに長くなった(´・ω・`)

  • Windows 10 Pro (Hyper-V 未インストール)
  • Virtual box
  • ubuntu server
  • apache2

備忘録なので作業検証時に知った関係ないことや初歩的なことも書いてある(ノ∀`)
WordPressの移行先フォルダは"wpbl"になっているが、これは元の環境に合わせて適宜変更する。
 


 
 



VirtualBoxとUbuntu Serverのインストール

  1. Virtual Boxをダウンロードして来てインストールする。
  2. Virtual Boxでubuntu用の仮想マシンを作成する。
  3. 作成した仮想マシンの「ネットワーク」の「アダプター1」タブの「割り当て」を"ブリッジアダプター"にする。
  4. networkadapter_bridgeadapter
  5. ubuntu serverのインストールisoをダウンロードして来て「ストレージ」の「CDドライブ」にセットして仮想マシンを起動する。
  6. storage_isoset
  7. ほぼデフォルトでインストールする。
     
    最後のtaskselのところで"LAMP server"を選択してインストールする。(ssh接続等の検証もしたい場合は、"OpenSSH server"もインストールする。) 入れ忘れた場合はログイン後に"sudo tasksel"でインストールする。
    tasksel_lamp
  8. mysqlのrootユーザー用のパスワードの設定する。
    mysqlpassword01
  9. 再起動後にログイン


文字化け対策

※2016/06/21追記
vimがインストール済みでない場合、viを利用するかvimをインストールする。

sudo apt-get install vim
or
sudo apt install vim

でインストールする必要があり。

  1. sudo vim ~/.bashrc
    
  2. [i]または[a]で編集モードにして適当なところに以下を追加し、[:wq]で書き込み保存。
    sudoモードで開くのを忘れてしまった場合は[:w !sudo tee %]で強制的に書き込み保存する。

    case $TERM in
    linux) LANG=C ;;
    *) LANG=ja_JP.utf8 ;;
    esac
    

    bashrcmodify

  3. exit
    
  4. 再ログイン。以降の[sudo aptitude update]等で文字化け(◇)が表示されていないことを確認する。

参考:
Ubuntu serverの文字化け対策



アップデート

2021/8/13追記 今はもうaptでやるのが主流?

※2016/05/03追記
16.04LTSではaptitudeが最初は入っていない模様。
なので先に

sudo apt-get install aptitude
or
sudo apt install aptitude

でインストールする必要があり。
apt - 16.04 : "aptitude" at the command line

sudo aptitude update
sudo aptitude upgrade

途中で以下のようなメッセージが表示されたら[y]
upgrademessage



MySqlの設定

  1. rootユーザーでMySqlにログイン。パスワードはインストール時に指定したモノ。
    mysql -u root -p
    
    ※Ubuntu20.04でtaskselを追加してそこからLAMP Serverで入れた場合はMySQLのインストール時にパスワード入力を要求されなかった。Ubuntuのadminで入るみたい。

    sudo mysql
    

    正確にはUbuntuのバージョンじゃなくてMySQLのバージョンに依存するみたい。

    上記の設定でパスワードを設定しましたが、これはこのままでは使用されません。というのもMySQL 5.7以降では、MySQLのrootユーザはデフォルトではそもそもパスワードによるログインができないようになっています。パスワードの代わりに、システムのrootユーザ(ここではOSがUbuntuなのでUbuntuのrootユーザ)情報でログインする必要があります。

    Ubuntu18.04にMySQLをインストールする手順

  2. データベース"mysql"を選択。
    use mysql;
    
  3. WordPress管理用ユーザーを作成。

    この例でのユーザーは"wpadmin"、パスワードは"password"。insert文でテーブルに対して直接作成することも可能。

    create user 'wpadmin'@'localhost' identified by 'password';
    
  4. WordPress用データベースを作成。
    create database wpdb;
    
  5. 管理用ユーザーに作成したデータベースの全ての権限を許可する。
    ※ubuntu16.04に入っているmysql 5.7.12では下の方じゃないと駄目かも。

    grant all on wpdb.* to wpadmin;
    or
    grant all on wpdb.* to wpadmin@localhost;
    
  6. 権限の反映。(この手順の場合は権限の反映は必要がない?)
    flush privileges;
    
  7. exit
    
  8. 管理用ユーザーで再びログインする。
  9. mysql -u wpadmin -p
    
  10. 権限のあるデータベースを確認する。
    show databases;
    

    showdatabases

  11. exit
    

※6.3.2 ユーザーアカウントの追加

"CREATE USER および GRANT の代わりとして、直接 INSERT ステートメントを発行してから、FLUSH PRIVILEGES を使用して付与テーブルを再ロードするようにサーバーに指示することで、同じアカウントを作成できます。"

"INSERT を使用してアカウントを作成する場合は、FLUSH PRIVILEGES を使用して、付与テーブルを再ロードするようにサーバーに指示する必要があります。そうしなければ、サーバーを再起動するまで変更が認識されません。CREATE USER では、FLUSH PRIVILEGES が必要ありません。 "



unzipのインストール

sudo aptitude install unzip


共有フォルダーの設定

  1. VBoxGuestAdditions.isoのセット。
    setGuestAdditionsCD

    ※以下のようなダイアログが表示された場合は<強制マウント解除>をクリック。
    vb003

  2. 仮想マシンの設定でVBoxGuestAdditions.isoがセットされていることを確認する。
    setGuestAdditionsCD02
  3. dkmsのインストール。
    sudo aptitude install dkms
    

    以下のようなメッセージが表示されたら、[y]
    dkmsmessage

  4. 再起動する。
    sudo shutdown -r now
    
  5. 起動したらログインする。
  6. CDイメージをマウントして、VBoxLinuxAdditions.runを実行し再起動する。
    sudo mount /dev/cdrom /media/cdrom
    sudo /media/cdrom/VBoxLinuxAdditions.run
    sudo shutdown -r now
    
  7. 起動したらログインする。
  8. 仮想マシンの設定で「共有フォルダー」の設定をする。この例のフォルダ名は"temp"。「フォルダーのパス」はホストOSの任意のフォルダを選択。
    sffoldersetting
  9. 共有用フォルダ(/usr/sf)を作り、起動スクリプトを開く。
    sudo mkdir /usr/sf
    sudo vim /etc/rc.local
    
  10. 以下の一文を追加して書き込み保存する。
    mount -t vboxsf temp /usr/sf
    

    rclocalmodify

  11. 再起動する。
    sudo shutdown -r now
    
  12. 起動したらログインする。
  13. ホストOS側で共有フォルダに何らかのファイルをコピーをして、自動マウント及び共有が上手く行っているか確認する。
    ls /usr/sf
    
    lsusrsf
    ※2016/05/04追記
    現時点ではubuntu server 16.04で同じ手順を行ってもrc.localが実行されないのか
    自動マウントされない。

    この手順はVirtualBoxでの共有フォルダの自動マウントなので常用しない場合は必要ない。
    代わりに以下のように手作業でマウントする。

    sudo mount -t vboxsf temp /usr/sf
    
    ※2016/05/04追記
    どうもこれは15.04から起動プロセスがupstartからsystemdに変わったことによるもの?
    アップグレードの場合はupstartのままで、新規インストールの場合はsystemdらしい。
    その絡みからかなんかでrc.localが実行されていないくさい。

    ※2016/10/23追記
    これだとなんか上手くいかないかも(´・ω・`)
    前は上手く行った気がするんだけれども…

    もしも16.04等で自動マウントしたい場合は/etc/fstabを使うと良いらしい。
    VirtualBoxの共有フォルダの自動マウント化

    sudo vim /etc/fstab
    

    で/etc/fstabを開き、

    temp    /usr/sf    vboxsf    defaults    0    0
    

    を追加して保存。

    起動時にvboxsfを利用可能にする為に

    sudo vim /etc/modules-load.d/modules.conf
    

    でmodules.confを開き、

    vboxsf
    

    と追加し、保存。

    後は項番11~13を実行して、自動マウント出来ているかを確認する。

※以前はフォルダ共有をする際に「hwinfo」をインストールしていたが、しなくても大丈夫な模様。正確に言うと、14.04では通常の方法では「hwinfo」を入れることが出来ないようだったので、飛ばしたが問題がなさそう。hardware - hwinfo replaced with ... what?



WordPressの取得

  1. 公式サイトからWordPressをダウンロードする。
    sudo wget "https://ja.wordpress.org/latest-ja.zip"
    
  2. ダウンロードしたWordPressを「/var/www/」以下の任意のディレクトリ(この例では「/var/www/wpbl/」)に解凍。
    sudo unzip latest-ja.zip -d /var/www/wpbl/
    
  3. 「wordpress」ディレクトリ内の全てのファイル及びディレクトリを「/var/www/wpbl/」に移動して、、
    「wordpress」ディレクトリを削除する。

    sudo mv -f /var/www/wpbl/wordpress/* /var/www/wpbl/.
    sudo rm -Rf /var/www/wpbl/wordpress/
    
  4. 「/var/www/wpbl/」の所有者をrootからapache2の実行ユーザー・グループのwww-dataに変更する。
    sudo chown -R www-data /var/www/wpbl/
    

※WordPressの圧縮ファイルをホストOS側でダウンロード・解凍して、共有フォルダ経由でコピーすることも可能。また、この例ではzip形式でダウンロードして来ているのでunzipをインストールする必要があったが、.tar.gz形式でダウンロードして来る場合はその限りではない。



DocumentRootの変更
デフォルトではDocumentRootが「/var/www/html」になっているので「/var/www/」に変更する。

  1. sudo vim /etc/apache2/sites-available/000-default.conf
    
  2. DocumentRootを「/var/www」に変更して保存する。
    DocumentRootvarwww
  3. apacheを再起動する。
    sudo service apache2 restart
    


※尚、apacheを再起動した際に出るAH00558というメッセージを消すには、以下のようにする。
AH00558

  1. fqdn.confを作成する。
    sudo vim /etc/apache2/conf-available/fqdn.conf
    
  2. 以下の内容を書き込み、保存する。
    ServerName $HOSTNAME
    
  3. 作成した設定ファイルを有効にする。
    sudo a2enconf fqdn
    
  4. apacheをリロードする。
    sudo service apache2 reload
    

結局のところ、FQDNの解決に失敗していることに起因するエラーなので、解決方法は他にも色々とある模様。
参考:
ubuntuにおけるapache2のAH00558エラーを解決する。



WordPressのインストール

  1. ゲストOSのipを調べる。
    ifconfig
    

    ifconfiglocaladdress

  2. ホストOSのブラウザで"http://ゲストOSのip/wpbl/index.php"にアクセスする。
  3. 「ようこそ」画面が表示されたら、<さあ、始めましょう!>をクリックする。
    wpinstall01
  4. 「データベース接続情報入力」画面が表示されたら、"データベース名"、"ユーザー名"、"パスワード"を入力し、<送信>をクリックする。
    wpinstall02
  5. 「部分完了」画面が表示されたら、<インストール実行>をクリックする。
    wpinstall03
  6. 「必要情報入力」画面が表示されたら、"サイトのタイトル"、"ユーザー名"、"パスワード"、"メールアドレス"を入力する。これはデータ移行後には使わなくなるので適当で良い。
     
    脆弱なパスワードを設定した場合は「パスワード確認」にチェックを入れる。
    <WordPressをインストール>をクリックする。
    wpinstall04
  7. 「成功しました!」画面が表示されたら、<ログイン>をクリックする。
    wpinstall05
  8. 「ログイン」画面が表示されたら、"ユーザー名"と"パスワード"を入力して<ログイン>をクリックする。
    wpinstall06
  9. インストールしたWordPressにログイン出来ることを確認する。
    wpinstall07


Duplicatorのインストールとデータのエクスポート

  1. 移行元のWordPressでDuplicatorプラグインを検索、インストールして有効化する。
    duplicatorinstall01

    duplicatorinstall02

    duplicatorinstall03

  2. Duplicatorを起動する。
    duplicatorinstall04
  3. 右上の<Create New>をクリックする。
    duplicatorinstall05
  4. 右下の<Next>をクリックする。(ここでエクスポートしないファイルの指定、ログイン名等の指定が出来る模様)
    duplicatorinstall06

    ※2016/05/05追記
    移行元のubuntu serverが16.04の場合(正確にはphpが7.0以降の場合)、以下のようなエラーが
    出る場合があります。この場合、不足しているパッケージを手作業でインストールする必要があります。
    ziparchiveenabled

    sudo aptitude install php7.0-zip
    sudo aptitude install php7.0-bz2
    sudo shutdown -r now (apache2の再起動だけでいい?)
    

    再起動後に再びブラウザからwordpressにログインし、項番2の手順から続きを行います。

    参考:
    (Solved) Duplicator Error (WordPress / PHP7.0)

  5. スキャン結果にWarn(警告)がある場合は"A warning status was detected,are you sure you want to continue?"にチェックを入れ、<Build>をクリックする。
    duplicatorinstall07
  6. <installer>及び<Archive>をクリックし、installer.phpとデータをダウンロードする。
    duplicatorinstall08

参考:
引っ越しも楽々? WordPressで構築したサイトを丸ごとコピーできるプラグイン「Duplicator」

尚、「All-in-One WP Migration」でもデータ移行は可能。
但し、無償版だと512MBを越すとエラーが出た(ような気がしたが、改めてやってみたら
630MBオーバーでもバックアップファイルが作成された模様)

また、移行先でも同じプラグインを追加して、そこからデータのインポートを行うので微妙に手間がかかる気がする。
エクスポートファイルはバックアップとして残るので、バックアップ目的ならば良いとは思う。

ただ、このバックアップファイルの存在を忘れて「Duplicator」でエクスポートしたり、
WordPressをまるごとバックアップしようとするとデータがとんでもない大きさに膨れ上がるので注意。

参考:
WordPressのお引越しに All-in-One WP Migration がめっちゃ便利すぎる件



データのインポート

  1. ホストOSの共有フォルダにinstaller.phpとデータを移動する。
    duplicatordataimport01
  2. ゲストOSで共有フォルダ内にファイルが見えることを確認する。
    cd /usr/sf
    ls 
    または
    ls /usr/sf
    

    duplicatordataimport02

  3. データとinstaller.phpを/var/www/wpblに移動する。
    sudo mv xxxxxxxxx.zip /var/www/wpbl
    sudo mv installer.php /var/www/wpbl
    

    duplicatordataimport03

  4. ホストOSのブラウザで"http://ゲストOSのIPアドレス/wpbl/installer.php"に移動する。
  5. "データベース名"、"データベース管理者ユーザー名"、"パスワード"を入力し、<Test Connection>をクリックする。
    duplicatordataimport04
  6. 「Server Connected」と「Database Found」が"Success"なら、「I have read all warnings & notices」にチェックを入れ、<Run Deployment>をクリックする。
    duplicatordataimport05
  7. 以下のエラー画面が表示されたら、wp-config.phpを削除する。(よくよく考えてみると前項の段階でwp-config.phpを削除しておけばいいのかもしれない)
    duplicatordataimport07

    sudo rm /var/www/wpbl/wp-config.php
    
  8. <Try Again>をクリックする。
    duplicatordataimport08
  9. (処理が実行される。)
    duplicatordataimport09
  10. 「File & Database」画面が表示されたら、をクリックする。 (ここで新しい管理者アカウントの情報を追加出来たりする)
    duplicatordataimport10
  11. 「Test」画面が表示されたら、各項目をチェックする。
     
    パーマリンク形式を変更している場合、index.phpからエントリへのリンクを辿っても404エラーになるはず。以降の手順で変更する必要がある。
    duplicatordataimport11


パーマリンク形式変更による404エラー対策

  1. rewrite.loadファイルの内容を確認する
    cat /etc/apache2/mods-available/rewrite.load
    

    と実行し、以下の内容が表示されることを確認する。

    LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
    
  2. rewrite.loadを有効化する。
    sudo a2enmod rewrite
    

    a2enmodはrewrite.loadのような特定のモジュールを有効化するスクリプトが書かれているファイルを、「/etc/apache2/mods-enabled」内にシンボリックリンクを作ることによって有効化する。a2dismodはその逆。

  3. apacheの設定ファイルを開く。
    sudo vim /etc/apache2/apache2.conf
    
  4. 任意の場所に以下の内容を追記して書き込み保存する。
    <Directory /var/www/wpbl>
         AllowOverride All
    </Directory>
    
  5. apacheを再起動する。
    sudo service apache2 restart
    
  6. ホスト側のブラウザで各エントリをクリックし、404エラーにならないことを確認する。

参考:
Ubuntu版Apache2でmod_rewriteを有効にする


すげーはまった(´・ω・`)

正確に言えば、色んなことを忘れていて、それを思い出すまでに二日程要した…_| ̄|○

事の起こりはふと「お金もないし、さくらVPSを512MBのプランにしようかなぁ(´・ω・`)」と
思い立ったことから。ついでにOSもUbuntu Server 14.04.4 LTSにしてOpenCmsも新しいのに
するかとも。

ほいでまあ取り敢えず、移行手順の確立の為、実験を開始する。

初めにローカルのVirtualBoxにUbuntu Server 14.04.4 LTSを入れる。
本当はWindows 10 proだからHyper-Vが使えるはずだが、前回入れた時に余計なことをして
再インストールする羽目になったので、今回はやめておいた。VirtualBoxがeclipse Cheを
入れた時に一緒にインストールされていたので、それを使うことにした。


ubuntuのインストール自体は特に問題なくいったのだが、ホストOSからの接続する方法がわからない(´・ω・`)

ぐぐった。

最初のネットワークアダプタがNATになっていたために、ゲストOSはインターネットには接続出来るが
ホストOSからゲストOSには接続出来ないということだった。これを解消するためにはポートフォワーディングを
指定すれば良いようであったが面倒くさい(´・ω・`)

もう一つの方法であるホストオンリーアダプタを指定したアダプター2の追加に挑戦する。

この方法で上手く行かないか粘ったが、何かを勘違いしているのか、長時間試した結果諦めた_| ̄|○

結局、セキュリティ的には良くないと書かれていたが、アダプター1でブリッジアダプタを指定する。
あっという間につながり、無駄にした時間を思って泣いた。・゚・(ノД`)・゚・。


あぱっちぇへの接続後、mysqlでdbやユーザーを作ったりしてwordpressのインストールまで終了。

その後、wordpressのデータ移行方法をぐぐる。
phpMyAdminを使ってデータをエクスポートする方法が一般的なようだったが、入れてるかどうか
覚えてないし、あんまりあれ好きじゃないんだよなぁと思い、プラグインを使う方法を選択。

取り敢えず「Duplicator」を試してみた。
エクスポート実行前のスキャンで警告は出ていたが、一応上手くエクスポート出来た模様。

ここでインポートしようと思ったが、VirtualBoxの共有フォルダの設定を忘れていたことに気づく(ノ∀`)
これをやってからinstaller.phpとデータを/var/www/にコピーしたが、ブラウザから見ることが出来ない。

DocumentRootを変えてなかった(ノ∀`)

/etc/apache2/sites-available/000-default.confを開きDocumentRootを/var/www/に変更。
あぱっちぇを再起動すればいいのだが、コマンドを忘れているためにめんどうくさいので
sudo shutdown -r nowでubuntu serverごと再起動した。以降もほぼ同じw

でまぁ、installer.phpからのインポートは成功した(`・ω・´)
が、しかし、管理画面に入れず、各エントリをクリックしてもnot found (ヽ'ω`)
(これらは後に非常にくだらないミスであったことに気づくが…)


じゃあ仕方がないということで、もう一つのプラグイン「All-in-One WP Migration」を試す。

と思ったらエクスポート作業でエラーが(´・ω・`)

このプラグインはサイズ制限があって、無料で出来るのは512MBまでらしい…
出来ればお金は払いたくないので、「Duplicator」でエクスポートしたデータ内に動画が
あることを確認してからメディアライブラリ内の動画を消す。まあプログラムの途中経過を
示すだけのどうでもいい動画なのでなくなったらなくなったでどうでもいいw

だがしかし、まだ512MB以下にならず…( ;・´ω・`)ゴクリッ

どうしたものかと思いながら、エクスポート画面をよく見たらオプションでメディアファイルや
リビジョンデータをエクスポートしない設定があった(ノ∀`)

それでまぁ、エクスポートして、virtualbox側のwordpressにも「All-in-One WP Migration」を
追加してインポートしてみる。上手く行った(・∀・)

だがしかし、「Duplicator」の時と同じ結果に(´・ω・`)

なんでじゃヽ(`Д´)ノ


気力と体力が尽きたのでふて寝する(´-ω-`)

起床後、色々と原因について考えてみる。取り敢えず本番環境のサーバはtomcatと共存していて
なんとかかんとか言うモジュールでなんかしてたなぁと思い、昔の自分のエントリをいくつも読み直す。
ついでにリンク切れとかを修正したり、えらく時間がかかった(ヽ'ω`)

で、数時間を要した調査の結果わかったことは、パーマリンク形式を変更しているから
mod_rewriteを有効にしないといけないということだった…_| ̄|○ ソウイヤソウダッタ…

apache2.confにwordpressのディレクトリが"AllowOverride All"になるように指定。
これで.htaccessが書き込まれる…んだったかな?

ほいでまあ、再起動してみたら、無事に各エントリが表示されるようになった(`・ω・´)

ちなみにメディアライブラリをエクスポートしてないので、画像は表示されず、
<a>リンクのみが表示されていた。試しに「Duplicator」のエクスポートデータから
"uploads"フォルダをコピーしたら、画像が表示されるようになった。つまり<img>タグは
生きているということだが、<a>タグのリンクはおかしくなっていた。実コピーじゃなくて
アップロードでやったら<a>タグのリンクも復活するのだろうか?


でも相変わらず管理画面が出て来ない(´・ω・`) ナンジャラホイ

ぐぐった。特にヒットしない……
本番環境のwordpressの画面を見たり、色々とぐぐった結果を眺めていて気づいた( ゚Д゚)ピコーンッ!

実験環境にインストールした際に指定した管理者権限を持つユーザー名が、
本番環境では購読者権限しか持たない設定だった(ノ∀`)

つまり、俺氏は管理者権限を持つユーザーAのつもりでログインしているが、本番環境の設定を
インポートしてる実験環境のユーザーAは購読者であって管理画面には入ることは出来ないという
くだらないミスだったw


まあ何はともあれWordPressの移行は無事に出来そうな感じがする。
画像の件は「Duplicator」のエクスポートデータでなら上手く行くか試してみるか。
要らないエントリもあるから最悪削るのもありかなぁ。

opencmsは9.5.3にすべきか10 betaにすべきかで悩む(´・ω・`)
それはともかく今回の手順は別エントリで起こしておくべきだな。
きっとまた忘れるから。