Ubuntu 14.04 から Ubuntu 16.04 への Drupal サイト移行メモ

Drupalサイトの移行メモです。

 

旧環境 @ linode

Ubuntu 14.04, Apache, PHP 5, SSLなし, APC, Memcached, varnish

新環境 @ ovh

Ubuntu 16.04, Nginx, SSL, PHP 7(APCu / OPCache), Redis

1 dumpファイル取得と転送
$ cd /var/www/html/sitename
エイリアス文字列の作成
$ ls -1 /var/www/html | cut -d'.' -f1 | sed -e 's/^/@/' | tr '\n' ',' | tee h.txt
エイリアスを使用してバックアップ sudo for some database
$ drush @alias,@alias ard
ダンプファイルを移行先へscpでコピー
$ scp `find ~/drush-backups/ -mmin -120 -type f | xargs` newserver.com:/tmp
$ scp /path/to/db_sitename.20160724_080448.tar.gz username@newserver.com:/tmp
設定ファイル等
/etc/nginx/sites-available/*
/etc/drush/allsites.aliases.drushrc.php
/etc/nginx/snippets/*
/home/username
$ crontab -e
 
2   dumpのリストア
$  sudo drush archive-restore /tmp/db_filename.tar.gz --destination=./sitename --db-url=mysql://dp_db_admin:dp_db_password@localhost/databasename --db-su=root --db-su-pw=dbrootpassword
モジュールの無効化、有効化
$ cd ./sitename
$ sudo drush -y dis apc apc_status varnish memcache memcache_admin
$ sudo drush -y en redis entitycache

設定削除: Reverse Proxy, APC, Memcached
設定追加: Redis

$ cd sites/all/libraries && sudo git clone https://github.com/nrk/predis.git && sudo chown -R www-data:www-data predis && cd -
$ sudo vim sites/default/settings.php 
/**
 * Redis
 */
$conf['redis_client_interface'] = 'Predis';
$conf['lock_inc']               = 'sites/all/modules/redis/redis.lock.inc';
$conf['path_inc']               = 'sites/all/modules/redis/redis.path.inc';
$conf['cache_backends'][]       = 'sites/all/modules/redis/redis.autoload.inc';
$conf['cache_default_class']    = 'Redis_Cache';
httpsを使用するので、$base_url を設定しないこと。
3   Nginxにポート番号80でサイト追加
$ sudo vim /etc/nginx/sites-available/sitename
$ cd ../sites-enabled
$ sudo ln -s /etc/nginx/sites-available/sitename
$ sudo nginx -t && sudo nginx -s reload
4 DNS A Record IPアドレス変更、アドレス反映確認
$ nslookup sitename.com 8.8.8.8
5
$ sudo mv /var/www/html/sitename /tmp/
 
6 動作確認、status確認
7   接続確認後、証明書取得。同一ドメインは週に20個の制限あり。
$ sudo letsencrypt certonly -a webroot --webroot-path=/var/www/html/example.com -d example.com      
SSL設定
$ sudo vim /etc/nginx/snippets/ssl-example.com.conf ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; 
SSL設定、80番から443転送設定。
$ sudo vim /etc/nginx/sites-available/sitename
$ sudo nginx -t && sudo nginx -s reload
8 動作確認: 楽天広告や忍者AdMaxなどSSL未対応コンテンツは表示されない。
9   バックアップ
$ cd /var/www/html/sitename
$ drush archive-dump
10 46GB
$ sudo du -hs /var/log /var/lib/mysql /var/www/html
7G	/var/log
19G	/var/lib/mysql
20G	/var/www/html
使用メモリ 5GB〜8GB
$ free -h
             total       used       free     shared    buffers     cached
Mem:          7.8G       7.2G       635M        92M       172M       1.4G
-/+ buffers/cache:       5.6G       2.2G
Swap:         511M       114M       397M
34GB
$ sudo du -hs /var/log /var/lib/mysql /var/www/html
65M	/var/log
17G	/var/lib/mysql
17G	/var/www/html
使用メモリ 1GB程度
$ free -h
              total        used        free      shared  buff/cache   available
Mem:            11G        1.2G        607M        175M        9.6G        9.7G
Swap:            0B          0B          0B