Creazy!

WEBエンジニア・ヤガーのテック・ガジェットブログ

Mac 技術情報

ボクのMacBookができるまで:(5.開発環境構築編)

投稿日:


pボクのMacBookができるまで:(5.開発環境構築編)
2008年10月にMacBook(Late2008、unibody)を購入してから毎日肌身離さず持ち歩いていますが、メール・ブラウジング以外にもブログで紹介しているWEBサービスやツールなどの開発にも使用しています。そこで、今更ではありますがボクのMacBookの開発環境構築方法(の基本的なところだけ)をまとめておこうと思います。
ちなみに開発環境以外、基本的な設定などはこれまで4エントリーに書いてきました。

ってか、作業する度にメモってきたものなのですが、一度に書いてしまうと結構な量になりますね…。
というわけで、いちおう目次もつけときます。

それでは、始めます。(例のごとく長いよ)

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/ にアクセスすると、
phpMyAdminログイン画面
ログイン画面がでるので、言語を「日本語」、ユーザ名/パスワードを入れてログインするとDB管理画面が使えます。
phpMyAdmin管理画面

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/ にアクセスすると、
phpPgAdminログイン画面
ログイン画面がでるので、ユーザ名/パスワードを入れてログインするとDB管理画面が使えます。
phpPgAdmin管理画面

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がちょうどいい感じ。
でも、もっと便利な方法とか設定とかあるんだったら知りたいな。
教えて偉い人。

-Mac, 技術情報

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

手書きスケッチの動画を共有できるスケッチキャスト(Sketchcast)が面白い

百式で面白いwebサービスが紹介されていました。 そのままの名前だがSketchcastでは手書き映像+音声を投稿、共有することができる。 via: これからはスケッチキャスティング?手書き映像を投稿 …

ブラウザの見えていない部分もスクロールしてキャプチャーする方法色々(無料のみ)

資料を作る場合なんかに、サイトのキャプチャー画像を張り付けたりする事がありますが、OSの標準機能のスクリーンキャプチャではスクロールしないと見えない部分は一度にキャプチャーする事ができません。 ・Wi …

no image

速報:Twitter API の日付フォーマットが変わったみたい

※(2007/06/21修正)日付フォーマットが元に戻ったようなのでこのエントリーは不正確な情報となりました。 twitter javascript badge のカスタマイズネタを随分と書いています …

公衆無線LANでは最強最安の「WIRELESS GATE ヨドバシオリジナルプラン」をMacで使う場合の接続手順

このブログをチェックしている人はもう加入している人が多いかもしれませんが、2007年12月22日からWIRELESS GATEと、あのヨドバシカメラが組んで有料の公衆無線LANサービスを開始しました。 …

twitterの公式Badgesにオレのハックが採用されてない??

先ほど次のエントリーのネタのためにTwitterのBadgesページを覗いたのですが、何かいきなり見慣れたコードだなぁなんて思ってたら、明らかに以前書いたオレのハックだった。 そのエントリー 第4回: …

スポンサードリンク

スポンサードリンク