PLESK 管理下のマシンで開発者ごとの workspace で CakePHP 1.2 を動かせるようにする修行
apache 全体の設定
まずは、↓で WEB アクセスが可能になるように設定
/var/proj/dev 以下で PHP が動作できるように、さらに CakePHP が要求する Rewrite エンジンの使用を許可するために vhost.conf に追加設定が必要。
<IfModule mod_alias.c> AliasMatch ^/([^/]+)/(.*) /var/proj/dev/$1/htdocs/$2 </IfModule> <Directory /var/proj/dev/> <IfModule sapi_apache2.c> php_admin_flag engine on php_admin_flag safe_mode off php_admin_value open_basedir "/var/proj/dev:/tmp" </IfModule> <IfModule mod_php5.c> php_admin_flag engine on php_admin_flag safe_mode off php_admin_value open_basedir "/var/proj/dev:/tmp" </IfModule> AllowOverride All </Directory>
AllowOverride All はやりすぎかな、と思うが、とりあえず。
/var/www/vhosts/mato.me/conf/httpd.include はすでに作られているので、
# /usr/local/psa/admin/bin/websrvmng -v -a
は不要。さくっと
# service httpd reload
だけ。
個々のワークスペースの設定
アーカイブの展開
cake は ワークスペース、たとえば ws1 の下に展開する。
$ pwd /var/proj/dev $ mkdir ws1 $ cd ws1 $ bzcat /path/to/archive/cake_1.2.1.8004.tar.bz2 | tar xvf -
で、app/webroot を公開ディレクトリとする。すでに apache の AliasMatch で仮想ディレクトリパス XXX/YYY が /var/proj/dev/XXX/htdocs/YYY に対応するようにしてあるのでL(XXX が 各自が作ったワークスペース名、YYY がその中のファイル名)、
$ mv app/webroot htdocs
でよい。
CakePHP まわりのディレクトリパスの設定
htdocs/index.php 内の中をちょこっと変更。
$ diff /tmp/index.php.org htdocs/index.php 44c44 < define('ROOT', dirname(dirname(dirname(__FILE__)))); --- > define('ROOT', dirname(dirname(__FILE__))); 51c51 < define('APP_DIR', basename(dirname(dirname(__FILE__)))); --- > define('APP_DIR', 'app');
APP_DIR なんかは強引に設定。でも、いいよね、これで。
RewriteBase の設定
仮想ディレクトリパス /XXX の下に index.php があるので、cakePHP に入っている .htaccess そのままじゃだめなんで、RewriteBase を追加。
$ cat htdocs/.htaccess <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] RewriteBase /ws1 </IfModule>
さらに ...
app/tmp/ の下にできるファイル群はリポジトリに入れたくないから、どうにか工夫しないとだな。vendors/ の下も入れる必要ないな。なんかうまい方法があるんだろうな。