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
コメントを残す