Install MySQL/PHP/phpMyAdmin to Snow Leopard

気に入ったらシェアしてくださいね

Snow LeopardでローカルのAMP環境を作るための自分用メモ。
ヘタレなので、MySQLだけではなく、phpMyAdminも動かす。

マシン:Macbook Pro (2011) 13inch
OS: Mac OS X 10.6.8 (Snow Leopard)
デフォのPHPバージョン:5.3.4

0. Apache起動
これも簡単。
システム環境設定>共有>Web共有 をONにする。
これだけです。
ユーザーのルートディレクトリは
/Users/[username]/Sites/
システムのルートディレクトリは
/Library/WebServer/Documents
になります。

1. PHPを動かす
これは簡単。
a) ターミナルを起動。
b) httpd.confをデスクトップにコピー。
sudo cp /etc/private/etc/apache2/httpd.conf /Users/[username]/Desktop
viで直接やってもいいけど、ヘタレなのでテキストエディタを使いたいので、
sudoを使ってhttpd.confをデスクトップに引きずり出す。
c) 以下の行のコメントアウトを外す。
#LoadModule php5_module libexec/apache2/libphp5.so
d) httpd.confを上書き。
sudo /Users/[username]/Desktop/httpd.conf /etc/private/etc/apache2/
e) apache2をRestart
sudo apachectl restart

2. MySQLをインストール
インストール自体は、Mac OS X用のバイナリを持ってくればGUIで可能。
MySQLのダウンロードディレクトリ
僕がインストールしたのは、ちょっと古いMySQL 5.1.58。
dmgファイルを開き、
mysql-5.1.58-osx10.6-x86_64.dmg:プログラム本体
MySQL.prefPane:システム環境設定に、StartupItemへのリンクを貼る
MySQLStartupItem.pkg:システム起動時のMySQL自動起動/停止を選べる
の3つをインストール。

3. MySQLの設定
Terminal.appから簡単にMySQLを使えるようにしたり、PHPとの接続をしたり、などの設定。

a) パスを切る
しばらくはTerminal.appからいろいろといじる必要があり、その都度/usr/local/mysql/bin/mysqlとかやるのも面倒なので、パスを通しておく(mysqlへの経路情報を登録)と便利。

a-1) bash_profileの作成
PATH=$PATH:/usr/local/mysql/bin
export PATH

のみを記載したテキストファイルを作成し、bash_profileという名前で
ユーザのホームフォルダ(/Users/[username]/)に保存。拡張子はつけない。
a-2) bash_profileの不可視項目化
Terminal.appでホームフォルダに移動し、
mv bash_profile .bash_profile
を叩く。

b) php.iniの編集(MySQLソケットの設定)
まずは、php.iniを作成する。テンプレートファイルを、php.iniという名前でコピーし直す。
sudo cp /etc/php.ini.default /etc/php.ini
このphp.iniをデスクトップに引きずり出し、テキストエディタで編集。
sudo cp /etc/php.ini /Users/[username]/Desktop/
MySQLのデフォルトソケットのパスを書き換える。
mysqli.default_socket = /var/mysql/mysql.sock
の部分を
mysqli.default_socket = /tmp/mysql.sock
に書き換え。
最後にMySQLを再起動。
sudo mysqld restart
システム環境設定から再起動してもOK。

c) MySQL初期テーブルの作成
同梱のスクリプトを叩き、初期テーブルを作成する。
cd /usr/local/mysql
sudo ./script/mysql_install_db

このスクリプトを実行することで、rootユーザーが自動的に作成される。

d) 念のためMySQLがちゃんと動いている確認。
mysqladmin -u root ping
“mysqld is alive”
と表示されればOK。

e) rootパスワードの変更
rootにパスワードが設定されていないので超危険。以下を叩いてパスワード変更。
mysqladmin -u root password 'password'

f) パスワードが設定されていない垢を消す
パスワードが設定されていないユーザーが作成されてしまっているので、こいつらを皆消す。
mysql -u root -p
でログイン後
USE mysql;
でmysqlというデータベースに切り替え
DELETE FROM user WHERE password='';
で、パスワードが空文字になっているユーザーを消す。

g) root以外のユーザーを作る
rootは必要なとき以外使わない。日常の管理用アカウントを作成。
rootでmysqlにログイン後、
CREATE USER [username]@localhost IDENTIFIED BY '[password]';
でユーザーを作成し、すべての権限を与えるために、
GRANT ALL PRIVILEGES on *.* to [username]@localhost WITH GRANT OPTION;
を叩く。
再度権限テーブルを読み直す。
FLUSH PRIVILEGES;

h) my.cnfの設定
MySQLの設定ファイルであるmy.cnfのテンプレートは以下の場所に格納されてる。
cd /usr/local/mysql/support-files/
このうち、最低限の設定ファイルであるmy-small.cnfをデスクトップで編集する。
sudo cp my-small.cnf /Users/[username]/Desktop
変更すべき点は2カ所。
h-1)
socket = /opt/local/var/run/mysql5/mysqld.sock

socket = /tmp/mysql.sock
にする。
h-2)
[mysqld]の項目の一番下に、
default-character-set = utf8
を追加。
これにより、ソケットのパスの設定と、MySQLのデフォルトの文字コードを設定した。
最後にMySQLを再起動。
sudo mysqld restart
念のためApache2も再起動。
sudo apachectl restart

これでおおむねPHP+MySQLの設定は完了。

4. phpMyAdminのインストール

準備:
・phpMyAdminのソースコードをDL:リンク(3.4.3.1)
・mcryptのライブラリをDL:リンク (2.5.8)
・PHP extensionのmcryptをDL:ここから、PHPのバージョンにあったものをDL
・コンパイルする必要があるので、Xcodeがインストールされている必要がある。

a) まずはphpMyAdminのソースコードを解凍し、ユーザーのWWWルートもしくはシステムのWWWルートにコピー(むろんどこでもいい)
b) phpmyadminフォルダにあるconfig.sample.inc.phpをコピーし、config.inc.phpにリネーム
c) config.inc.phpを開き、以下の設定項目を変更。
c-1.
$cfg['blowfish_secret'] = '';

$cfg['blowfish_secret'] = '([passphrase])';
に。パスフレーズはなんでもいいみたい。
秘密のキーワード、ってところ。
c-2.
$cfg[‘Servers’][$i][‘host’] = ”;

$cfg[‘Servers’][$i][‘host’] = ‘127.0.0.1’;
に。
保存して終了。

なにも間違っていなければ、この時点でMySQLとPHPの接続が確認しているので、
http://localhost/phpmyadmin/
から、MySQLのrootユーザーもしくはその他を使ってログインすることができるはず。

d) mcryptのインストール
mcryptは暗号化のためのライブラリ。無視してもいいらしいが、気持ちが悪いので。
d-1. ダウンロードしたlibmcryptを解凍。
d-2. Terminal.appから、libmcryptを解凍したフォルダに移動。
僕の場合はダウンロードフォルダに入れっぱなしで解凍したので
cd /Users/[username]/Downloads/libmcrypt-2.5.8
だった。
d-3. まずはlibmcryptのコンパイル。Terminal.appで
MACOSX_DEPLOYMENT_TARGET=10.6 CFLAGS='-O3 -fno-common -arch i386 -arch x86_64' LDFLAGS='-O3 -arch i386 -arch x86_64' CXXFLAGS='-O3 -fno-common -arch i386 -arch x86_64' ./configure --disable-dependency-tracking
を叩く。
Terminal.app上にいろんな文字が流れてくる。再度コマンドプロンプトに戻ったときに、
make -j6
を叩く。またまた、文字がいっぱいになる。終了するとコマンドプロンプトに戻るので、そしたら
sudo make install
を叩く。
これで、/usr/local/lib/以下にlibmcryptがインストールされる。
d-4. 次に、PHP extensionのmcrypt.soをコンパイルする作業へ。ダウンロードしたPHPを解凍し、/ext/mcryptに移動。
僕の場合は
cd /Users/[username]/Downloads/php-5.3.4/ext/mcrypt
でした。
移動後、
/usr/bin/phpize
を叩く。文字がいっぱい。終わるとコマンドプロンプトに。続けて
MACOSX_DEPLOYMENT_TARGET=10.6 CFLAGS='-O3 -fno-common -arch i386 -arch x86_64' LDFLAGS='-O3 -arch i386 -arch x86_64' CXXFLAGS='-O3 -fno-common -arch i386 -arch x86_64' ./configure --with-php-config=/Developer/SDKs/MacOSX10.6.sdk/usr/bin/php-config
を叩く。またまた文字がいっぱい。
コマンドが打てる状態に戻ったら、
make -j6
を叩き、
最後に
sudo make install
を。
これで、PHP extensionのmcrypt.soが
/usr/lib/php/extensions/no-debug-non-zts-20090626
以下にインストールされる。

e) 最後に、php.iniを編集し、mcrypt.soを読み込ませる。
編集すべき点は2点。
; enable_dl = Off
のコメントアウトを外し、
enable_dl = On
に。
; extension_dir =
の下に、
extension=mcrypt.so
を追記。
いろいろと調べると、extension_dir =の設定をしないといけない、と書いてあるが、
どうもMacではこの項目はコメントアウトしっぱなしで問題ないみたい。

apacheを再起動し、info.phpを走らせると、先ほどまでなかった
“mcrypt”というセクションが表示されるようになっている。
mcrypt on phpinfo

あとはphpMyAdminにログインし、mcrypt拡張がない云々のエラーが消えていれば問題なし。

参照先リンク:
Tender Surrender: Snow LeopardにMySQLをインストールする
Plugging mcrypt into PHP, on Mac OS X Snow Leopard 10.6.1

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)