macでMAMPを使わずローカルサーバ構築してみる


Homebrewはインストールされているものとする。


##MySQLのインストール

````terminal

//1. MySQLのインストール
$ brew install mysql

//2. バージョンの確認（インストールされているか確認）
$ mysql --version

//こんな風に表示されればインストールされている
-> mysql  Ver 14.14 Distrib 5.6.24, for osx10.10 (x86_64) using  EditLine wrapper

````

さてこれでMySQLがインストールされました


##Apacheのインストールと設定

````terminal

//1. Apacheのインストール
$ brew install httpd22

//tapしてくださいーみたいなこと言われたら、以下のコマンドうつ
$ brew tap homebrew/dupes
$ brew tap homebrew/apache

//2. バージョンの確認
$ apachectl -v

//こんな風に表示されればおｋ
-> Server version: Apache/2.2.29 (Unix)
Server built:   May 27 2015 15:11:36

````


##httpd.confの修正

Apacheの設定ファイルhttpd.confを編集する。
Dropboxにhtdocsディレクトリを作成し、そこでPHPを実行できる環境にしたいと思う。

```config:/usr/local/etc/apache2/2.2/httpd.conf

# 使用するポート番号の設定
# デフォルトはListen 8080
Listen 80

# ServerNameの設定
# ポート番号に合わせて変更
ServerName localhost:80

# DocumentRootの変更
# ここではDropboxに作成しておいたhtdocsを指定
DocumentRoot "/Users/ユーザ名/Dropbox/htdocs"

#.htaccessでURLのoverwriteを許可
# 下記記述の下にあるAllowOverrideをNoneからAllへ

    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride All
    
# index.phpを使用できるように修正(ifModule dir_module内)
DirectoryIndex index.php index.html

# .phpを実行できるようにMIMEタイプを追加(ifModule mime_module内)
# AddType applicationが連なっているところに書く
AddType application/x-httpd-php .php

# バーチャルホストを利用できるようにコメントアウト解除
Include /usr/local/etc/apache2/2.2/extra/httpd-vhosts.conf

```

##バーチャルホストの設定

今回はhogefoo.localというURLでアクセスできるように設定する。


/user/local/etc/apache2/2.2/extra/httpd-vhosts.conf
↑こいつを書き換える

```config:httpd-vhosts.conf

# NameVirtualHostを書き換える(8080になってるからね)
NameVirtualHost *:80

# こいつらをコメントアウトしよう。２セットくらいあるはず
<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>
 
# そしたらこれを書き込みましょう

<VirtualHost *:80>
    ServerName hogefoo.local
    DocumentRoot /Users/ユーザ名/Dropbox/htdocs/
    DirectoryIndex index.php index.html
    
    <Directory "/Users/ユーザ名/Dropbox/htdocs">
        AllowOverride All
        Allow from All
    </Directory>
</VirtualHost>

```


##hostsファイルの修正

/private/etc/hostsというファイルに下記を追加する。
127.0.0.1という数字はPCのIPアドレス

```hosts

# localhostはもともと書いてあると思う
127.0.0.1 localhost 
127.0.0.1 hogefoo.local

# 複数のバーチャルホストを設定する場合
127.0.0.1 hogefoo.local foobar.jp


```

##PHP5.5のインストール

```terminal

--PHPのインストール
brew install php55 --homebrew-apxs

--tapしろって言われたらこいつら叩く
brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php

```

インストール時に--homebrew-apxsというオプションをつけるとhttpd.confに必要な設定を自動的に書き込んでくれるらしい。

オプションを付け忘れた場合はhttpd.confに下記記述を。

```config:httpd.conf

LoadModule php5_module libexec/apache2/libphp5.so

```


##403 Forbiddenエラーェ・・・

こいつは、DocumentRootに指定したフォルダ（Dropbox）に対してアクセスする権利がないことによって起こるようだ。
以下のコードを実行してフォルダの権限を変更しましょう

```terminal

//701でなくても7xxならなんでもおｋ（たぶん）
chmod 701 ~/Dropbox

```

ちなみにDocumentRootに指定したファイダ内にindexファイルがない場合も403 Forbiddenが発生する




















##参考サイト

[OS X YosemiteにHomebrew + DropboxでPHP環境構築　〜Apache, PHP, MySQL, ComposerをインストールしてFuelPHPの設定まで](http://qiita.com/saltyshiomix/items/aacb5f9635c0d3201174)  

[apacheを使ってローカルサーバーを構築する方法](http://motw.mods.jp/Mac/local_server.html)