Comments: Installation
2 - Here is what I did
Note, this is not tested beyond just an installation. ie, I haven't built a fully functioning site using cake so I haven't tested all possibilities of modifying the path tree. But ... with a few slight modifications I was able to setup cake so it existed under a new structure.
One thing about PhpCake that I never understood is why have business and dao code under webdocs. To me this is bad design. You should never have code that does not affect the view directly inside the webdocs. Also there are 3 index.php files when one is only needed. Rewrite rules should not be the fix. Most people are on shared hosts and cannot explicity set a webdoc root, but the majority are able to upload files one level above webdocs, which, imo, is where all business and dao code should go. Apache is not an app server really so you can't define an application structure so Cake does it internally.
So what I did:
1. I have two directories: public_html, and CAKE (I tend to use uppercase for libraries)
2. move app/webroot to public_html, move cake to CAKE/cake, move everything else in app to CAKE/mvc
3. There are two files I modified: public_html/index.php in what formerly was webroot (the other two index.php files I just got rid of), and CAKE/cake/config/paths.php
4. Modfiy these constants in index.php:
CAKE_CORE_INCLUDE_PATH --> should now point to where CAKE is located.
I defined one constant: MVC_APP which points to CAKE_CORE_INCLUDE_PATH.DS."mvc"
APP_PATH --> if you have ini_set it goes to null .. but I set it to: CAKE_CORE_INCLUDE_PATH.DS."mvc".DS
5. Modify this in paths.php:
APP --> I set it to MVC_APP.DS
Thats it. But note I haven't actually built anything yet, this is just a default installation. But I think its easy enough if you run into a path issue to fix it.
3 - Oops
Most of my example was deleted thru when it was posted. So I put it up here:
http://john.mardala.com/cake.txt
4 - Tutorial from my Blog
You are more than welcome to have the tutorial from my blog for this project. It covers rather more than just the installation, but you could easily take that piece out and post it here.
http://keithmedlin.com/?p=26

By xentek on 23/2/08
1 - Advanced Installation
In a typical shared hosting environment, you get a path like this for your vhosts:
/var/www/vhosts/site_name.com/
This is an ideal location for storing the core cake lib and other code that doesn't need to be in the webroot.
But the biggest limitation is that the host has your the document root for the vhost configured:
/var/www/vhosts/site_name.com/htdocs
Since other stuff on the system depends on a standard location for each site (especially control panel software like Plesk, CPanel, and the like), you can't really modify this.
What I'd like to see in this section is how you can adapt CakePHP to treat the htdocs folder as the web root, and be able to install all the other files outside of the webroot. The Advanced Install section starts to address this, but doesn't tell you where to put the index.php, and vendors folder.
Ideally, I see it looking something like this:
/var/www/vhosts/site_name.com/cakephp
Which has the app folder, the cake folder (which could optionally mapped elsewhere, if you wanted this to be a 'universal' library for the whole server), index.php (probably not needed), and docs.
The app/webroot folder would be mapped to /var/www/vhosts/site_name.com/htdocs
However it is unclear how one would actually do this in the current docs. Maybe the approach should be in telling the user how it finds each folder, and how you might actually go about telling it where to find the ones you want to use. But the biggest question that's left for me is, can you 'rename' the webroot folder... so that it can be called whatever your host forces you to call it?
I don't know... maybe its just as easy as uploading the contents of /cakephp to /var/www/vhosts/site_name.com and putting everything in app at /var/www/vhosts/site_name.com/htdocs and mapping it to this folder with the ROOT, and APP_DIR constants... But the docs don't really let me know if this would be possible.