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

Nid: 757

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ファイル取得
$ for website in `ls -d /var/www/html/*/ | xargs -l basename` ; do cd /var/www/html/$website; sudo sh -c "sudo drush archive-dump --destination=/var/www/html/db_${PWD##*/}.`date +%Y%m%d_%H%M%S`.tar.gz"; done

設定ファイル等

/etc/nginx/sites-available/*
/etc/drush/allsites.aliases.drushrc.php
/etc/nginx/snippets/*
/home/username
$ crontab -e
 
2   dumpファイル、設定ファイル、homeディレクトリ等をコピー
$ sudo rsync -PaAXv -e ssh pericles@old.octaviadata.com:/var/www/html/db_* /var/www/html
$ sudo rsync -aAXv pericles@old.octaviadata.com:/etc/nginx/sites-available/ /etc/nginx/sites-available/
$ sudo rsync -aAXv pericles@old.octaviadata.com:/etc/drush/allsites.aliases.drushrc.php /etc/drush/allsites.aliases.drushrc.php
$ sudo rsync -aAXv pericles@old.octaviadata.com:/etc/nginx/snippets/ /etc/nginx/snippets
$ rsync -aAXv --exclude={".ssh/*",".cache/*"} old.octaviadata.com:/home/pericles/ /home/pericles/

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