2012年8月18日土曜日

WordPress を動かすまで 〜 ライオンと山登り(1)


新しいMac(MBP Retina) にWeb開発の環境を整備しています。
最初気づいたのは、Mountain Lionには「Web共有」が無い。今となっては、いらない機能なので困りませんが。でもApacheはどこに?と思いましたが、ちゃんと入ってます。PHPも入ってます。




私はXAMPPもMacPortsも使わないのですが、それでもあとMySQLさえ入れればWordPressが動くはずです。
でもMySQLを入れてWordPressを動かすまでちょっとした「険しい道のり」に感じました。「頂はすぐそこ」なんですが、、


(※前置き)以下に参考に動作確認をする前に、Xcodeをインストールしておいてください。それから、rootを有効にしてあなたのアカウントでsudo出来るようにしておいてください。

phpinfoの表示まで

いつものようにPHPの phpinfo() を表示しようとします。
Apacheは以下のコマンドで起動します。

$ sudo /usr/sbin/apachectl start


ちゃんと"_www"ってユーザーにスイッチされてhttpdが起動されています。
'_'で始まるユーザー名、この後もよく使うんですが、MacをUNIXっぽく使うミソなんです。
でもまだPHPはまだ動かない。設定ファイルで有効になっていません。


Apacheの設定ファイルはここで
/etc/apache2/httpd.conf
この行のコメントアウトを外せばPHPも動くようになります。

LoadModule php5_module libexec/apache2/libphp5.so


Macに内蔵のApacheのドキュメントルートですが、ここです。
/Library/WebServer/Documents

日本語環境のFinderだと
/ライブラリ/WebServer/Documents

このディレクトリに .phpファイルをコピーしたり編集したりしたいのですが、権限がなくていちいちパスワード入力しないといけないので、右のようにFinderのディレクトリを選択して「情報を見る」で"Administrators"の「読み/書き」権限を追加します。



続いて、phpinfo() を出力するスクリプトを新規に作成し、
<?php
    phpinfo();

/Library/WebServer/Documents/phpinfo.php
に保存します。

Safariで確認します。

PHPのバージョン、控えておいてください。


MySQLの前にcmake


私はXAMMPもportsも使わないので、ソースコードを取ってきてビルドします。
MySQLのバージョン5.5以降ではビルドにcmakeを使います。
(「だんだん道が険しくなってきた。」とこの時感じました。)
cmake は /usr/local 以下にインストールすることにします。

まず、ソースコードをWebブラウザでダウンロードします。
(もちろんアドレスをコピってcurlでダウンロードでもいいですよ。)

/usr/local もまだ無いので作ります。その下に src ディレクトリも作ります。

$ sudo mkdir -p /usr/local/src

/usr/local/src "Administrators"の「読み/書き」権限を追加して、ここも書き込めるようにします。

cd /usr/local/src
cp ~/Download/cmake-x.x.x.tar ./
tar xvf cmake-x.x.x.tar
(※x.x.xは最新のstableなバージョン)

続けてビルド
cd cmake-x.x.x
$ make
$ sudo make install

これでやっとMySQLをビルドする準備が出来ました。


MySQLのビルドとインストール


MySQLを入れる場所は以下のようにしました。
本体: /usr/local/mysql
データディレクトリ: /var/mysql/data
設定ファイル: /etc/my.cnf

ソースコードの取得。
MySQLのソースコードもWebブラウザでダウンロードして、/usr/local/src にコピー。

$ cd /usr/local/src
$ cp ~/Downloads/mysql-x.x.x.tar /usr/local/src/
$ tar xvf /usr/local/src/mysql-x.x.x.tar

続けてビルド、
$ cd mysql-x.x.x

cmake だからオプションをいろいろ付ける。

$ cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
 -DMYSQL_DATADIR=/var/mysql/data \
 -DENABLED_LOCAL_INFILE=1 \
 -DWITH_EMBEDDED_SERVER=1 \
 -DDEFAULT_CHARSET=utf8 \
 -DDEFAULT_COLLATION=utf8_general_ci \
 -DWITH_EXTRA_CHARSETS=all \
 -DWITH_INNOBASE_STORAGE_ENGINE=1 \
 -DENABLE_DTRACE=1 \
 -DENABLE_GCOV=1 \
 -DWITH_DEBUG=0 \
 -DENABLE_DEBUG_SYNC=0

上記のオプションは次のページを参考にした。比較的シンプルで的確なオプションだと思う。
「MySQL 5.5 ソースからビルド - 飛光よ、飛光よ  cmake コンフィグレーション」

続けてインストール

$ sudo make install
$ sudo cp support-files/my-medium.cnf /etc/my.cnf

あくまで目的は開発用途ですが、メモリが十分足りているので、mediumの設定ファイルを入れました。

データベース初期化

$ cd /usr/local/mysql
$ sudo scripts/mysql_install_db --user=_mysql --datadir=/var/mysql/data

動作確認

$ cd
$ sudo -u _mysql /usr/local/mysql/bin/mysqld_safe --datadir=/var/mysql/data &

MySQLへの接続が確認出来たら、サーバープロセスを止めます。

$ sudo -u _mysql /usr/local/mysql/bin/mysqladmin -uroot shutdown

ちみに"_mysql"って'_'で始まるユーザーでサーバープロセスを起動してますが、"_mysql"は既にOSに登録済みです。これは便利です。


php.iniファイルの設定


頂はまだ遠いのです。Mountain Lionには開発者向けの php.ini ファイルが入っていません。
しょうがないのでPHPのソースから取ってきます。
過去にリリースしたバージョンのソースコードはGitHubにあるので、そこからダウンロードします。phpinfoを表示して控えたバージョンが必ずあるはずです。


"ダウンロード"に解凍されたフォルダのなかで、php.ini-development というファイル名のファイルがあるのでこれを編集します。

(※vimで編集すれば良いですが、テキストエディタで編集したいときは下のようにしてください。)

ファイルを選択して「情報を見る」
「このアプリケーションで開く:」をテキストエディット等に指定する。


ファイルを選択して右クリックで開く。

※このようにしたのはMountain Lionのセキュリティ設定のためです。




さっき入れたMySQLにつなげるにはsocketファイルのパスを php.ini ファイルに記述する必要があります。

pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock

「pdoやらmysqliとっととまとめてくれ」思うのですが、PHPは所詮そんなものだから。まあいいや。

ついでに、タイムゾーンの設定をしておきます。ワーニング良く出るから。

date.timezone = Asia/Tokyo


WordPressのインストール


WordPress日本語版のサイトから最新版をダウンロードします。
ダウンロードフォルダに解凍されて"wordpress"フォルダを
/ライブラリ/WebServer/Documents
に移動します。Finder操作でOK。

"wordpress"フォルダにある"wp-config-sample.php"ファイルの名前を"wp-config.php"にします。

WordPress設定ファイルを修正する前に、MySQLを立ち上げて、WordPress用のデータベースとユーザーを登録しておきます。

データベース名: wordpress
ユーザー名: wordpress
ユーザーパスワード: 0000

$ mysql -u root
mysql> create database wordpress;
mysql> GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost' IDENTIFIED BY '0000' WITH GRANT OPTION;
mysql> \q

さっきの"wp-config.php"ファイルをこれに合わせて修正します。

define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', '0000');

修正したらApacheも起動して、Safariで次のURLにアクセスします。


これまでの設定がうまくいけば、WordPressのインストールページが表示されます。
ここからはWordPressのWebページで設定。



ああ〜やれやれ、おなじみのページが見れました。頂はすぐそこだったのですがね。






※不明点があればコメントください。

1 件のコメント:

  1. よい子はMAMPを入れましょう。
    http://www.mamp.info/en/index.html

    返信削除