wordpress DB引っ越し

wordpress DB引っ越し

cloud9 のDBを引っ越すため
Amazon Linux 側で mysql のDBを作成します

mysql -u root -p

で mysql にログインし
引っ越し用DBを作成します

create database wptheme;

次にユーザとパスワードの設定

grant all on wptheme.* to wptheme@localhost identified by 'パスワード';

次に設定を反映します

flush privileges;

これで引っ越し用DBを作成できたので
次にインポートするデータを書き換えます

URLが cloud9 のものなので
これを移行するドメインのURLに書き換えます

vim の置き換えを使うと簡単にできるので

:%s/https:\/\/original-theme-snowpooll.c9users.io/http:\/\/wp.snowpool.info/
g

で書き換えます

次に phpmyadmin にログインします

http://ドメイン名/phpmyadmin/
でアクセスして
mysql root ユーザのパスワードでログインします

ログインしたら作成したDBをクリックし
インポートをクリックし
アップロードファイルにチェックを入れ
参照をクリックします

ファイルを選択したら
実行をクリックします

問題なく成功するとメッセージが表示されます

次に cloud9 のwordpress のフォルダをダウンロードします
ダウンロードしたファイルは
tar.gz に圧縮されてダウンロードされます

しかし、このままだと wordpress の設定ファイルの
wp-config.php の中身が
cloud9 のままなので設定を変更します

変更する場所は、24行目あたりの

define('DB_NAME', 'c9');

/** MySQL database username */
define('DB_USER', getenv('C9_USER'));

/** MySQL database password */
define('DB_PASSWORD', '');

/** MySQL hostname */
define('DB_HOST', getenv('IP'));

の部分です

これを

define('DB_NAME', 'wptheme');

/** MySQL database username */
define('DB_USER', 'wptheme');

/** MySQL database password */
define('DB_PASSWORD', 'パスワード');

/** MySQL hostname */
define('DB_HOST', 'localhost');

というように作成したDBに合うように書き換えます

次に、このファイルを AmazonLinux にアップロードします

端末から scp コマンドで転送できるので
EC2にファイルアップロード/ダウンロード
http://qiita.com/mikoto/items/4273cd35dce254727363
を参考にアップロードします

 scp -i pemのパス アップロード対象ファイルパス ec2-user@host:~/

がその構文になります

今回、転送したファイルは
wp-admin[+21].tar.gz
ですが、解凍して サブドメインディレクトリに移動します

sudo tar zxvf wp-admin\[+21\].tar.gz -C /var/www/html/wp.snowpool.info/

で展開します

tar コマンドで tar.gz 圧縮ファイルを展開
-C オプションで展開先を指定しています

今回はサブドメインのディレクトリにしました

ただし、このままアクセスしてもCSSなどが適用されていないため

chown -R apache:apache /var/www/html/wp.snowpool.info/

で権限を変更します

次に

cd /var/www/html/wp.snowpool.info/

でディレクトリ移動

 sudo vim wp-config.php

で編集します

最終行に

define('WP_HOME','http://wp.snowpool.info/');
define('WP_SITEURL','http://wp.snowpool.info/');

を追記します

これはURLやドメイン変更してデザインなどが反映されないときに対処する方法です

詳しくは
サイト URL の変更
https://wpdocs.osdn.jp/%E3%82%B5%E3%82%A4%E3%83%88_URL_%E3%81%AE%E5%A4%89%E6%9B%B4
を参考に

次に .htaccess の変更を行います

sudo vim .htaccess

でファイルを作成

内容を

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

とします

これでもダメなので
設定を見直しました
どうやら virtualhost 設定で
AllowOverride All にしないとダメみたいなので
この設定をします

なお
AllowOverrideは
タグで囲まないと使用できません

そのままやると

Starting httpd: Syntax error on line 1024 of /etc/httpd/conf/httpd.conf:
AllowOverride not allowed here
                                                           [FAILED]

となります

このため

#追記ドメイン用
<VirtualHost *:80>
DocumentRoot /var/www/html/wp.snowpool.info
ServerName wp.snowpool.info
<Directory "/var/www/html/wp.snowpool.info">
AllowOverride All
</Directory>
</VirtualHost>

として保存し

/etc/init.d/httpd restart

で再起動すれば無事に反映されます

もし、これでもダメな場合、
インポートしたDBのサイトURLが違っている可能性があるため
一度

mysql -u root -p

でログインし

drop database wordpressのDB名;

で削除し、URLを修正後、再度 phpmyadmin でインポートし直します

AWS に phpmyadmin インストール

AWS に phpmyadmin と インストール

cloud9 からのデータをインポートするときに便利なので
phpmyadmin をインストールします

epel レポジトリを使い、インストールします

yum --enablerepo=epel install -y phpMyAdmin

次に設定ファイルを書き換えますが
apache のバージョンにより書き換える場所が変わるので

httpd -v

でバージョン確認をしておきます

確認方法については
Apacheのバージョン確認方法

を参考にさせていただきました

 vim /etc/httpd/conf.d/phpMyAdmin.conf

でファイルを開きます

最初の設定だと

   Allow from 127.0.0.1

というように25行目に設定されていて
外部接続不能になっています

なので
どこでもアクセス可能にしたいのなら

   Allow from 127.0.0.1 all

とすればどれでもアクセス可能になります

さすがにこれだとセキュリティリスクがありそうなので
AWSへのSSHログイン制限を許可したIPのみ
アクセス可能にします

これはAWSのセキュリティグループのSSH で設定した
IPを使います

phpmyad

このIPを追記します

   Allow from 127.0.0.1 SSH可能なIP

すると Y!mobile ではアクセスできるけど
スマホからではアクセスできない
という状態にできます

あとは設定反映のため

/etc/init.d/httpd restart

を実行し httpd を再起動します

これで
http://ドメイン名/phpmyadmin/
とするとアクセスできるようになります

ログインするときのユーザ名とパスワードは
以前に設定した mysql の root ユーザと
rootパスワードになります

phpmyad2

AWS バーチャルホスト設定 その2

AWS バーチャルホスト設定 その2

お名前.com でサブドメインの取得ができたので
次に
AWS での設定を行います

まず ssh でログインします

ssh -i 鍵ファイル名.pem ec2-user@パブリックDNS名

でアクセスします

もし、接続できないときには
セキュリティグループのアクセス可能なIPアドレスを確認
Y!mobile のような回線の場合
IPが変更されていてアクセスできない可能性があります

sshログインできたら
httpd.conf の編集をします

sudo su -

で root 権限で編集していきます

vim /etc/httpd/conf/httpd.conf 

で編集します

最終行に追記します


NameVirtualHost *:80
#元ドメイン
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName snowpool.info
</VirtualHost>

#追記ドメイン用
<VirtualHost *:80>
DocumentRoot /var/www/html/wp.snowpool.info
ServerName wp.snowpool.info
</VirtualHost>

として :wq で保存します

次に、追加ドメインのためのディレクトリを作成します

mkdir /var/www/html/wp.snowpool.info

ここへテストファイルをおいて、実際にみれるかテストします

 vim /var/www/html/wp.snowpool.info/index.html

でファイルを作成します

内容は

hello

としておきます

これで準備できたので apache を再起動します

/etc/init.d/httpd restart

これで
元のドメインでアクセスして
追加ドメインでアクセスできれば成功です

vh

vh2

次回は cloud9 からデータ移行のために phpmyadmin をインストールします

aws バーチャルホスト設定その1

aws バーチャルホスト設定

まず Y!mobile からアクセスする場合
IP制限をつけていると
グローバルIPが変更になったときにつなげられないので
AWS EC2 にアクセスし
ssh 接続可能な IP をマイIPに変更

これでアクセス可能になるので

次に、サブドメインの設定

お名前.com でドメインを取得しているので
ログイン後
ドメイン設定タブをクリック

スクリーンショット 2016-02-28 19.06.00

次に
DNS関連機能の設定をクリック

スクリーンショット 2016-02-28 19.12.53

設定したいドメインにチェックを入れ
次にすすむをクリック

スクリーンショット 2016-02-28 19.15.44

次にDNSレコード設定を利用する の
設定するをクリック

スクリーンショット 2016-02-28 19.25.13

次にTYPE を A から CNAME に変更します
そしてホスト名に追加したサブドメイン
今回なら wp を追記します

VALUE には取得しているドメインを入力します

スクリーンショット 2016-02-28 19.40.22

ここまでできたら
追加をクリックします

これでサブドメインが追加されたので
確認画面にすすむをクリックします

スクリーンショット 2016-02-28 19.41.46

サブドメインが追加できているのを確認できたら
設定する
をクリックします

スクリーンショット 2016-02-28 19.42.42

これでサブドメインの設定ができたので
次に aws のほうを設定します

wordpress 公開準備(sql ファイルのエクスポート)

wordpress 公開準備(sql ファイルのエクスポート)

まず cloud9 で作成した wordpress のデータを
エクスポートします

これは

mysqldump DB名 > DB名.sql

で sql ファイルとして出力します

DB名は
wp-config.php に書かれているので

define('DB_NAME', 'DB名');

となっているところを探します

私の場合24行目あたりにありました

 mysqldump DB名 > wptheme.sql

としてsql ファイルに書き出します

次に cloud9 でできたwptheme.sql を右クリックし
Download を選択
これで sql ファイルをダウンロードできます

次回は お名前.com でサブドメインを取得します

slack の登録

slack の登録

IT bootcamp に参加するにあたり
slack に登録することになりました

招待メールをクリックすると
以下のような画面になるので
Username にユーザ名

Password にパスワードを入力

入力すると Next のところが緑になるのでクリック

slack

次に Explore Slack をクリックします

slack2

これで登録できました

slack3

最初に新規登録のため
slack にアクセスしようと思ったのですが
http://slack.keihin.blue/archives/16
によれば
すでに存在するチームに参加する場合
招待状からアカウント作成
ということでしたので
招待メールからアカウントを作成しました

AmazonLinux microインスタンス WordPress 接続エラー対処

AmazonLinux microインスタンス WordPress 接続エラー対処

AWS で wordpress の構築を行い
いろいろ実験していたのですが
先日アクセスすると
データベース接続エラーに

まずはログインしようとしたのですが
ssh でログインしようとしてもエラー

原因を調べたところ、AWSのセキュリティグループ設定で
送信元のIP制限が引越し前のものだったのが判明

このためセキュリティグループを編集し
カスタムIPからマイIPに変更すると
現在のIPからでも ssh 接続可能になりました

これで

ssh -i pemファイル ec2-user@パブリックDNS

でログインします

次に
WordPress on Amazon EC2で「データベース接続確立エラー」が頻発する

を参考に復旧作業

sudo su -

でroot ユーザになり
プロセスに mysqld があるか確認

ps aux | grep mysqld

しかし、

root     28101  0.0  0.0 110452   900 pts/0    S+   21:51   0:00 grep --color=auto mysqld

となり存在しない

試しに mysqld を起動
もし起動しているのなら start とするとエラーになるはずだけど
無事に起動

service mysqld start

とすると

Starting mysqld:                                           [  OK  ]

原因は micro instance の t1.micro だと
スペック不足による起きるものらしので
メモリを確認

free

とすると

             total       used       free     shared    buffers     cached
Mem:       1020184     385828     634356        308     113352     102744
-/+ buffers/cache:     169732     850452
Swap:            0          0          0

となりスワップが0

ちなみに free コマンドは
【 free 】 メモリーの使用状況を表示する

にあるようにメモリ状況を調べるコマンド

ただし

 less /var/log/messages

で調べても mysql が kill されていることはないため
とりあえず保留しておきます

Flickr の画像を wordpress で利用するプラグイン

Flickr の画像を wordpress で利用するプラグイン

ImageInject
というプラグインを使うことで
Flicr の画像を検索し利用することができます

プラグインで
image inject
で検索します

flicr

インストールして有効化すると
設定項目に
Image Inject の項目が増えます

商用利用可能で
著作者のクレジット表示が必要なものを
さがすと比較的でてくるので、
この条件で検索するように
License のところを
Commercial Use Allowed, Attribution Required
になっているのを確認します

flickr2

次に記事の投稿で
画像を入れたいところをクリックし
Imageinject Find Free images のところの欄で
検索したい画像を入力し
Search をクリックします

flickr4

今回は朝日で検索してみました
すると下に対応する画像が表示されます

flickr5

画像とサイズを選ぶと記事に挿入されます

なおクレジット表示は
Flickr の画像は表示されますが
Pixabay の画像の場合、
クレジット表示はされません

flickr6

cakephp install

cakephp install

ドットインストールで cake php のインストールが
あったので
vagrant の CentOS ではなく
Ubuntu 14.04 にインストール

今回は
/var/www/html

mkdir cakephp

でディレクトリを作成し、ここで実行

https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx
にやり方の載っているので
これを実践

curl -sS https://getcomposer.org/installer | php

で composer をインストール

次に cake php のインストール

php composer.phar create-project --prefer-dist cakephp/app myapp

でインストールします

ちなみに最後の myapp は作成するプロジェクト名です
インストールの途中で

Set Folder Permissions ? (Default to Y) [Y,n]?

というコメントがでてきます
フォルダの権限を設定しますか
ということなので
y
を押して設定します

これで cakephp が使えるので
フォルダの中身を確認
config が設定ファイル関連
src がソースコード関連

webrootはブラウザからアクセスしたときに見えるフォルダで
画像
css
javascript などを入れるところ
web 関連と考えておくとわかりやすいかも

これでブラウザからアクセスしたらエラー発生

bin/cake server -H 192.168.128.54 -p 8000/

を実行したけどエラー

AllowOverride を有効化していないためと思われるので

 sudo vim /etc/apache2/apache2.conf 

で設定ファイルを開き
/AllowOverride
で検索して
167行目あたりの

AllowOverride None

AllowOverride All

に変更し

sudo service apache2 restart

で apache2 を再起動して設定を反映します

これでブラウザからアクセスすると
Please be aware that this page will not be shown if you turn off debug mode unless you disable the NotFoundException in src/Template/Pages/home.ctp.
とでているけど
これはデバッグモードなのでそのままにしておきます

cake2

次に下にスクロールすると
Connection to database could not be established: SQLSTATE[28000] [1045] Access denied for user ‘my_app’@’localhost’ (using password: YES)
となっています

cake3

これはDBユーザ名などが違うためですので
設定ファイルを書き換えます

cd /var/www/html/cakephp/myapp/config/

として cakephp をインストールしたフォルダの中の
設定関連フォルダ config に移動します

次に

vim app.php

で設定を変更します

223行目あたりに

            'username' => 'my_app',
            'password' => 'secret',
            'database' => 'my_app',
            'encoding' => 'utf8',
            'timezone' => 'UTC',
            'flags' => [],
            'cacheMetadata' => true,
            'log' => false,

となっているので設定を変更します

変更するのは
DBユーザ名
DBパスワード
DB名
に該当する部分なので

            'username' => 'my_app',
            'password' => 'secret',
            'database' => 'my_app',

の部分を書き換えます

            'username' => 'DBユーザ名',
            'password' => 'DBパスワード',
            'database' => 'DB名',

となります

これで
CakePHP is able to connect to the database.
と表示されるようになります

cake4

sql ファイルを作成しておいた場合、それをみると簡単に
設定できるので
sql ファイルを作っておくことをおすすめします

フリー画像素材をプラグインで導入

フリー画像素材をプラグインで導入

Pixaby Images プラグインを使うと簡単に
フリー画像を挿入することができるようになります

以前は無料で使える画像をダウンロードし
それを wordpress にアップしていましたが

今回のプラグインを使うとより簡単にできます

ダッシュボードのプラグインから
新規追加を選び
pixabay で検索します

pixabay

次にプラグイン一覧から
Pixabay Images を選びインストールします

pixabay2

なお、インストール時にFTP認証がでることがありますが
wordpress の所有者を
ubuntu なら www-data
CentOS なら apache
とすることで回避できます

ubuntu なら

sudo chown -R www-data:www-data wordpress/

で権限変更できます

これでプラグインを有効化すると
Pixabay ボタンが投稿画面に表示されます

pixabay3

ボタンをクリックすると画像の検索画面になりますので
キーワードをいれて Search をクリックします

pixabay4

すると対応する画像がでてくるので
任意の大きさのものをクリックします

今回は

1280 x 847 のものにしました

pixabay5

次に詳細設定をして
投稿に挿入
をクリックすると、画像を挿入することができます

pixabay6

するとコードが追記されるので
プレビューを見ると画像が追加されているのがわかります

pixabay7

pixabay8[