ryhmrt’s blog

意識低い系プログラマの雑記

CakePHP開発用簡易環境構築メモ

少し前、CakePHPを使ってみようと思い、環境を作った時のメモ。

構築環境は下記の通り。

macportsは既に入っていて、mysqlもセットアップされている状態から作業を開始した。

php5 インストール

macportsでインストール。fastcgiで動かしたかったので、variantsを指定した。

$ sudo port install php5 fastcgi

mysqlに繋ぐためのモジュールを追加インストール。(少し前のバージョンではvariantsで指定していたらしいのだが、今のバージョンは別パッケージになっている)

$ sudo port install php5-mysql

php.ini 設定

まずは標準で用意されているテンプレートをコピー。

$ sudo cp /opt/local/etc/php5/php.ini-development /opt/local/etc/php5/php.ini

mysqlに繋ぐための設定。

pdo_mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock

PATH_INFOとPATH_TRANSLATEDがきちんと動くようになるという設定。(何で標準でonになっていないのか理解に苦しむ)

cgi.fix_pathinfo=1

lighttpd インストール

これもmacportsでインストール。
$ sudo port install lighttpd

/opt/local/etc/lighttpd/lighttpd.conf 設定

ドキュメントルートを自分の環境に合わせて設定

とりあえず手元で動かすだけなので、実行ユーザの変更をしないようにコメントアウト

#server.username  = "_www"
#server.groupname = "_www"

CakePHP用のmod_rewrite設定(きれいじゃないけど、とりあえずの用途にはこれで何とかなるのではないかと思う)

url.rewrite-if-not-file = (
  "^/$" => "/app/webroot/",
  "^(.*\.(html|png|jpg|gif|css|js|ico))$" => "/app/webroot/$1",
  "^/(.*)$" => "/index.php?url=$1"
)

/opt/local/etc/lighttpd/modules.conf 設定

mod_rewrite有効化。

server.modules = (
  "mod_access",
#  "mod_alias",
#  "mod_auth",
#  "mod_evasive",
#  "mod_redirect",
  "mod_rewrite",
#  "mod_setenv",
#  "mod_usertrack",
)

fastcgi有効化。

include "conf.d/fastcgi.conf"

/opt/local/etc/lighttpd/conf.d/fastcgi.conf 設定

fastcgi.server = ( ".php" =>
                   ( "php-local" =>
                     (
                       "socket" => socket_dir   "/php-fastcgi-1.socket",
                       "bin-path" => "/opt/local/bin/php-cgi",
                       "max-procs" => 1,
                       "broken-scriptfilename" => "enable",
                     )
                   ),
                   ( "php-tcp" =>
                     (
                       "host" => "127.0.0.1",
                       "port" => 9999,
                       "check-local" => "disable",
                       "broken-scriptfilename" => "enable",
                     )
                   ),

                   ( "php-num-procs" =>
                     (
                       "socket" => socket_dir   "/php-fastcgi-2.socket",
                       "bin-path" => "/opt/local/bin/php-cgi",
                       "bin-environment" => (
                         "PHP_FCGI_CHILDREN" => "16",
                         "PHP_FCGI_MAX_REQUESTS" => "10000",
                       ),
                       "max-procs" => 5,
                       "broken-scriptfilename" => "enable",
                     )
                   ),
                )

app/config/core.php 設定

date_default_timezone_set('Asia/Tokyo');
Configure::write('Security.salt', 'てきとうに入力');
Configure::write('Security.cipherSeed', 'てきとうに入力');

DB作成

mysqlにアプリケーション用のデータベースとユーザを作成。

app/config/database.php 設定

作成したDBの接続情報を設定。