* Vine2.6からUbuntu7.10へ移行 [#o61ec67c]
Vine Linux 2.6で稼動しているサーバの OS を、Ubuntu Linux 7.10 Desuktop Edition へ置き換える作業のメモです。備忘録として書いておきます。何か参考になる内容があれば幸いです。

** 現行環境のバックアップ [#he1ca6fb]
*** システム全体 [#oea3c9da]
dump コマンドを用いて、システム全体のバックアップを取得します。ログファイルなど、不要なファイルは予め消しておくと、dump サイズが小さくなって良いです。

詳しいコマンドの使い方は、「[[Linuxをシステムバックアップ]]」をご覧ください。

dump が取得できたら、他の PC など適当な場所に移して、保存しておきます。

*** 個々のバックアップ [#o01c9472]
dump によるバックアップと重複しますが、手軽に使えるバックアップとして、必要なディレクトリを tar アーカイブ化しておきます。うちは、Web コンテンツ用のディレクトリを対象にしました。また、mysql のデータは、mysqldump を用いて SQL 出力しておきます。これで、移行先の RDBMS の種類による制約は、ほぼないでしょう。

** Ubuntu のインストール [#q271cc76]
公式サイトから iso イメージをダウンロードして、CD を焼きます。CD 起動するとメニューが出てくるので、新規インストールを選ぶと、デスクトップ画面が現れます。そこで、デスクトップ上にある Install アイコンをダブルクリックすると、インストールが始まります。あとは、画面の指示に従い、インストールを進めます。Ubuntu のインストールはとても簡単なので、特に迷うところはありません。特筆するなら、Ubuntu では root ユーザーを設定しないことぐらいでしょうか。

** アーカイブの展開 [#sef7dd4d]
以前の環境の tar アーカイブを展開します。このさい、パーミッションを維持したまま展開するよう、-p オプションを利用します。
 $ tar xfp homepage.tar
|~オプション|~意味|
|x|展開|
|f|ファイル指定|
|p|パーミッションを維持|
- v オプションは処理経過を表示するオプションですが、処理負荷が増すので、利用しないほうが良いです。

** パッケージのインストール [#f0610bd8]
必要なパッケージをインストールしました。
- bind9
- apache2
- mysql-server, mysql-client
- samba
- ssh
- php5
- ruby1.8

パッケージは、"apt-cache search" を用いて探し、"apt-get install" でインストールします。

 $ sudo apt-cache search apache
 (パッケージ一覧が出力...)
 $ sudo apt-get install apache2

** bind9 の設定 [#m8d6530c]
これは、以前と変わらないので、特に問題ないです。ただ、設定のしかたを思い出すまで、結構時間がかかりました。滅多にいじらないものなので...

外向けの A レコードに、プライベートアドレス書いてました。はずかしー(//−−//)
** apache2 の設定[#l2c95062]
従来の httpd.conf に一括して書く方法とは、異なっており、少し面食らいました。各サイトごとの設定は、sites-available ディレクトリ内で個別に書き込みます。
 $ cd /etc/apache/sites-available
 $ cp default main_site

ファイル内を適宜修正します。うちは、★印の箇所を変更しました。
 ServerName omoshiro-joho.com ★
 ServerAdmin webmaster@localhost
 
 DocumentRoot /var/www/ ★
 <Directory />
     Options FollowSymLinks
     AllowOverride None
 </Directory>
 <Directory /var/www/> ★
     Options Indexes FollowSymLinks MultiViews +ExecCGI ★
     AllowOverride ALL ★
     Order allow,deny
     allow from all
     # This directive allows us to have apache2's default start page
     # in /apache2-default/, but still have / go to the right place
     #RedirectMatch ^/$ /apache2-default/
 </Directory>

その後は、default を無効にして、新しく追加した main_site を有効にします。
 $ sudo a2dissite default
 $ sudo a2ensite main_site

サブドメインを作りたい場合は、同様の手順で行ないます。
 $ cd /etc/apache2/sites-available
 $ sudo cp default sub_site
 (sub_siteを編集)
 $ sudo a2ensite sub_site

あとは、下記のコマンドで apache2 が無事起動すれば大丈夫です。
 $ sudo /etc/init.d/apache2 start

参考ページ
- [[Ubuntu/apache2:http://tobysoft.net/wiki/index.php?Ubuntu%2Fapache2]]
- [[Ubuntu/apache2 - TOBY SOFT Wiki:http://tobysoft.net/wiki/index.php?Ubuntu%2Fapache2]]

** pukiwki の設定 [#j247e692]
pukiwiki いろいろ不具合がでました。
*** 内容が表示されない [#u58e1dbe]
以下のようなエラーメッセージが出て、内容が表示されません。
 Headers already sent at /path/to/pkwk/lib/html.php line 425

調べたところ、下記のページを見つけました。
- [[BugTrack2/20:http://pukiwiki.sourceforge.jp/dev/?BugTrack2%2F20]]

手順にならい、lib/html.php 内にある die_message を die に変更しました。すると、エラーメッセージが以下のように変わりました。
 Cannot Open counter/...

これを見て、ファイルのオーナーが違うことに気づきました。tar で p オプション付きで展開したため、パーミッションは正しかったのですが、ファイルのオーナーが違っていたので、HTTP サーバのプロセスから正しく書き込みができなかったようです。

少しややこしいのですが、別のエラーに起因して、die_message() のエラーが現れる、ということみたいですね。本来のエラー要因を見えなくしてしまうので、ちょっと性質が悪いです。

*** &aname が直接表示される [#a8d45d48]
見出し行の横にあるアンカーが、展開されずに直接表示されます。以下のような形です。
 &aname(vf801b51,super,full)\{};

幸い、別のバージョンの pukiwiki では正常に表示していたため、違いを調べてみました。すると、&aname プラグインの呼び出し文字列を記述しているところ(lib/convert_html.php)が、以下のように異なっていました。

|1.4.4_php5|" &aname($id,super,full)\{$_symbol_anchor};";|
|1.4.5_1|' &aname('.$id.',super,full){'.$_symbol_anchor.'};';|

実際、あいだに"\"を入れて&anameを書くと、展開されないので、これが原因のようです。ただ、単純に"\"を取り除くと、後続の"$"と結合してしまうのか、正しく動きません。というわけで、素直に下段(1.4.5_1)の形式に直したら、正しく動きました。

** .htaccess で 500 エラー [#r656a29d]
原因はご察しのとおり、apache のモジュール不足です。rewiteEngine が使えない状態でしたので、使えるようにしました。モジュール自体は標準で入っているはずなので、わざわざ探してこなくても良いです。

 $ sudo a2enmod rewrite

** WordPress [#lefb3c55]
いろいろ怒られました。
*** php5-mysql [#b2c44b6c]
 Your PHP installation appears to be missing the MySQL
  which is required for WordPress.

おまえの PHP は MySQL に繋がらないよ、というメッセージです。php5-mysql パッケージをインストールして、解決です。

 $ sudo apt-get install php5-mysql

*** mysqlの文字コード [#od58cc05]
 Invalid argument supplied for foreach() 
 in /var/www/prof/wp/wp-includes/capabilities.php
現象としては、エラーメッセージが出たり、管理画面にログインできなかったり、盛大に文字化けしたりと、様々です。

原因として、mysqlから読んだ文字コードが不正な状態となっており、その結果、ところどころで不具合が発生しています。mysql の文字コード指定を見ると、見事に latin になっていました。インストール時に utf-8 に指定した気がしたけど、それはテスト環境のみだったかもしれません。mysql での文字コード指定方法は「[[MySQL関連#tacb652a]]」をご覧ください。

MySQL の dump 内容自体は UTF-8 になっているので、MySQL の文字コード設定さえ修正すれば、不正な文字コード変換がなくなり、WordPressの内容が正しく表示されました。

** MySQL の設定 [#qd9bb5f6]
これは、うちの特殊ケースだと思いますが、歴史的経緯(WordPressでUTF-8対応必須)から EUC-JP で登録しているデータベースと、UTF-8 で登録しているデータベースがあります。諸々不都合があるので、この機会に統合しました。

今回は UTF-8 に統合するので、EUC-JP のデータベースに対応する dump データの文字コードを変換します。あとは、それをデータベースに取り込みます。また、呼び出し元のアプリケーションの文字コードを変更することも、忘れずに行ないます。

** Ruby のインストール [#ya11d8f4]
何も考えずに、最新版の Ruby1.9 を入れたら、どうも chomp が正しく動作していません。よく考えたら、奇数バージョンでしたので、1.9 を削除して、安定版である 1.8 をインストールしました。すると、無事問題は解決しました。

---- 
** 履歴 [#k7a21480]
- 2008/07/05 ぼくぴ 新規作成

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS