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.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: