2015/04/16

Wordpressサイト移行手順(さくらVPSの場合)

さくらVPSの場合

手順(ドメイン同じでサーバ移動の場合)
  1. 移行先サーバにてssh,ftp,iptables,apache,php mysqlのインストールと設定、ユーザの追加など
    ※それぞれ設定、バージョンは旧サーバ、新サーバともに合わせる。既存ワードプレスサイトに合わせたバージョンをインストールする。
  2. 移行前Wordpressのプログラムを一式ダウンロード, ftp or scp or rsync。
  3. 移行前データベースのエクスポート, phpmyadminで、コンソール上でも
  4. 移行先サイトのドキュメントルートにWordpressのプログラムを一式アップロード
  5. 移行先データベースの新規作成(既存と同名で、照合順序はutf8-general-ci)、3でエクスポートしたSQLファイルをインポート
  6. 移行先URLへアクセス、問題なく表示されることを確認
  7. ネームサーバの編集、ドメインのゾーン編集、AレコードのIPを新サーバのIPに変更(プラスTTL:60(一分)と短めに変更)
  8. 既存ワードプレスを確認したい場合設定変更, 以下詳細
  9. 最終確認

他のサーバの場合

レンタルサーバでfutoka,Xserver,hetemlなどの場合、標準でLAMP環境が構築されているので、手順2からでよい

ドメイン同じでサーバが変更されているかの確認

手順7の後、一分ほどで新サーバで確認できます。nslookup example.com で確認

問題がある場合

移行先URLにアクセスして、TOPページは表示されるが、パーマリンクの設定を/%category%/%postname%/のようなカスタム構造にしていて、他記事のページが404 Not Foundでかつ、リンクが文字化けする場合

Apacheのmod_rewriteモジュールの確認

# grep mod_rewrite /etc/httpd/conf/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so
# find / -name mod_rewrite.so -print
/usr/lib64/httpd/modules/mod_rewrite.so
あれば問題なし

Rewrite設定の確認

.htaccessが以前と同じ状態であれば問題なし
文字コードはUTF-8で保存されているか。
パーミッションは604となっているか。

httpd.confの確認

 "/var/www/html">
    AllowOverride None 

となっていればNoneをAllに変更する
 "/var/www/html">
    AllowOverride All

これで.htaccessの設定が有効となる

既存のサイトも閲覧したい場合

ドメインの向き先を変更した後だと、既存ワードプレス側の設定を変更しないと見れません。
以下SQLを既存サイト(http://ホスト名/phpmyadmin/)で実行
#wordpressのドメインの変更
UPDATE wp_options SET option_value =
REPLACE (option_value, 'old_url', 'new_url')
WHERE option_name = 'home' OR option_name = 'siteurl';

#記事のリンクの変更
UPDATE wp_posts SET guid = REPLACE (guid, 'old_url', 'new_url');

#記事内のURLの変更
UPDATE wp_posts SET post_content =
REPLACE  (post_content, 'old_url', 'new_url');

#画像パスの変更
UPDATE wp_posts SET post_content =
REPLACE (post_content, 'src="old_url', 'src="new_url');

UPDATE wp_posts SET  guid =
REPLACE (guid, 'old_url', 'new_url')
WHERE post_type = 'attachment';

#各投稿メタ情報を変更
UPDATE wp_postmeta SET meta_value =
REPLACE (meta_value, 'old_url','new_url');
それぞれold_url, new_urlは書き換えてください。

2015/04/12

Windowsから送られてきたzipファイルを解凍する(日本語ファイル名が含まれている場合)

概要


Windowsで作成したzipファイルをlinux上で解凍する際、日本語ファイル名やフォルダ名が文字化けする問題が発生。
Windowsサーバでzip圧縮したファイルをLinuxサーバで解凍することが何度かあったので備忘録として記しておきます。

原因


Windowsで作成したzip圧縮のファイル名エンコードはCP932(Shift_JIS)となっているため。
CP932とは: Microsoftコードページ932
Mac,Linuxでのzip圧縮のエンコードはUTF-8。Macでのunzipコマンドでの解凍では文字コードを自動判別してくれるので、問題ないが、linuxでのunzipコマンドでは文字化けしてしまうので、パッチをあてて修正版unzipつくる必要がある。ディストリビューションによって対処方法がまちまちなので、ここではその対処法はとりません。


対処法


use with Gist Search 引数に与えたzipファイルを解凍する際にエンコードを変更するのみ



使用方法

上記perlスクリプトをファイル名unzip-cp932にてパスのあたっている/usr/bin以下に作成
そして実行モードに変更 chmod +x unzip-cp932
unzip-cp932 hoge.zip


注意

CP932(Shift_JIS)以外のエンコードは化けるので注意。
Mac,Linuxで作成したzip圧縮のフォルダやファイル名のエンコードはUTF-8なので、unzip-cp932は使えません。
あくまでWindowsで作成されたzipファイルを解凍する際に使用。


他の例

windowsから送られてきたzipファイルを解凍するとファイル名が大変なことになっている時
上記のunzip -Ocp932のOcp932オプションを使用できず、解凍できない場合があった。
WinからLinuxへzipファイルなど持ってきた時の文字化け対処方法
上記、convmvを使用する場合

2015/04/09

【WatchKit】How to make an animated background Interface in Apple WatchKit


Watchkitで背景画像をアニメーションさせる方法
まずWatchKitではSubview的にinterfaceを重ねられません。
どうするかというと、WKInterfaceGroupを利用します。

WKInterfaceGroupのsetBackgroundImageメソッドにて画像を割り当てて、
その画像でUIImage型の配列を指定(animatedImageWithImages)にてアニメーションが可能となります。

use with Gist Search

2015/04/07

Watchkit Splashアニメーション実装方法

Watchkitにて、アプリケーション起動時のスプラッシュ画面を設定する方法が見当たらないので、 Initial Controllerに設定したクラス内のwillActivateメソッド内でanimatedImageを設定することによって、擬似的に毎回スプラッシュアニメーションさせます。
これで毎回起動時(画面表示時)にアニメーションさせることが可能です。


use with Gist Search

2015/04/06

SwiftでNSUserDefaults の内容を全削除する方法

保存データを初期化したい際に、 NSUserDefaultsを全削除する方法です。
ひとつのキーの値を削除するコードも念の為に追記。


use with Gist Search

Objective-Cの場合 use with Gist Search