SolarPHP on Mosso
I use mosso for this site as well as a couple others and recently I wanted to use SolarPHP for one of them. Solar uses some symlinks near the base to reach deeper into the directory structure of Solar and your app to make things a little easier. Since mosso doesn't support symlinks I had to tweak Solar a bit. Here is what I did.
copy the main solar directories to web/ except for the docroot directory.
put solar/docroot contents in web/content
modify the .htaccess file in the web/content directory and add RewriteBase / (needed for mod-rewrite with mosso)
make sure to chmod 777 -R on web/sqlite and web/tmp
in web/content/index.php change
set_include_path("$system/include");
TO
set_include_path($system);
AND
require_once "Solar.php";
TO
require_once "$system/source/solar/Solar.php";
change web/source/solar/Solar/Class/Stack.php _run() method from
include func_get_arg(0);
TO
$file = Solar_File::exists(func_get_arg(0));:br:include $file;
in web/source/solar/Solar/Path/Stack.php find() method
add
$spec = Solar_File::exists($spec);
BEFORE
return $spec;
In web/source/solar/Solar/File exists() method
add
if ($file[0] !== '/') {:br: $first = strtolower(substr($file, 0, strpos($file, '/')));:br: $file = 'source' . DIRECTORY_SEPARATOR . $first . DIRECTORY_SEPARATOR . $file;:br:} else {
$file = str_ireplace(Solar_Config::get('Solar', 'system') . '/source/', 'source/', $file);:br:}:br:
AFTER
// no file requested?:br:$file = trim($file);:br:if (! $file) {:br: return false;:br:}:br:
Then for web/content/public instead of having the Solar and/or whatever
your vendor name is be a symlink to web/source/solar/Solar/App/Public
delete it and create a folder named Solar (or whatever your vendor name is) and put your images, scripts, etc folders within it.
That's it. You should now have a working Solar setup in mosso.