homebrewでphp-fpm,mysql,nginx のセットアップメモ 2014.11

  • 3
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

件名のことを実施したくいろいろ参照しながら作業したのでそのメモです。
Link0:パッケージ管理システム Homebrew
 からのLink0-1
Link1:osxでwordpressを nginx, php-fpm,mysql の組み合わせて動かす。
 からのLink1-1
Link2:HomebrewやPHPを簡単に再インストールするためのシェルスクリプト
その他:homebrewを使ってMacにNginxとPHPをインストールする
以下の手順で実施します
完全新規は0から、それ以外方は1、2からの流れで。

0. homebrewの初回インストール
1. homebrewの再インストール
2. php-fpmのインストール
3. mysqlのインストール
4. nginxのインストール
5. 確認

0 homebrewの新規インストール

Javaをインストールする。以下で確認出来る。
java -version
xcodeをインストールし、以下を実行
xcode-select --install

1 homebrewの再インストール

homebrewの再インストール Link0のコマンドをシェル化して実行

uninstall_homebrew.sh
#!/bin/sh

cd `brew --prefix`
rm -rf Cellar
brew prune
rm `git ls-files`
rmdir Library/Homebrew Library/Aliases Library/Formula Library/Contributions
rm -rf .git
rm -rf ~/Library/Caches/Homebrew

homebrewのインストール Link2のシェルをURLを訂正して実行(変更になってた)

install_homebrew.sh
#!/bin/sh
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew update
brew doctor
brew -v

2 php-fpmのインストール

brew tap josegonzalez/php
brew tap homebrew/dupes
brew install php54 --with-fpm  --with-imap  --without-apache --with-debug
cp /usr/local/Cellar/php54/5.4.15/homebrew-php.josegonzalez.php54.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php54.plist 

phpのminor versionはすぐ変わると思うので注意

3 mysqlのインストール

brew install mysql --enable-debug

確認用テーブル、ユーザー作成

mysql -uroot
create database db_test ;
use db_test;
create table m_test ( id int, val text ) ; insert into m_test values ( 1, ':D') ;
grant all privileges on db_test.* to guest@localhost identified by 'guest' ;
flush privileges ;

起動設定と起動

cp /usr/local/Cellar/mysql/5.6.10/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

mysqlのminor versionは(以下略

4 nginxのインストール


brew install nginx 

設定ファイル

/usr/local/etc/nginx/nginx.conf
worker_processes  1;
pid        nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    server {
        listen 8080;
        server_name localhost;
        root /usr/local/var/www/;

        access_log /usr/local/var/log/nginx/host.access.log;
        error_log /usr/local/var/log/nginx/host.error.log warn;

        location / {
            index index.html index.hml index.php;
        }

         location ~\.php$ {
            include fastcgi_params;
            fastcgi_pass    127.0.0.1:9000;
            fastcgi_index   index.php;
            fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
    }
}

起動設定と起動

cp /usr/local/Cellar/nginx/1.6.2/homebrew.mxcl.nginx.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist

nginxのminor versionは(以下略

5 確認

確認用phpファイルを設置

/usr/local/var/www/index.php
<?php
$dbh = new PDO( 'mysql:host=localhost;dbname=db_test', 'guest', 'guest');

$stmt = $dbh->query("SELECT * FROM m_test") ;
$ret = $stmt->fetchAll( PDO::FETCH_ASSOC ) ;

print $ret[0]['val'] ; 
?>

ブラウザで確認

http://localhost:8080/

結果

:D

感想

エラーが解消しない場合は、homebrew入れなおすのが早いです
巷にあふれるメモですが、メモしながら作業すると理解が進んだので良かったです