今までは、MacPortsでApache,PHP,MySQLをインストールして OSX Lion に MAMP環境を構築していたのですが、OSX Yosemiteにアップグレードしたら、MacPortsが正常に動かなくなってしまいました。

どうも「The MacPorts Project — Download & Installation」のQuickstartに記載の手順で Yosemite用のMacPortsをインストールし直す必要があるようです。

Yosemiteには、標準でApacheとPHPが入っているようなので、今回は、MacPortsをアンインストールして、HomeBrewを使用してMYSQLのみ追加インストールを行ったMAMP環境を再構築することにしました。

MacPortsのアンインストール

  • MacPortsのUninstallガイドに従い、ターミナルで以下のコマンドを実行してMacPortsをアンインストールしました。

    $ sudo port -fp uninstall installed
    $ sudo rm -rf \
            /opt/local \
            /Applications/DarwinPorts \
            /Applications/MacPorts \
            /Library/LaunchDaemons/org.macports.* \
            /Library/Receipts/DarwinPorts*.pkg \
            /Library/Receipts/MacPorts*.pkg \
            /Library/StartupItems/DarwinPortsStartup \
            /Library/Tcl/darwinports1.0 \
            /Library/Tcl/macports1.0 \
            ~/.macports
    $
    

ApacheとPHPの設定

  • Yosemiteに標準でインストールされてるApacheのバージョンは、Apache/2.4.9でした。

    $ httpd -v
    Server version: Apache/2.4.9 (Unix)
    Server built:   Sep  9 2014 14:48:20
    $
    
  • Yosemiteに標準でインストールされてるPHPのバージョンは、PHP 5.5.14でした。

    $ php -v
    PHP 5.5.14 (cli) (built: Sep  9 2014 19:09:25) 
    Copyright (c) 1997-2014 The PHP Group
    Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    $
    
  • phpの設定ファイル(php.ini)を「/etc/php.ini.default」をコピーして/etc下に作成しました。(「/etc/php.ini」)
    $ sudo cp -p /etc/php.ini.default /etc/php.ini
    
  • php.iniのアップロードの最大ファイルサイズが2MBになっていたので、8MBに変更しました。

    # cd /etc/
    # cp php.ini php.ini.org
    # nano php.ini
    
    post_max_size = 8MB
    memory_limit = 128MB
    ;;;upload_max_filesize = 2M
    upload_max_filesize = 8M
    
  • Apacheの設定ファイル(/etc/apache2/httpd.conf)のLoadModule(libphp5.so)のコメントを削除してApacheとPHP5の連携を有効にしました。
    $ sudo nano /etc/apache2/httpd.conf
    
    #LoadModule php5_module libexec/apache2/libphp5.so
    ↓
    LoadModule php5_module libexec/apache2/libphp5.so
    
  • Apacheの設定ファイル(/etc/apache2/httpd.conf)のLoadModule(mod_rewrite.so)のコメントを削除してmod_rewriteを有効にしました。
    $ sudo nano /etc/apache2/httpd.conf
    
    # Example:
    # LoadModule foo_module modules/mod_foo.so
    #
    :
    #LoadModule rewrite_module libexec/apache2/mod_rewrite.so
    LoadModule rewrite_module libexec/apache2/mod_rewrite.so
    :
    <Directory "/Library/WebServer/Documents">
    :
    ###AllowOverride None
    AllowOverride All
    :
    </Directory>
    
    $ sudo apachectl restart
    

HomeBrewのインストール

  • ターミナルで以下のコマンドを実行して、HomeBrewをインストールしました。
    $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    :
    Press RETURN to continue or any other key to abort
    :
    Run `brew doctor` before you install anything
    Run `brew help` to get started
    $
    
  • $ brew doctor
    Warning: Unbrewed .pc files were found in /usr/local/lib/pkgconfig.
    If you didn't put them there on purpose they could cause problems when
    building Homebrew formulae, and may need to be deleted.
    
    Unexpected .pc files:
        /usr/local/lib/pkgconfig/jack.pc
    $
    
  • Macportsの残骸「jack.pc」を削除したら警告がなくなりました。
    $ rm /usr/local/lib/pkgconfig/jack.pc
    $ brew doctor
    Your system is ready to brew.
    $
    
  • インストールされたHomebrewのバージョンは、「0.9.5」でした。
    $ brew update
    Already up-to-date.
    $ brew -v
    Homebrew 0.9.5
    $
    

MySQLのインストール

  • 以下のコマンドで、HomeBrewを使用してMySQLをインストールしました。
    $ brew install mysql
    :
    A "/etc/my.cnf" from another install may interfere with a Homebrew-built
    server starting up correctly.
    To connect:
     mysql -uroot
    To have launchd start mysql at login:
     ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
    Then to load mysql now:
     launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    Or, if you don't want/need launchctl, you can just run:
     mysql.server start
    ==> Summary
    /usr/local/Cellar/mysql/5.6.21: 9620 files, 339M
    $
    
  • 以下のコマンドで、MySQLの起動しました。
    $ mysql.server start
    Starting MySQL
    . SUCCESS! 
    
  • 以下のコマンドで、MySQLの自動起動を設定しました。
    $ ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
    
  • 以下のコマンドで、セキュアセットアップスクリプトを実行しました。
    $ mysql_secure_installation
    Enter current password for root (enter for none): → [Enter]
    Set root password? [Y/n]  → [Enter]
    New password: 新しいパスワードを入力
    Re-enter new password: もう一度パスワードを入力
    Remove anonymous users? [Y/n] → [Enter]
    Disallow root login remotely? [Y/n] → [Enter]
    Remove test database and access to it? [Y/n] → [Enter]
    Reload privilege tables now? [Y/n] → [Enter]
    $ 
    
  • LocalhostからMySQLにアクセス出来ないことへの対処として、/etc/php.iniにmysql.sockの場所(/tmp/mysql.sock)を追記しました。
    • 「mysql> status」を実行して、mysql.sockの場所を確認しました。
      $ mysql -u root -p
      Enter password:*
      mysql> status
      :
      UNIX socket:/tmp/mysql.sock
      :
      mysql> quit;
      Bye
      $
      
    • mysql.sockの場所を「/etc/php.ini」に追記しました。
      $ sudo nano /etc/php.ini
      
      mysql.default_socket = /tmp/mysql.sock
      mysqli.default_socket = /tmp/mysql.sock
      
  • WordPressが問題なくインストールできることを確認し、MAMP環境の構築を完了しました。