2014年6月6日金曜日

cakephpのアプリとhtmlを分離する

Cookbookには、応用インストールとして
http://book.cakephp.org/2.0/ja/installation/advanced-installation.html#cakephp
「複数のアプリケーションでCakePHPを共有する」というのがあります。

エンジニアとデザイナが分散開発したいときに同じファイルを編集してしまい、
デグレードするということもありますので、うまく開発したいところです。
そのためにはソース管理から分けてしまうというのは、ひとつの手だと思いますので、
これを試して、CakePHPのコアライブラリと、phpアプリ部分と、静的なhtml(js,css)を分離したいと思います。


以下が手順です。(sudoが必要な場合もを省略して書いています。)

やりたいこととして、
  •  CakePHPのコアライブラリを/usr/lib/Cakeに置きます。
  •  appを/usr/share/nginx/scriptに置きます。
  •  webrootを/usr/share/nginx/htmlに置きます。

※前提として、この記事の環境までができているところからになります。

$ cd /usr/share/nginx/html/cake_2_5

まずは、コアライブラリを複数のアプリケーションで使えるようなところへ移動します。

$ mv cake_2_5/lib/Cake /usr/lib/

次は、アプリケーションのwebroot(静的なページ)をドキュメントルートにします。
$ mv cake_2_5/app/webroot /usr/share/nginx/html/

/etc/nginx/conf.d/default.confを編集
location / と location ~ \.php$ の2箇所のrootを次のようにします。
root  /usr/share/nginx/html/webroot;

confを編集したので、再起動します。
$ service nginx restart

(php)アプリケーション部分を移動します。

$ mv cake_2_5/app /usr/share/nginx/script/

最後に、CakePHPの定数を編集します。
/usr/share/nginx/html/webroot/index.phpを編集します。
編集する定数は、 ROOT 、 APP_DIR 、 CAKE_CORE_INCLUDE_PATH です。

それぞれ以下のようにします。
39行目付近     define('ROOT', DS . 'usr' . DS . 'share' . DS . 'nginx' . DS . 'script');
47行目付近     define('APP_DIR', 'app');
64行目付近     define('CAKE_CORE_INCLUDE_PATH', DS . 'usr' . DS . 'lib');

以上で、設定はできましたので、
ホストPCからブラウザで、http://192.168.33.10/へアクセスすると
CakePHPのデフォルトのページが出るようになります。
もちろん、http://192.168.33.10/postsへアクセスすれば、
ブログチュートリアルで作成したページヘアクセスできます。

0 件のコメント:

コメントを投稿