memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

研究室のWebサーバーをMac Serverに引っ越した

■まえがき(個人的な思い出話なので読み飛ばしてください)

研究室を立ち上げた当時から、慣れないLinuxと格闘しながらサーバー管理してきました。最初は前職で使っていた古いThinkPadでした。その後、博多駅前の中古屋で3000円くらいで購入したFujitsuのデスクトップマシンでした。恐らく企業のレンタル終了品と思われます。そして現在のDellのデスクトップマシン。ごくふつーうのパソコンです。

それでもFedora3からはじめてアップグレードしながら途中からCentOSに切り替えて使ってきました。数日前、嫌なコメントをもらって旧ブログを閉鎖しましたが、決して無駄遣いをしているわけではありません。あのプロジェクタも当然今も使っています!!横道でした。で、研究室全体をMacに移行したのでサーバーもMacにしようかと思っていたところでしたがなかなか時間と予算がとれませんでした。やっと今年、購入したわけです。購入したのはMountain LionのServer版を搭載したMac miniです。今後、しばらく使う予定なのでメモリもHDも増やしました。


■移行作業

細かい作業は忘れたので。。。今頭にあることとをメモとして、あと参考にしたリンクなどをご紹介したいと思います。

ServerといってもどうせMacなんだから変わんないだろうと高をくくっていたのですが。。。最初、少し戸惑いました。ふつうのMacの初期設定を終えたあと、Server.appの初期設定になります。この画面はこれまで見たことがなかったのでどこまで設定していいものか?あとで変更できないんじゃないか?とか頭をよぎりました。結果はとりあえず設定しても後から変えられるので問題ありませんでした。1点、ポイントは、ローカルで使うか、ネットからドメイン名でアクセスするかでホスト名の設定が3択で決まります。僕の場合はインターネットごしに使うため、ドメイン名を入れるタイプで設定しました。(ただ、そのドメイン名を使っているCentOSサーバーが稼働中のためとりあえずローカルで設定して移行が終わってからドメイン名のタイプに切り替えました)

で、以下、その後にやったことです。

■homebrewのインストール
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
brew doctor
brew update

App StoreよりXcodeをインストール

■Sublimetext2をインストール → http://www.sublimetext.com

■CommandLineToolをインストール → https://developer.apple.com/downloads/index.action

■iCloudにログインしてカレンダ、Bookmarkなど同期

brew install cmake nkf を実行。これは特に必須ではありません。

■あと細々したアプリをAppStoreやネットからインストール。すべて無償版です。
Cyberduck.app
Dropbox.app
Evernote.app
GrandPerspective.app
Keyboard Cleaner.app
LibreOffice.app
OnyX.app
Minbox.app
memory scope

Safari拡張をインストール
feedly
evernote cliper
lastpass

sshの鍵ファイルなどを導入

ここまでがクライアントとして作業するのに必要なツール類のインストールでした。

そして、問題がWebコンテンツのインストール。まずApacheの設定。これが一番大変でした。。。設定ファイルの場所がわからず、適当に見つけた設定ファイルをいじっても動かない反映されないなど。。。はまること数日。で、以下のサイトをみつけて救われました。本当に感謝です。

Mountain LionのServer版を一からセットアップした履歴を残してくださっています。特にApacheの設定ファイルのありかなど、この実績を見たあとだと自信をもって作業ができるようになりました。

Link: ため息ばかりのブログ

apacheの設定ファイルは/Library/Server/Web/Config以下のhttpd_server_app.confです。httpd.confではありません。気持ち悪いですね。。。似たようなファイルが/etc/apache2などにもあるので要注意です。

で、DocumentRootは/Library/Server/Web/Data/Sites/Defaultです。どういうわけかhttpd_server_app.confでDocumentRootを指定してもそのディレクトリは参照してくれません。とにかく/Library/Server/Web/Data/Sites/Default以下に設定する必要があります。これを自信を持って理解するまで時間がかかりました。。。逆に言うと、ここが突破できてしまえばあとはCentOSなどとかわりはありません。

ちなみにServer.appでWebサービスをON/OFF切り替えるスイッチがあります。GUIで操作するのであればこれで操作してもいいですし、sudo apachectl startなどとコマンドで入力することもできます。この辺も最初、動きの関係がわからず試行錯誤して時間を費やしました。。。

で、次はコンテンツの移動です。wordpressmoodledokuwikiを使っていました。この移行方法もネットにたくさんありあれこれ試しましたが最後の結果だけ書きます。

wordpressmoodleCentOSのフォルダをtarで固めてそのままMac Serverに持ってきました。エクスポートとか機能がありますが、アップロードしたコンテンツ(画像など)やプラグインなどは引き継がれないようなので、これが一番確実なようです。これについては以下のエントリーに教えてもらいました。こちらも感謝です。

Link: ワードプレスのデータベース移行方法

ちなみにtarで固めてscpなどでコピーする方法もありますが、以下の方法を使うとtarと一緒にコピーもしてくれます。これとても便利でしたのでオススメです。

Link: リモートサーバーに直接ファイルを書き込む

dokuwikiはMac Serverに転送してオーナーを_wwwに書き換えるだけですぐに動きました。さすが軽量サービスはいいですね。

で、wordpressmoodlemysqlを使っています。そこで、mysqlをインストールしたわけですが。。。実はここでもはまりました。macbook airで経験のあったhomebrewでのインストールを最初にやったのですが、Mac Serverを再起動するとmysqldが自動起動しません。ネットのあちこちを探したのですが、~/Library/LaunchAgents以下にplistファイルをおいてlaunchctlでloadすればいいと書いてありました。機能をきちんと理解していないので自信はないのですが、この方法はServerではなく一般のMacの使い方(ログインして使う)ときに使える方法で、Serverのようにログインせずに使用する場合には使えない方法ではないかと思います。StartupItemsに入れたりあちこち試してみましたがもともとhomebrewが一般ユーザーの権限で動作するものなので権限設定がおかしくなりました。

で、上記にもあげた「ため息ばかりのブログ」の方法はhomebrewを使わずMySQLをインストールする方法でした。で、さらに探すと簡単なスクリプトがありました。これを実行するとインストールから設定までやってくれます。ちょっと気持ち悪いのですが(管理者パスワードとかいれますから。。。パスワードを抜こうと思えばできるわけで。。。)使わせてもらいました。

Link: Install MySQL on Mountain Lion

これでMySQLをインストールしてOS起動時にMySQLが起動するようになりました。ちなみに上記のスクリプトを実行したときにデスクトップにPASSWORDファイルができます。MySQLのrootパスワードが自動生成されそれが記されていますので、最初にMySQLにログインするときに使います。

で、MySQLのrootのパスワードを書き換えます(mysql -u root -pでログインしてset password = PASSWORD('新しいパスワード');を実行する)

そして、wordpressmoodle用のdatabaseとユーザを作成します。以下のような感じです。

以下、それぞれ参考にしたサイトから転写しています。

moodle
CREATE DATABASE moodle DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
GRANT ALL ON moodle.* TO 'moodleuser'@'localhost' IDENTIFIED BY '???';

wordpress
create database wpdb;
grant all on wordpressdb.* to 'wpadmin'@'localhost' identified by 'password';

で、移行先のMySQLの準備は終了です。

次に、移行元のMySQLのデータベースをバックアップします。phpmyadminなどを使えばいいのでしょうけどインストールが面倒なのでコマンドでやりました。といってもとても簡単です。CentOSの場合ですが、他も同じかと思います。以下の例は上記のSQLのデータベース名とユーザー名にあわせた例です。

以下、CentOSのターミナルで実行。

moodle
mysqldump -u moodleuser moodle > moodle.sql

wordpress
mysqldump -u wpadmin wpdb > wpdb.sql

そしてMac Sererのターミナルで以下を実行。

moodle
mysql -u moodleuser -p moodle < moodle.sql

wordpress
mysql -u wpadmin -p wpdb < wpdb.sql

たったこれだけです!


あ、そうそう。moodleはmoodledataというフォルダもありましたね。これも当然、tarで固めてMac Serverの方にもってこなければなりません。権限も_wwwにしておきましょう。

そして最後にmoodlewordpressの設定ファイル(php)を新しい環境にあわせて修正します。それぞれ環境設定用のphpは以下でした。恐らく、データベース名もユーザー名も変わらないでしょう。変わるとすればmoodleのdatarootくらいじゃないでしょうか。

moodle
config.php

wordpress
wp-config.php



迷わなかったら、データのコピー時間を除けば2、3時間でできる作業だと思います。書き漏れがいっぱいありそうですが。。。とりあえず移行作業はこんなところです。。。おお2時だ。もう寝なきゃ。誰かがこれで助かったらいいな。。。と思います。まず最初に助かるのは自分でしょうけどね(笑)