少し前、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の接続情報を設定。