F.Ko-Jiの「一秒後は未来」

Mac OS X(Snow Leopard)のMacPortsでApache2, PHP5, MySQL5をインストールし直した

Mac OSをSnow Leopardにした後にMacPortsのMigrationをやっておらず、そのせいで一部のライブラリがうまくインストールできなかったので、MigrationをおこなってApacheやらPHPやらをインストールし直しました。

※ Migrationについては上記リンク先を参照のこと。

さて、MacPortsでのインストールは以前と同じく sudo port install でできますが、以前インストールした時とは少し違ってたのでメモしておきます。

Apacheのインストール

まずApacheをインストールします。

% sudo port install apache2

インストールに成功すると最後に起動コマンドが表示されます。

% sudo port load apache2

以前は自動起動するには plist に追加するという手順がありましたが、最近は上記のコマンドを実行するだけでいいみたいです。

(追記) ・・・と思ったらやっぱり必要でした。

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

を実行すると次回から自動起動されます。

Apacheの設定ファイルは従来通り /opt/local/apache2/conf の下ですが、その中にあった extras-conf ディレクトリは extra に名前が変わってたりします。

MySQLのインストール

次に MySQL のインストールを。

% sudo port install mysql5-server

こちらもインストールに成功すると load 方法が表示されます。

% sudo port load mysql5-server

以前から MySQL を利用しているならこれで以前のデータベースが利用できるようになっているはずです。

初めてインストールした場合は「macportsでMac Snow LeopardにApache2 + PHP5 + MySQL5 を入れる – 銀の人のメモ帳」あたりの手順をご参考に。

PHPのインストール

最後にPHPのインストール。まずインストール時に指定できる variants を確認します。

% port variants php5 
php5 has the variants:
   apache: Add Apache 1 web server module
     * conflicts with apache2 no_web
[+]apache2: Add Apache 2.2 web server module
     * conflicts with apache no_web
   debug: Enable debug support (useful to analyze a PHP-related core dump)
   fastcgi: Add FastCGI web server binary
     * conflicts with no_web
   gmp: Obsolete; install php5-gmp port instead
   imap: Obsolete; install php5-imap port instead
   ipc: Add semaphore, shared memory and IPC functions
   macports_snmp: Obsolete; install php5-snmp port instead
   mssql: Obsolete; install php5-mssql port instead
   mysql4: Obsolete; install php5-mysql port instead
   mysql5: Obsolete; install php5-mysql port instead
   mysqlnd: Obsolete; install php5-mysql port instead
   no_web: Don't include any web server support
     * conflicts with apache apache2 fastcgi
   oracle: Obsolete; install php5-oracle port instead
   pcntl: Obsolete; install php5-pcntl port instead
   pear: Add PEAR
   postgresql82: Obsolete; install php5-postgresql port instead
   postgresql83: Obsolete; install php5-postgresql port instead
   pspell: Obsolete; install php5-pspell port instead
   snmp: Obsolete; install php5-snmp port instead
   sockets: Obsolete; install php5-sockets port instead
   sqlite: Obsolete; install php5-sqlite port instead
   suhosin: Add Suhosin patch
   tidy: Obsolete; install php5-tidy port instead
   universal: Build for multiple architectures

見て分かるとおりほとんどが「Obsolete」つまりもう使えないものになっていて、代わりに php5-**** でインストールしなさいと書かれてます。

というわけで +apache2 と +pear だけつけてインストールします。

% sudo port install php5 +apache2 +pear

インストールに成功すると、初めてPHPを入れる場合には以下のコマンドを実行せよと指定されます。

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

これで httpd.conf に必要な設定が追加されます。

それから php.ini は /opt/local/etc/php5 にある php.ini-development もしくは php.ini-production をコピーして利用します。開発用のphp.iniは色々とオプションがOnになってます。

ここでは開発環境用のものを使うことにしました。

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

あとでPHPを動かしてみるとわかりますが、

Warning: date() [function.date]: It is not safe to rely on the system's timezone settings.
You are *required* to use the date.timezone setting or the date_default_timezone_set() 
function. In case you used any of those methods and you are still getting this warning,
you most likely misspelled the timezone identifier.
We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead in ...

という警告が表示されてしまうので php.ini の date.timezone を以下のように設定します。

date.timezone = Asia/Tokyo

さらに variants で指定できなくなっていたものをインストールします。以前 +imap +mysql5 +sqlite などをつけてインストールしていたので、

% sudo port install php5-sqlite
% sudo port install php5-imap
% sudo port install php5-mysql

php5-mysql をインストールすると php.ini にソケットファイルのパスを追加しろと指示されます。というわけで再度 /opt/local/etc/php5/php.ini を開いて以下のようにオプションを変更します。

pdo_mysql.default_socket=/opt/local/var/run/mysql5/mysqld.sock
mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock

(追記 2010-11-02) WebからPHPが動かない場合は以下を /opt/local/apache2/conf/httpd.conf の <IfModule mime_module> ディレクディブに追加

AddType application/x-httpd-php .php

あとは Apache の再起動。

sudo /opt/local/apache2/bin/apachectl restart

これでひと通り完了です。

(以下追記)

mbstringが使えなくなっていたのでインストール。

% sudo port install php5-mbstring

php.ini に mbstring の設定をしておく。

mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.detect_order = auto

opensslが使えなくなっていたのでインストール。

% sudo port install php5-openssl

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

著者について

fkoji

F.Ko-Ji

Webエンジニアやってます。最近は ドットインストール の開発がお仕事です。その傍ら、個人で Meity電車遅延なう梅酒.in#グラドル自画撮り部 の部室といったネットサービスを開発・運営してます。梅酒と草野球とリアル脱出ゲームが好きです。

» 詳しいプロフィールや運営サービスの一覧など