I just helped a friend to resolve a problem he was having with his new OJS installation, and I wanted to document it here in case it helps anyone else.
The problem is that when he accessed his OJS installation under its non-canonical URL, the TinyMCE editing buttons wouldn't show. I understand that because there *is* a canonical URL setting in config.inc.php, accessing OJS under non-canonical URLs isn't necessarily supported, but in any case, here's the problem and the solution for anyone who wants to try it regardless.
The base script path for OJS was different under each of my friend's URL schemes; those two schemes being something like this:http://canonical.domain/journalhttp://non-canonical.domain
The problem then was that in lib/pkp/lib/tinymce/jscripts/tiny_mce/tiny_mce_gzip.php, the cache hash generated on line 162 doesn't include the tinyMCEPreInit.base value (generated from dirname($_SERVER["SCRIPT_NAME"])) of line 194, so that only one cache file is generated for both values of tinyMCEPreInit.base - the actual cached value depending simply on whichever URL scheme is accessed first. When the wrong cached file is served up, TinyMCE tries to load its CSS and image files from the wrong URLs, and thus its editing buttons don't show up.
There seem to be (at least) two possible solutions:
1. Edit that file so that the impending value of tinyMCEPreInit.base is added to the cache hash.
2. Turn off TinyMCE caching.
I chose the second solution, because it seemed better to edit a file native to OJS rather than one from upstream (TinyMCE). This involved editing line 369 of /public_html/journal/plugins/generic/tinymce/TinyMCEPlugin.inc.php so that disk_cache is set to false rather than to true.
I hope this helps anyone experiencing a similar problem.