簡単にできる Mac OS X Lion に PHP + MySQL の開発環境を構築する方法

以前開発環境を構築した際に記事を書きましたが、以前より分かりやすく、改めて作業ログを残しておきます。Mac の開発環境構築に不慣れな方は参考にしてください。

Mac で PHP が使えるようにする

Web 共有を有効にする

Mac のシステム環境設定の共有から、Web 共有を有効にします。これだけで自分の IP アドレスにアクセスすれば It Works が表示されます。この時点では Web ページを表示できるだけで、PHP などは動作しません。

PHP が使えるようにする

ターミナルを起動して下記のコマンドで httpd.conf ファイルの編集を開始します。編集に vi を使用していますが、他のエディタが良い場合はそのエディタで編集してください。

1
sudo vi /etc/apache2/httpd.conf

下記のように初期では PHP が無効になっています。

1
#LoadModule php5_module libexec/apache2/libphp5.so

コメントアウトを外せば有効化できます。

1
LoadModule php5_module libexec/apache2/libphp5.so

バーチャルホストを設定する

ついでに必要なバーチャルホストの設定などもしておきます。以下の行の httpd-vhosts.conf がデフォルトではコメントアウトされているので有効化してください。

622
623
# Virtual hosts
Include /private/etc/apache2/extra/httpd-vhosts.conf

次に下記のファイルを編集します。Mac ではバーチャルホストは下記ファイルに設定します。

1
sudo vi /etc/apache2/extra/httpd-vhosts.conf

私の場合は ~/Sites/ に Web サイトのファイルを配置していますので、下記のように ~/Sites/localhost までのフルパスを記述します。この部分は、Mac のデフォルトのサイト用ディレクトリでも良いですし、/var ディレクトリに www ディレクトリを作成して、そこにファイルを配置するなど、自由に行えば構いません。設定した場所にファイルを置けば良いだけです。

1
2
3
4
5
6
7
8
9
10
11
<VirtualHost *:80>
    DocumentRoot "/Users/name/Sites/localhost"
    ServerName localhost
    AllowEncodedSlashes ON
    <Directory "/Users/name/Sites/localhost">
        order deny,allow
        allow from All
        Options FollowSymlinks
        AllowOverride All
    </Directory>
</VirtualHost>

設定が完了したらファイルを保存して、Apache を再起動します。Apache の再起動は Web 共有を無効にして、再度有効にすれば再起動することができます。他の再起動方法については以前記事にしましたのでそちらをご確認ください。

MySQL のインストール

Macports などでもインストールできますが、Macports だと面倒なことが以前あって、あまり良い印象がないので、MySQL を直接インストールさせて頂きます。MySQL を Macports でインストールしたい方はこちらの Macports を使用したインストール方法を参考にしてください。

また、今回紹介する MySQL のインストールについては下記の記事を参考にさせて頂きました。直接下記のページを参考にして頂いても構いませんし、本記事の説明を参考にして頂いても構いません。

MySQL のダウンロード

ご自分の環境に合わせてインストールしたいファイルを選択します。私の場合は Mac OS X ver. 10.6 (x86, 64-bit), DMG Archive (mysql-5.5.23-osx10.6-x86_64.dmg) をダウンロードしました。DMG ファイルでは GUI によるインストールが可能です。(クリックのみでOKです。)

MySQL のインストール

MySQL をインストールします。mysql-5.5.23-osx10.6-x86_64.pkg をダブルクリックするとインストールすることができます。

MySQL を起動する

MySQLStartupItem.pkg をダブルクリックしてインストールすると MySQL が自動的に起動します。

MySQL をシステム環境設定から制御できるようにする

MySQL.prefPane をダブルクリックすると MySQL をシステム環境設定から起動・停止することができるようになります。

MySQL を起動する

このように MySQL の項目が出現するのでクリック。

以下のようになことが書いてあります。

MySQL サーバーステータス

MySQL データベースサーバーは現在停止しています。これを起動するには、”Start MySQL Server’ ボタンを使用してください。

チェックボックスがある部分には下記のようなことが書いてあります。

起動時に MySQL サーバーを自動起動する。

あなたはコンピューターを起動した時に MySQL サーバーを自動起動するかを選択することができます。

ということなので Start MySQL Server をクリック。

起動するとこのような画面になります。

MySQL へのパスを通す

MySQL にログインする際に下記のようなコマンドを発行してログインできるように(mysql への絶対パスを入力しなくて済むように)するには MySQL へのパスを通しておきます。

1
mysql -u root -p

bash を使用している場合は、bash_profile で設定します。

1
vi ~/.bash_profile

下記のように MySQL へのパスを設定しておきます。

1
export PATH=$PATH:/usr/local/mysql/bin

パスを設定した後再読み込みをします。

1
source ~/.bashrc

root のパスワードを設定する

1
mysqladmin -u root password 'example_password'

MySQL にログインする

1
mysql -u root -p

MySQL にログインできるかをテストします。これでログインができれば MySQL のインストールは完了です。

MySQL を Apache 経由でログインできるようにする

Apache 経由と言ったら良いのでしょうか、この部分の用語はまだまだ曖昧なので、正しい表現方法をご存知の方が居たらアドバイスいただきたいのですが、要は CLI ではログインできましたが、ブラウザではログインできないので、ログインできるようにするという項目です。この設定については下記のページが参考になりました。

MySQL にログインして UNIX socket を調べる

MySQL にログインします。

1
mysql -u root -p

以下のようにタイプします。

1
status

すると情報が一覧になり、その中に UNIX socket というのがあます。この項目にある(私の場合だと /tmp/mysql.sock)を覚えておくか控えておきましょう。

php.ini を作成する

次にデフォルトで /etc/php.ini.default というファイルがありますので、それをコピーして /etc/php.ini を作成してください。

1
sudo cp /etc/php.ini.default /etc/php.ini

コピーしたら php.ini ファイルを編集します。

1
sudo vi /etc/php.ini

以下の項目に該当する部分を変更します。

1
2
3
pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock

これで Apache を再起動すれば Apache 経由でログインできるようになります。

コメント

  1. yuya_prestoさんのコメント

    WiMAXだとローカルVMへのrsyncが遅い件、おそらくVMの設定でNICをbridgeモードにしているということはないでしょうか?
    bridgeだと厳密な直接通信にはならないので(例えば有線LANだと一度スイッチングハブに飛んでいって戻ってくる)、ホストオンリーアダプタを使うと改善するかもしれません。

    • webleさんのコメント

      コメントありがとうございます。ホストオンリーにしても解決することが出来ませんでした。色んな接続方法を試したんですが、どうしてもダメなようでした。何か解決策があれば、また仮想開発環境で作業できるのですが…。