Creazy!

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

Mac 技術情報

Snow LeopardなMacBookにMacPortsで開発環境入れ直し(Apache2/PHP5/MySQL5/PostgreSQL8.3)

投稿日:


以前、Leopard(Mac OSX1.5)だった頃にMacPortsで開発環境構築する手順は書いておいたんだけど、Snow Leopardにアップグレードにして同じ事しようと思ったらオプションの指定などそのままではうまくいかないところが結構あったので、改めて手順をメモっておこうと思います。
変化のないところは一部省略しちゃっているところもあるかもしれません。以前書いたエントリーも参考にしてください。
ボクのMacBookができるまで:(5.開発環境構築編) [C!]
Xcode、X11のインストールは終わっている前提で始めます。

MacPortsの再インストール

MacPorts自体をキレイに入れなおさないとうまくいきません。
まずはここからスタートです
@see http://trac.macports.org/wiki/FAQ#uninstall
アンインストールします。

$ sudo port -f uninstall installed

ディレクトリもキレイにします。

$ sudo rm -rf /opt/local \
/Applications/MacPorts \
/Applications/DarwinPorts \
/Library/Tcl/macports1.0 \
/Library/Tcl/darwinports1.0 \
/Library/LaunchDaemons/org.macports.* \
/Library/StartupItems/DarwinPortsStartup \
/Library/Receipts/MacPorts*.pkg \
/Library/Receipts/DarwinPorts*.pkg \
~/.macports

@see http://www.macports.org/install.php
インストーラーを落としてきて起動するだけ。
一応UPDATE

$ sudo port -v selfupdate

よく使うコマンド

$ sudo port install wget pstree subversion

→失敗。PerlがないといわれているのでPerlを先にいれてみる

$ sudo port install perl5

あらためて

$ sudo port install wget pstree subversion libxml libxml2

§

Apache2の再インストール

インストール

$ sudo port install apache2

自動起動に入れる場合

$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist

設定ファイルを編集して、ホームのサイトをDocumentRootにする

$ 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>

設定を反映させるために再起動

$ sudo /opt/local/apache2/bin/apachectl configtest
$ sudo /opt/local/apache2/bin/apachectl graceful

§

MySQL5の再インストール

インストール

$ sudo port install mysql5 mysql5-server

自動起動する場合はこちら

$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist

DB初期化してみる

$ sudo -u mysql mysql_install_db5

パスワードを設定する

$ /opt/local/lib/mysql5/bin/mysqladmin -u root password 'パスワード'
$ /opt/local/lib/mysql5/bin/mysqladmin -u root -h localhost password 'パスワード' -p

ログイン

$ 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;

§

PostgreSQL8.3の再インストール

インストール

$ sudo port install postgresql83 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

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)
);

§

PHP5のインストール

モジュールのインストール方法が大分変わったので注意。
PHP5本体インストール

$ sudo port install php5 +apache2 +pear

設定ファイルをコピー(いらないかも)

$ sudo cp /opt/local/etc/php5/php.ini-development /opt/local/etc/php5/php.ini

Apache2用にモジュール作成

$ cd /opt/local/apache2/modules
$ sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so

追加モジュールをインストール(php5-*っていう形になったんだね)

sudo port install php5-mysql php5-postgresql php5-sqlite php5-mbstring php5-curl php5-gd php5-exif php5-tidy php5-mcrypt php5-zip

§

まとめ

色んなタイミングで、やり直しながらメモったものなのでどっか間違えてるかも。
気づいた方いたら教えてくださいませ。
ちなみに、普段はVirtualBoxにCentOS立てた環境使っているので、上記MacPortsで作成したアプリケーションは自動起動にしていません。
使うときだけ手動起動する感じなんですが、起動コマンドがメンドイのでエイリアス作ってます。

$ vi ~/.bash_profile

追記した内容

alias apache_start="sudo /opt/local/apache2/bin/apachectl start"
alias apache_stop="sudo /opt/local/apache2/bin/apachectl stop"
alias postgres_start="sudo -u postgres pg_ctl -D /opt/local/var/db/postgresql83/defaultdb start"
alias postgres_stop="sudo -u postgres pg_ctl -D /opt/local/var/db/postgresql83/defaultdb stop"
alias mysql_start="sudo /opt/local/lib/mysql5/bin/mysqld_safe &"
alias mysql_stop="sudo /opt/local/bin/mysqladmin5 -u root -p shutdown"

こうしとくと、使いたいときに、「apache_start」とか叩けばOKですので。

-Mac, 技術情報

執筆者:

関連記事

picplzが7月3日で全サービス終了→一括ダウンロード方法など

・picplz shutting down • blog plz Androidスマートフォンで愛用していた写真共有アプリ「picplz」がなんと後1ヶ月ほどでサービス終了になることが突如発表されまし …

no image

楽天、楽天トラベルAPIを公開 – ついでにトラベルAPIまとめ

本日、楽天ウェブサービスより楽天トラベルに関する3つのAPI追加提供を開始しました。 【楽天ウェブサービス】RAKUTEN WEBSERVICE 楽天が楽天市場関連の商品APIに加え、楽天トラベルのA …

これまで公開してきたいくつかの個人サービスの状況報告と閉鎖予告

ブログの更新頻度も少なくなり、自前WEBサービスのメンテナンスもほとんどしていない状態が続いておりますが、ここで今まで公開してきたいくつかのサービスの閉鎖をお知らせすることにしました。きっかけは、もう …

祝『攻殻機動隊ARISE』新シリーズ制作記念で『攻殻機動隊S.A.C』がYouTubeで全26話無料配信中

ついにベールを脱いだ攻殻シリーズの最新作『攻殻機動隊ARISE -GHOST IN THE SHELL-』ですが、その制作記念としてついさきほどから、1stシリーズの『攻殻機動隊 STAND ALON …

twitter のロゴに似ているフリーフォント「Pico-alphabet」

twignature で使うために twitter っぽいフォントを探していて見付けたのがこれです。 ポップでキュートな『ピコ-アルファベット(ブラック&ホワイト)』です。ベタ打ちでもあっと言う間にロ …

スポンサードリンク

スポンサードリンク