- 追加された行はこの色です。
- 削除された行はこの色です。
* 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 apache
$ sudo apt-cache search apache
(パッケージ一覧が出力...)
$ sudo apt-get install apache2
** [#l2c95062]
** 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 - 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 ぼくぴ 新規作成