C5 on a WAMP Stack

27 Apr

Concrete5 is a pretty cool CMS.  I’ve used Joomla, Drupal, and WordPress in the past to get various sites up and running, and now have the opportunity to use Concrete5

Out of the box it’s pretty cool, but there are a few things that you need to tweak in order to get it running smoothly on a WAMP stack (Windows Apache/MySQL/PHP). First, you’ll want to have a Python interpreter running on your server as one of the cool “optional” tools uses a Python script.  But to get it working on WAMP, you’ll have to do some code tweaks.

Here are some of the issues & workarounds that I’ve implemented.  If you’ve installed the “Sample Content:”

  • On the sample “Home Page” under the “Welcome…” header, the “login” link uses a relative  link which doesn’t work (it sends you up to the top directory of your web server, which in my case sends you to a different website)
  • The fix is to “Edit Page” and change the link to a fully qualified link. (something like: http://www.myweb.com/c5directory/index.php/login

The next fix is kind of difficult.  I haven’t found a truly acceptable fix, but there is a workaround available.  It has to do with the “optional” version comparison feature.  I think it’s “optional” because it doesn’t “just work” on Windows, and after looking at the code, I can’t see that it would work quite the way it’s presented – even on LAMP stacks.  I’m currently still working on this, so I don’t yet have a fix, but here’s what I’ve discovered so far (CAUTION: Be sure to make backups of these files before making changes!):

  1. The first problem is the use of a generic “shebang” at the top of the python script ( found at /concrete/libraries/3rdparty/htmldiff.py ).  You’ll need to change it to something like: #!C:/WAMP/www/python/bin/python.exe (or wherever your python install is located)
  2. Next is the use of a PHP function that has a documented bug for Windows – is_executable  This function can be found on-line 64 in the file that calls the python script:  /concrete/tools/versions.php
  3. If you change the is_executable function to the is_file function, you will get a bit further.  At least the python script will execute, but the variables representing the file handles are not passed, at least it doesn’t seem like they are.

I’m still mucking with the versions.php and htmldiff.py files to try to get the functionality to work the way it’s “supposed to.” In the mean time, the best workaround for this I’ve found is described on the Concrete5 Forums (and the fellow even included a downloadable executable – how nice!).

I hope to have another update soon – at least sooner than since my last post…

[EDIT] – Hmm, seems WordPress will not allow comments on this post no matter what I do!  I set the defaults to allow comments, and ticked the Allow boxes for this particular page, and it still reverts to “Comments Closed” – not sure what’s going on here, but hopefully WP will fix the issue.  Maybe it’s just a caching error…

[EDIT 2]  I ended up trashing the original post and pasting it into a new post.  The Allow Comments boxes seem to be checked from the “get go” this time.  Hopefully the issue is fixed.

[EDIT 3] NOPE!  Still broke, and again when I go into “edit” mode the Allow Comments boxes are now un-checked.  Re-Checking them has no effect.  SO… WP is broken. Again. Still.  OH, and even before trashing and reposting, I’ve changed the theme a half-dozen times, since that was mentioned in another post as a possible fix.

[Edit 4]  Finally, they’re working again.  Apparently some WP staff were mucking around in the themes today and broke something.  At least that’s what the helpdesk person told me.


Profiles sorta work…

11 Jun

Although I haven’t gotten the mandatory part working yet, I did finally get a working roaming profile.  Unfortunately I don’t really know how I finally got it to work – as with most things windoze I just got frustrated enough to try one thing, if it didn’t work – delete the profile and try something else until it finally started working – yay!

The next road-block was  waiting for me though.  The next part of the project was to have the machines login automagically – and they will if it’s the local account, but I need them to login to the domain so the domain’s group and machine policies will take effect.  But alas, the autologin happens before the machine is registered with the domain, so it konks out saying the domain is not available at this time.  There are a couple “fixes” for this issue that I’ve tried, but again none of them seem to be working: Removing the machine from the domain and re-joining it, implementing a scripted delay prior to the login – which would work but for some reason hangs explorer.exe, actually ANY startup script, even if it’s just comments and no commands seems to hang explorer.exe – so I’m not too sure what’s going on there – Yay MS!

AND of course this week I’ve been updating a lot of our patron XP machines to SP3 where I noticed that there were some left-over turds from the last upgrade of IE7 (runonce – what a F’King annoying POS that is!!! Forcing you to pick a default search engine – if I want a F’ing search engine I go to their F’n site on my own TYVM – almost as bad as WMP10’s insistence on a music vendor).  And while doing those upgrades I was also doing other updates – like JAVA/Flash/Firefox, etc – there’s another piece of work, Adobe and Sun are getting to be just about as annoying as MS!  Continually trying to install extra bloatware “under the radar” like GoogleToolbar and OpenOffice crapWare.  If I want that Sh*t I download it myself, quit trying to foist that crap on my system when I’m just trying to get a GD update!

Is the frustration apparent yet? LOL!  Jeebus, it’s no wonder people are getting so P.O.’d at these idiots.  Well, enough ranting for today, I’m sure I’ll have more to bitch about next week! 

Problem: Domain setup for a group of public use workstations

23 May

For example: A computer lab or public library. 

Using the MS Whitepaper referenced in my last article and looking at the scenario comparison table, what I’d like to implement is closest to their provided “App-Station” template with a couple of tweaks. What I’d change are:

  • Number of users from Multiple to One (a single “patron” account)
  • Profile Persistence from “cached” to “Remove at Logoff”
  • Severely limit what’s displayed on the “Task Bar” and “Start Menu”

So in the end, the final template would be as follows:

  • Number of Users: 1
  • User Profile Type: Roaming/Mandatory
  • Profile Persistence: Removed at Logoff
  • Folder Redirection: N/A
  • User can customize: None
  • Task Bar and Start Menu: Severely Restricted
  • Assigned Applications: Few (in the 10-15 range, browsers, Office apps, plus a couple custom)
  • Published Applications: No (SW install/delete prohibited)
  • Security Context: User

The first scenario I tried was the basic “Multi-User” scenario to test the Profile delete at logoff, and of course it didn’t work – so now I’m beginning to wonder if there really is any way to enforce the profile to load from the network – even with mandatory profiles enabled and do not allow login without network profile  and delete local profile on logoff – it still logs in and uses a seemingly locally cached profile from the previous login.  When I re-boot, it DOES pick up the profile from the network at login, but then if I move icons around to change the desktop and logoff – and then log back in again, all the icons and desktop changes are still in place – it hasn’t pulled the “static” user profile from the network.  Very frustrating when you can’t even get the “Common Scenarios” to work.  Any ideas would be grand!

Non-Cached Mandatory Profile

22 May

Ok, so I still haven’t gotten this to work “as advertised.”  Supposedly you’re able to set up a non-casheable mandatory profile, but I’ve never been able to make it work.  The best so far has been that it WILL grab the profile off the network after a re-boot, but not after a simple logoff. So I’m now using a Microsofts abstract that I’m hoping will illuminate where I’ve made a bad assumption or two.  I’ll let you know how it goes, and if I get it to work like it’s supposed to I’ll add a “step-by-step” article about how to go about it.

Until then I’ve also got some interesting web development projects going on, including quite a lot of PHP, MySQL, and CSS goodies.  My solutions there may be a bit longer in getting posted here as they’re a little further down my “to do” list than my Active Directory (AD) projects.  Maybe I’ll have something somewhat appetizing to post about during or after the long weekend.  Until then may your servers stay UP!