Category: Develop

サーバ移転備忘録

通常のレンタルサーバーからVPSサーバへの移転時、データとプロダクトすべてを丸々移行させ成功したときの備忘録
 
※VPSサーバでバーチャルホストで複数サイトを運用していることが前提
 

プロダクト移行

①以前のサーバから必要な Drupal6 のディレクトリすべてをローカルにダウンロード
 
②圧縮し移転先のVPSサーバへアップロード
 
③適切な箇所へ配置
 
④settings.phpの設定
・データベースへの接続先を修正する
# vi {drupal_directory}/sites/default/settings.php
– – – – – – – – – – – – – – – – – – – – – – – – – – – –
$db_url = 'mysqli://{username}:{password}@localhost/{database_name}';
– – – – – – – – – – – – – – – – – – – – – – – – – – – –
 

データ移行

①phpMyAdmin などで移行させたい Drupal6 のSQLをダウンロード
 
②移転先のVPSサーバへアップロード
 
③コマンドラインから指定のデータベースへインポートする
 # mysql -u root -p
 
mysql> use dbname
 
mysql> source /{directory}/data.sql
 

Clean URLs 設定

以前のサーバで URLをパラメーターではなくSEOに有効とされる Clean URLs としたので、その設定を行う。
 
①htaccessの設定
・下記のように、(1)RewriteEngine が On であること(2)RewriteBase のパスがあっていることを確認
# vi {drupal_root}/.htaccess
– – – – – – – – – – – – – – – – – – – – – – – – – – – –
# Various rewrite rules.
<IfModule mod_rewrite.c>
  RewriteEngine on

  RewriteBase /{drupal_directory}

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>

– – – – – – – – – – – – – – – – – – – – – – – – – – – –
 
②Apacheの設定を確認
・.htaccessファイルの許可を与える
# vi /etc/httpd/conf/httpd.conf
– – – – – – – – – – – – – – – – – – – – – – – – – – – –
<Directory "/var/www/html/{drupal_directory}">
    AllowOverride All
</Directory>
– – – – – – – – – – – – – – – – – – – – – – – – – – – –

MySQL data import – CUI

サーバ移転時など、データ移行を行う必要がある。データ量が多すぎてphpMyAdminがタイムアウトになり、ブラウザからインポートできない場合がある。

そういった場合、コマンドラインからインポートすることで実現する。

 

①ログイン
[Linux]
 # mysql -u root -p
Enter password:
 
[Mac]
# /Applications/MAMP/Library/bin/mysql -u root -p
Enter password:
 
②データベース作成

mysql> create database {database_name};

 
③DB指定
mysql> use dbname
Database changed
 
④データファイルを指定してインポート
mysql> source /Users/{myname}/Downloads/data.sql
 
ちなみに
⑤ユーザ作成
mysql> grant all privileges on {database_name}.* to {user_name}@localhost identified by '{password}';

 

[MAMPの場合]
$ cd /Applications/MAMP/Library/bin/
$ ./mysql -u root -p
mysql> SHOW DATABASES;