WEBOPIXEL

Snow Leopard(10.6)にMacPortsでPHPを開発環境を構築してみた

Posted: 2011.02.15 / Category: Mac / Tag: 

MacPortsを使用すればターミナルからコマンドを打つだけで、PHPやMySQLなどのオープンソースをインストールしてくれるらしいです。
MacでPHPを開発するにあたりMAMPPとどちらにしようかと悩みましたが、MacPortsを使用した方が色々小回りがきくらしいのでこちらにしました。
MacPortsをインストールすることろからはじめ、PHP&MySQLがいちおう動いているよね。というところまでやってみます。

Sponsored Link

MacPortsのインストール

まずはMacPortsをインストールしなくては始まりませんね。
下記サイトで配布されています。

MacPorts

「“dmg” disk images for…」から対応OSのバージョンを選択してdmgファイルをダウンロードします。

インストールに関しては特に変わった設定はないと思います。
インストールが終わったらターミナルを実行して次のコマンドを入力します。

$ port

正常にインストールできていれば「MacPorts 1.9.2」とMacPortsとバージョンが表示されます。

確認ができたら「quit」と入力して終了しておきましょう。

Apache2のインストール

ターミナルで以下のコマンドを入力します。

$ sudo port install apache2

「Password:」と表示されパスワードが求められます。
何押しても全然入力できねえんだけど! な状態ですが実は入力されてますので正しく入力できたと感じたらエンターで実行してください。

インストール時下記のエラーメッセージが表示される場合があります。
「db46 requires the Java for Mac OS X development headers.」
その場合は指示通り「https://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?bundleID=20719」から「Java for Mac OS X 10.6 Update 3 Developer Package」をダウンロードしてインストールします。

OS起動時に Apache2 を自動起動したい場合は下記をコマンドを実行します。

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

Apacheの起動や停止はよく使いそうですね。

起動 $ sudo /opt/local/apache2/bin/apachectl start
停止 $ sudo /opt/local/apache2/bin/apachectl stop
再起動 $ sudo /opt/local/apache2/bin/apachectl restart

httpd.confの編集

httpd.confを適当な名前でコピーします。

$ sudo cp /opt/local/apache2/conf/httpd.conf /opt/local/apache2/conf/httpd.conf.orig

httpd.confファイルはロックが掛かっているのでそのままでは編集できません。
下記のコマンドでパーミッションを変更します。
※ターミナルから編集する場合は変更する必要はありません。

sudo chmod 666 /opt/local/apache2/conf/httpd.conf

またFinderから右クリック「情報を見る」でadminのアクセス権を「読み書き」にすることでも編集を行えます。

ファイルロック解除

httpd.confを編集できるようになったらFinderからエディターで開くか、下記のようにターミナル上で開きます。

$ sudo vi /opt/local/apache2/conf/httpd.conf

これでターミナルでViを扱えます。
「i」キーでINSERTモードで編集できるようになります。
INSERTモードを終了するには「esc」キーを押します。

編集が終わりViを終了したいときは下記のコマンドを入力します。

:q! 変更を保存せずに終了
:w 変更を保存して続行
:wq 変更を保存して終了

ではViが使えるようになったということで「httpd.conf」を編集してみましょう。
下記をコメントアウトします。

Include conf/extra/httpd-autoindex.conf
Include conf/extra/httpd-info.conf

最後の行に下記を追加します。

Include /opt/local/apache2/conf/extra/mod_php.conf

Apacheを起動してみて「http://localhost/」にアクセス「It works!」にアクセスできれば成功です。

PHP5のインストール

続いてPHPのインストールです。

$ sudo port install php5 +apache2 +mysql5 +sqlite +pear

インストールが終わったらphp.iniを作成したりするらしい。

$ cd /opt/local/etc/php5/
$ sudo cp php.ini-development php.ini
$ cd /opt/local/apache2/modules/
$ sudo /opt/local/apache2/bin/apxs -a -e -n “php5” libphp5.so

再びhttpd.confを編集します。
最後に下記を追加します。

AddType application/x-httpd-php .php
LoadModule php5_module modules/libphp5.so
Include conf/extra/mod_php.conf

MySQL5 のインストール

$ sudo port install mysql5 +server
$ sudo port install mysql5-server

インストールが終わったらパスワードを設定します。

$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist,
$ /opt/local/lib/mysql5/bin/mysqladmin -u root password ‘ここにパスワードを設定’

php.iniの編集

$ sudo vi /opt/local/etc/php5/php.ini

PHPからMySQLを使用できるように下記を編集します。

mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
pdo_mysql.default_socket= /opt/local/var/run/mysql5/mysqld.sock
mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock
mysql.default_port = 3306
date.timezone = Asia/Tokyo

インストール済み&可能なモジュールは下記のコマンドで確認できます。

インストール可能なモジュール sudo port list php5-*
インストール済みモジュール /opt/local/bin/php -m

MySQLは以下コマンドで起動します。Apachと同じようにstop, restartで停止、再起動します。

% sudo /opt/local/share/mysql5/mysql/mysql.server start

phpMyAdminのインストール

$ sudo port install phpmyadmin

http://phpmyadminでアクセスできるようにバーチャルホスト設定。 httpd.confに直接書いてもいいけど、バーチャルホストは今後増えていく可能性があるので別ファイルに分ける。
httpd.confに以下のコード追加。

Include conf/extra/my-httpd-vhosts.conf

extraのhttpd-vhosts.confをコピー。

$ sudo cp /opt/local/apache2/conf/extra/httpd-vhosts.conf /opt/local/apache2/conf/extra/my-httpd-vhosts.conf

新しく作成した「my-httpd-vhosts.conf」を以下に置き換える

		# Use name-based virtual hosting.
		#
		
		NameVirtualHost *:80
		
		<VirtualHost *:80>
		    ServerName localhost
		    DocumentRoot /opt/local/apache2/htdocs
		</VirtualHost>
		
		<VirtualHost *:80>
		    ServerName phpmyadmin
		    DocumentRoot /opt/local/www/phpmyadmin
		    <Directory "/opt/local/www/phpmyadmin">
		        Order deny,allow
		        Allow from all
		    </Directory>
		</VirtualHost>
	

/etc/hostsファイルを編集

$ sudo vi /etc/hosts

「127.0.0.1 localhost」の下に次のコードを追加

127.0.0.1 phpmyadmin

apache2を起動もしくは再起動してブラウザに「http://phpmyadmin」でアクセスphpMyAdminの画面が表示されれば成功です。

ちなみにetcフォルダは非表示になっていてFindarからは見えないのですが、以下のコマンドで非表示ファイルを表示することができます。

defaults write com.apple.finder AppleShowAllFiles TRUE

もう一度非表示にするときは最後の「TRUE」を「FALSE」にします。

参考サイト
Snow Leopard で MacPorts から Apache2, PHP5, MySQL のインストール
MacPortsでPHP5をインストール。
ボクのMacBookができるまで:(5.開発環境構築編)
Mac OS 10.6にMacPorts