Mac PortでApache/PostgreSQL/MySQL/PHPを使えるように設定する

(Last Updated On: 2018年8月14日)

OSX標準のApache/PHPでPostgreSQLやMySQLを使えるようにしても良いのですが、いろいろカスタマイズしたい場合はMacPortsの方が便利だったりします。インストール手順が古かったりするブログもあったので(手順が抜けているかも知れませんが)最初から書きます。

MacPortsのインストール

MacPortsをインストールにはXcode (OSXの開発環境)が必要です。DVDに付属しているXcodeより、Webサイトから最新版のXcodeをダウンロードした方が良いでしょう。

http://developer.apple.com/technologies/tools/xcode.html

MacPortsはパッケージまたはソースからインストールできます。

http://www.macports.org/install.php

ソースからインストール必要性はあまりないので、「Mac OS X Package (.pkg) Installer」のセクションから自分の環境(Snow Leopard, Leopard, Tiger)に合ったパッケージをインストールすれば準備完了です。

Portsパッケージのインストール

MacPortsのパッケージはportコマンドでソースからインストールします。今回はApache2, PHP5, PostgreSQL 8.4, mysql 5をインストールします。

sudo port install apache2 php5-* postgresql84 mysql5

執筆時点でのPHP5パッケージはPHP 5.3でした。PHP 5.2を利用したい場合はphp52-*を利用します。このコマンドを実行するとphp-gtkなどのGUIアプリケーションもビルド&インストールします。非常に沢山のパッケージをインストールしてしまうので、少なくしたい場合はphp-gtk、php-qt、php-cairoなどのパッケージを含めないようにします。

PHPモジュールは複数ロードできますが、Zendエンジンのモジュールは一度に一つしかロードできないので注意してください。
例: php-apc, php-apd, php-eaccelerator, php-xdebugなど

apacheの起動

Apacheを自動起動したい場合は以下のコマンドを実行します。

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

Apacheを起動・停止するエイリアスを定義しておくと便利です。

alias mysqlstart=’sudo /opt/local/bin/apachectl start’
alias mysqlstop=’/opt/local/bin/apachectl stop’

postgresqlの起動

まずデータベースを初期化しなければならないので初期化します。私は/var/pgsqlをデータディレクトリにしました。

sudo mkdir /var/pgsql && chown yohgaki:yohgaki /var/pgsql

データベースをutf8エンコーディングで初期化します。MacportsのPostgreSQLのコマンドはバージョン毎に分けてインストールされています。

/opt/local/lib/postgresql84/bin/initdb -E utf8 –no-locale .

MySQLを自動的に起動したい場合は、以下のコマンドを実行します。

/Library/LaunchDaemons/org.macports.postgresql84-server.plist

以下のエイリアスを登録していると便利です。

pgsqlstart=’/opt/local/lib/postgresql84/bin/pg_ctl start -D /var/pgsql -l /var/pgsql/pgsql.log’
pgsqlstop=’/opt/local/lib/postgresql84/bin/pg_ctl stop -D /var/pgsql -m fast’
psql=’/opt/local/lib/postgresql84/bin/psql’

mysqlの起動

MySQLを自動的に起動したい場合は、以下のコマンドを実行します。

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

以下のエイリアスを登録していると便利です。

alias mysqlstart=’sudo /opt/local/bin/mysqld_safe5 &’
alias mysqlstop=’/opt/local/bin/mysqladmin5 -u root -p shutdown’

投稿者: yohgaki