OS X YosemiteにApache、PHP、MySQLの環境を構築する

, , , ,

Yosemiteにしてから初めてApache起動してみたらいろいろ動かなくなってたので、この際なので新しく環境を入れ直しました。

インストールするもの

インストールするのは以下の通り。
SugarCRMの関係でちょっと古いものを入れている。

  • Apache 2.2
  • PHP 5.3
  • MySQL 5.6

Apacheのインストールと設定

リポジトリの追加

すでに追加している場合は不要

brew tap homebrew/dupes
brew tap homebrew/apache

Apacheのインストール

brew install httpd22

OS X標準のApacheが使われていないか確認する。
ここで/usr/local/bin/apachectlと出ればOK。

which apachectl

httpd.confの設定

httpd.confは/usr/local/etc/apache2/2.2/httpd.confにある。

# 8080 から変更
Listen 80

# ServerName の設定
ServerName localhost:80

# Apache 実行ユーザーの変更
User ユーザー名
Group staff

# DocumentRoot の変更
DocumentRoot "/Users/ユーザー名/Dropbox/Develop/htdocs"

# overwrite を許可 ( Directory "/Users/ユーザー名/Dropbox/Develop/htdocs" )
AllowOverride All

# index.php を使えるようにする ( IfModule dir_module )
DirectoryIndex index.php index.html

# .php を実行できるようにする ( IfModule mime_module )
AddType application/x-httpd-php .php

# バーチャルホストの利用
# コメントを外すだけで良い
Include /usr/local/etc/apache2/2.2/extra/httpd-vhosts.conf

# php5 のモジュールの追加
# Homebrew でインストールするときは不要
LoadModule php5_module /usr/local/Cellar/php53/5.3.29/libexec/apache2/libphp5.so

# mod_rewrite の利用
LoadModule rewrite_module libexec/mod_rewrite.so

httpd-vhosts.confの修正

usr/local/etc/apache2/2.2/extra/httpd-vhosts.confにダミーホストの設定が書かれているためコメントアウトする。

# NameVirtualHost *:8080
# <VirtualHost *:8080>
# ServerAdmin [email protected]
# DocumentRoot "/usr/local/opt/httpd22/docs/dummy-host.example.com"
# ServerName dummy-host.example.com
# ServerAlias www.dummy-host.example.com
# ErrorLog "/usr/local/var/log/apache2/dummy-host.example.com-error_log"
# CustomLog "/usr/local/var/log/apache2/dummy-host.example.com-access_log" common
# </VirtualHost>

# <VirtualHost *:8080>
# ServerAdmin [email protected]
# DocumentRoot "/usr/local/opt/httpd22/docs/dummy-host2.example.com"
# ServerName dummy-host2.example.com
# ErrorLog "/usr/local/var/log/apache2/dummy-host2.example.com-error_log"
# CustomLog "/usr/local/var/log/apache2/dummy-host2.example.com-access_log" common
# </VirtualHost>

あとは適宜環境に合わせてバーチャルホストの設定を行う。

Apapche起動

sudo apachectl start

PHPのインストールと設定

リポジトリ追加

brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php

PHP5.3のインストール

--homebrew-apxsオプションをつけることで、Apacheのhttpd.confにLoadmoduleの設定が追記される。

brew install php53 --homebrew-apxs

php.iniの修正

/usr/local/etc/php/5.3/php.iniを修正する。

date.timezone = Asia/Tokyo
default_charset = "UTF-8"
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII

MySQLのインストールと設定

brew install mysql

初期設定と起動

mysqladmin -u root password
# 新しい root パスワードを入力する

mysql_secure_installation

mysql.server start

UTF-8になっているか確認

MySQL5.6はデフォルトエンコーディングがUTF-8になっているらしいが一応確認。

mysql -uroot -p

mysql> show variables like 'character_set%';
+--------------------------+------------------------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/Cellar/mysql/5.6.21/share/mysql/charsets/ |
+--------------------------+------------------------------------------------------+
8 rows in set (0.01 sec)

SugarCRMが動作するか確認する

もともとSugarCRMを動かしていたので、それがちゃんと動作するか確認してみる。
ソースとダンプを抜いてきて使う。

mysql -uroot -p -e "CREATE DATABASE sugar;"
mysql -uroot -p sugar < sugar_dump.sql

ソースは上で設定した/Users/ユーザー名/Dropbox/Develop/htdocsに配置する。以下のURLでログイン画面が表示されればOK。

http://localhost/sugar