* 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 ぼくぴ 新規作成