2008年10月にMacBook(Late2008、unibody)を購入してから毎日肌身離さず持ち歩いていますが、メール・ブラウジング以外にもブログで紹介しているWEBサービスやツールなどの開発にも使用しています。そこで、今更ではありますがボクのMacBookの開発環境構築方法(の基本的なところだけ)をまとめておこうと思います。
ちなみに開発環境以外、基本的な設定などはこれまで4エントリーに書いてきました。
- ボクのMacBookができるまで:(1.システム環境設定編)
- ボクのMacBookができるまで:(2.基本アプリ10選編)
- ボクのMacBookができるまで:(3.Firefox拡張10選編)
- ボクのMacBookができるまで:(4.動画を楽しむためのアプリ10選編)
ってか、作業する度にメモってきたものなのですが、一度に書いてしまうと結構な量になりますね…。
というわけで、いちおう目次もつけときます。
- 1. 開発サーバ設定
- 1.1 コマンドエイリアスの登録
- 1.2 Xcode Tools のインストール
- 1.3 X Window (X11) のインストール
- 1.4 MacPorts のインストール
- 1.5 MacPorts で Linux でよく使っていたコマンドをインストール
- 1.6 MacPorts で Apache2 をインストール
- 1.7 MacPorts で MySQL5 をインストール
- 1.8 MacPorts で PostgreSQL8.3 をインストール
- 1.9 MacPorts で PHP をインストール
- 1.10 phpMyAdmin のインストール
- 1.11 phpPgAdmin のインストール
- 2. Vimの設定
それでは、始めます。(例のごとく長いよ)
1. 開発サーバ設定
1.1 コマンドエイリアスの登録
ターミナルでの作業が多くなりますからね。
とりあえず ls 関連のショートカットを色々と登録しておきます。
$ vi ~/.bash_profile export LANG=ja_JP.UTF-8 alias ls="ls -vF" alias l="ls" alias ll="ls -l" alias la="ls -la"
とりあえずこのくらい
1.2 Xcode Tools のインストール
OS に付属のインストーラか、ADC から最新の Xcode Tools をダウンロードしてインストールします。
・Apple Developer Connection – Developer Tools and Technologies – Developer Tools
→要ADCアカウント登録
コンパイラとか入ってるので、なるべく新しいバージョンの方が良いかも。
1.3 X Window (X11) のインストール
「Mac OS X Install Disk 1」から X11 アプリケーションをインストールします。
1.4 MacPortsのインストール
・The MacPorts Project — Home
→このサイトからdmgもってきてインストールするだけ
一応アップデートをかけとく
$ sudo port selfupdate
環境変数追加
$ vi ~/.bash_profile export PATH=/opt/local/bin:/opt/local/sbin:$PATH export MANPATH=/opt/local/man:$MANPATH export DISPLAY=:0.0
§
1.5 MacPorts で Linux でよく使っていたコマンドをインストール
$ sudo port install wget $ sudo port install pstree $ sudo port install subversion
wget は src をダウンロードする時などによく使いますが、curl でも代用がききます。
pstree は プロセスをツリー状に表示できるのですが、以外とマイナーなコマンド?
subversion はバージョン管理に使ってますが、今からならむしろ git かな(まだ試してない)。
1.6 MacPorts で Apache2 をインストール
WEBサーバのapacheをインストールします。
$ sudo port install apache2
設定ファイルをサンプルコピーして設置
$ sudo cp /opt/local/apache2/conf/httpd.conf.sample /opt/local/apache2/conf/httpd.conf
SSLモジュールをコピーして設置
$ sudo cp /usr/libexec/apache2/mod_ssl.so /opt/local/apache2/modules/.
Macが起動した時に自動的に起動するようにする。
sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
Apacheの設定ファイルを変更
$ sudo vi /opt/local/apache2/conf/httpd.conf ## DocumentRoot を自分のホームのサイトへ変更 #DocumentRoot "/opt/local/apache2/htdocs" DocumentRoot /Users/yager/Sites ## 合わせてDirectoryディレクティブも変更 #<Directory "/opt/local/apache2/htdocs"> <Directory "/Users/yager/Sites"> # Localなので何でもありあり Options All AllowOverride All Order allow,deny Allow from all </Directory>
§
1.7 MacPorts で MySQL5 をインストール
フリーのDBサーバMySQL(version 5)をインストール
$ sudo port install mysql5 +server
環境変数PATHに追加
$ vi ~/.bash_profile export PATH=/opt/local/lib/mysql5/bin:/opt/local/bin:/opt/local/sbin:$PATH
設定ファイルをコピーして設置
$ sudo cp /opt/local/share/mysql5/mysql/my-medium.cnf /opt/local/etc/mysql5/my.cnf
必要なディレクトリを作る
$ sudo mkdir -p /opt/local/var/db/mysql5 $ sudo chown -R mysql:mysql /opt/local/var/db/mysql5 $ sudo mkdir -p /opt/local/var/run/mysql5 $ sudo chown -R mysql:mysql /opt/local/var/run/mysql5
データベースを初期化
$ sudo -u mysql /opt/local/bin/mysql_install_db5
自動起動に登録
$ sudo launchctl load -w /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist
手動起動する場合のコマンド
$ sudo /opt/local/lib/mysql5/bin/mysqld_safe &
rootユーザーのパスワード設定
$ sudo /opt/local/lib/mysql5/bin/mysqladmin -u root password 'new-password'
ログインしてデータベース作成
$ mysql5 -u root -p mysql> create database test character set utf8;
mysql ユーザ作成
mysql> connect test; mysql> grant all on *.* to mysql@'%' identified by 'mysql' with grant option; mysql> grant all on *.* to mysql@localhost identified by 'mysql' with grant option;
テストテーブルつくってみる
mysql> create table users ( id integer NOT NULL auto_increment , name text not null , password text not null , description text , primary key (id) );
シャットダウンの方法
$ sudo /opt/local/bin/mysqladmin5 -u root -p shutdown
§
1.8 MacPorts で PostgreSQL8.3 をインストール
MySQLとならびよく使うフリーのDBサーバPostgreSQLをインストール
$ sudo port install postgresql83-server
環境変数PATHに追加
$ vi ~/.bash_profile export PATH=/opt/local/lib/postgresql83/bin:/opt/local/lib/mysql5/bin:/opt/local/bin:/opt/local/sbin:$PATH
必要なディレクトリを用意して初期化
$ sudo mkdir -p /opt/local/var/db/postgresql83/defaultdb $ sudo chown postgres /opt/local/var/db/postgresql83/defaultdb $ sudo -u postgres initdb -D /opt/local/var/db/postgresql83/defaultdb
自動起動の設定
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.postgresql83-server.plist
手動起動の方法
$ sudo -u postgres pg_ctl -D /opt/local/var/db/postgresql83/defaultdb -o "-i" -m immediate start
DB初期化
$ sudo -u postgres createdb -E UTF-8 test
postgres ユーザでログインして、権限設定
$ psql test -U postgres test=# alter user postgres with password '******';
テストテーブルつくってみる
test=# create table users ( id serial NOT NULL , name text not null , password text not null , description text , primary key (id) );
手動停止の方法
$ sudo -u postgres pg_ctl -D /opt/local/var/db/postgresql83/defaultdb stop
§
1.9 MacPorts で PHP をインストール
さて、もろもろインストールしてきましたが最終的にはPHPのインストールまでの序章だったといえるかもw
PHP5もMacPortsで色々オプション付きでインストールします。
$ sudo port install php5 +apache2 +mysql5 +postgresql83 +pear +curl +gd +sqlite +readline +tidy
PHPモジュールをapache2に読み込ませます
$ cd /opt/local/apache2/modules $ sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so
PHPの設定ファイルをサンプルからコピーして作成
$ cd /opt/local/etc $ sudo cp php.ini-recommended php.ini
Apache2の設定ファイルを変更
$ sudo vi /opt/local/apache2/conf/httpd.conf ## PHPの設定ファイルをインクルードする Include conf/extras-conf/mod_php.conf
Apache2の再起動
$ sudo /opt/local/apache2/bin/apachectl configtest Syntax OK $ sudo /opt/local/apache2/bin/apachectl restart
phpinfoで動作確認
$ echo "<?php phpinfo(); ?>"> /Users/yager/Sites/phpinfo.php
http://localhost/phpinfo.php にアクセスしてPHPのインストール情報がでてくればOK。
1.10 phpMyAdmin のインストール
MySQLをブラウザから操作できるアプリケーション。
インストールというか、PHPパッケージをおくだけ。
まずは、下記サイトから最新版のソースをもってきます。
・phpMyAdmin
圧縮ファイルを展開して、~/Sites/phpMyAdmin/ として設置。
設定ファイルの変更
$ cp ~/Sites/phpMyAdmin/config.sample.inc.php ~/Sites/phpMyAdmin/config.inc.php $ vi ~/Sites/phpMyAdmin/config.inc.php
変更内容
$cfg['blowfish_secret'] = '適当な文字列に変更'; $cfg['Servers'][$i]['auth_type'] = 'cookie'; $cfg['Servers'][$i]['host'] = 'localhost'; // ローカルならlocalhostでOK $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['extension'] = 'mysql'; $cfg['Servers'][$i]['bs_garbage_threshold'] = 50; $cfg['Servers'][$i]['bs_repository_threshold'] = '32M'; $cfg['Servers'][$i]['bs_temp_blob_timeout'] = 600; $cfg['Servers'][$i]['bs_temp_log_threshold'] = '32M';
これで設定はおしまい、http://localhost/phpMyAdmin/ にアクセスすると、
ログイン画面がでるので、言語を「日本語」、ユーザ名/パスワードを入れてログインするとDB管理画面が使えます。
1.11 phpPgAdmin のインストール
PostgreSQLをブラウザから操作できるアプリケーション。
インストールというか、PHPパッケージをおくだけ。
まずは、下記サイトから最新版のソースをもってきます。
・phpPgAdmin :: Web Based PostgreSQL Administration Tool
圧縮ファイルを展開して、~/Sites/phpPgAdmin/ として設置。
設定ファイルの変更
$ vi ~/Sites/phpPgAdmin/conf/config.inc.php
変更内容
$conf['servers'][0]['desc'] = 'localhost'; $conf['servers'][0]['host'] = 'localhost'; $conf['servers'][0]['port'] = 5432; $conf['servers'][0]['sslmode'] = 'allow'; $conf['servers'][0]['defaultdb'] = 'test'; $conf['servers'][0]['pg_dump_path'] = '/opt/local/lib/postgresql83/bin/pg_dump'; // PATH合わす $conf['servers'][0]['pg_dumpall_path'] = '/opt/local/lib/postgresql83/bin/pg_dumpall'; // PATH合わす $conf['servers'][0]['slony_support'] = false; $conf['servers'][0]['slony_sql'] = '/usr/share/pgsql'; (snip) $conf['extra_login_security'] = false; // trueだとpostgreユーザでログインできない
これで設定はおしまい、http://localhost/phpPgAdmin/ にアクセスすると、
ログイン画面がでるので、ユーザ名/パスワードを入れてログインするとDB管理画面が使えます。
2. Vimの設定
そろそろ Vi でコード書けるようになりたいなぁと思って Vim 入れる事にしました。
が、勉強し初めなのであんまり詳しくないっす。
2.1 MacPorts で Vim を最新版に
$ sudo port install vim +cocoa +cscope +huge +kaoriya +multibyte +ruby
§
2.2 MacVim のインストール
Mac OS 用のGUI版Vimが合ったので試してみる事にしました。
macvim – Google Code
$ sudo port install macvim +cscope +kaoriya +python +ruby
§
2.3 .vimrc の設定
"------------------------------------------------------------ " search "------------------------------------------------------------ set ignorecase " 大文字小文字区別なし set smartcase " 検索に大文字が含まれていたら大文字小文字区別あり set wrapscan " 最後にいったら最初に戻る set incsearch " インクリメンタルサーチ禁止 "------------------------------------------------------------ " tab "------------------------------------------------------------ set expandtab " タブをスペースに置き換え set tabstop=4 " タブ幅 set shiftwidth=4 " autoindentなどの時のタブ幅 set softtabstop=4 " タブキーで入力したときのタブ幅 "------------------------------------------------------------ " dispay "------------------------------------------------------------ set number " 行番号表示 set ruler " ルーラー表示 syntax on " シンタックスハイライト set hlsearch " 検索結果文字列のハイライト set laststatus=2 " ステータス常に表示 set statusline=%<%f\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%l,%c%V%8P colorscheme default " カラースキーム set guifont=Osaka-Mono:h14 " フォント set antialias " アンチエイリアシング set listchars="tab:>-,eol:" " 非表示文字のスタイル タブを>---、行末は何も表示しない set list " 全角スペースをハイライト highlight ZenkakuSpace cterm=underline ctermfg=lightgray guifg=rightgray au BufRead,BufNew * match ZenkakuSpace / / set noautoindent " オートインデント "------------------------------------------------------------ " 文字コードの自動認識 "------------------------------------------------------------ if &encoding !=# 'utf-8' set encoding=japan set fileencoding=japan endif if has('iconv') let s:enc_euc = 'euc-jp' let s:enc_jis = 'iso-2022-jp' " iconvがeucJP-msに対応しているかをチェック if iconv("¥x87¥x64¥x87¥x6a", 'cp932', 'eucjp-ms') ==# "¥xad¥xc5¥xad¥xcb" let s:enc_euc = 'eucjp-ms' let s:enc_jis = 'iso-2022-jp-3' " iconvがJISX0213に対応しているかをチェック elseif iconv("¥x87¥x64¥x87¥x6a", 'cp932', 'euc-jisx0213') ==# "¥xad¥xc5¥xad¥xcb" let s:enc_euc = 'euc-jisx0213' let s:enc_jis = 'iso-2022-jp-3' endif " fileencodingsを構築 if &encoding ==# 'utf-8' let s:fileencodings_default = &fileencodings let &fileencodings = s:enc_jis .','. s:enc_euc .',cp932' let &fileencodings = &fileencodings .','. s:fileencodings_default unlet s:fileencodings_default else let &fileencodings = &fileencodings .','. s:enc_jis set fileencodings+=utf-8,ucs-2le,ucs-2 if &encoding =~# '^¥(euc-jp¥|euc-jisx0213¥|eucjp-ms¥)$' set fileencodings+=cp932 set fileencodings-=euc-jp set fileencodings-=euc-jisx0213 set fileencodings-=eucjp-ms let &encoding = s:enc_euc let &fileencoding = s:enc_euc else let &fileencodings = &fileencodings .','. s:enc_euc endif endif " 定数を処分 unlet s:enc_euc unlet s:enc_jis endif " 日本語を含まない場合は fileencoding に encoding を使うようにする if has('autocmd') function! AU_ReCheck_FENC() if &fileencoding =~# 'iso-2022-jp' && search("[^¥x01-¥x7e]", 'n') == 0 let &fileencoding=&encoding endif endfunction autocmd BufReadPost * call AU_ReCheck_FENC() endif " 改行コードの自動認識 set fileformats=unix,dos,mac " □とか○の文字があってもカーソル位置がずれないようにする if exists('&ambiwidth') set ambiwidth=double endif
§
まとめ
長すぎですよね。こういうのはWIki形式で公開すべきでしたw
ま、やってしまったものはしょうがないww
Macに手っ取り早くWEB/DB構成を作ろうと思ったらMAMPの方が圧倒的にラクチンなんだけど、開発していると色々ライブラリ追加したり環境をいじったりしたかったりするので、MacPortsがちょうどいい感じ。
でも、もっと便利な方法とか設定とかあるんだったら知りたいな。
教えて偉い人。