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

#apache, #mysql, #os x, #php, #yosemite

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

インストールするもの

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

  • Apache 2.2
  • PHP 5.3
  • MySQL 5.6

Apacheのインストールと設定

リポジトリの追加

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

1
2
brew tap homebrew/dupes
brew tap homebrew/apache

Apacheのインストール

1
brew install httpd22

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

1
which apachectl

httpd.confの設定

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 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にダミーホストの設定が書かれているためコメントアウトする。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# NameVirtualHost *:8080
# <VirtualHost *:8080>
# ServerAdmin webmaster@dummy-host.example.com
# 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 webmaster@dummy-host2.example.com
# 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起動

1
sudo apachectl start

PHPのインストールと設定

リポジトリ追加

1
2
3
brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php

PHP5.3のインストール

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

1
brew install php53 --homebrew-apxs

php.iniの修正

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

1
2
3
4
5
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のインストールと設定

1
brew install mysql

初期設定と起動

1
2
3
4
5
6
mysqladmin -u root password
# 新しい root パスワードを入力する
mysql_secure_installation
mysql.server start

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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を動かしていたので、それがちゃんと動作するか確認してみる。
ソースとダンプを抜いてきて使う。

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

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

1
http://localhost/sugar