BlogCFC tblblogpagescategories' doesn't exist

Table 'tblblogpagescategories' doesn't exist

Trying to add pages in BlogCFC 5.9.8.012 throws the error.

The reason is there was a table added in 5.9.8.11, but the readme.txt doesn't tell you which table was added. It also says the SQL files were updated for the new table BUT it fails to mention the installer was not updated. This means you have to get the error before you know to fix it. Once you figure all that out....

Just run the SQL for the new table, tblblogpagescategories:

view plain print about
1CREATE TABLE tblblogpagescategories (
2 categoryidfk varchar(35) NOT NULL,
3 pageidfk varchar(35) NOT NULL
4 )

Now you can add pages!

BlogCFC Pod Error on Railo

When attempting to edit a Pod in the BlogCFC pod manager on Railo, the resulting error pops up:

attribute validateAt is not supportrd for tag input

shouldn't that be:

attribute validateAt is not supported for tag input

Apparently Railo does not support the validatAt attribute, or maybe it is just not "supportrd", no matter the OS.

The fix is to go into /admin/podform.cfm and around line 54 remove

view plain print about
1validateat="onBlur" validate="regular_expression" pattern="[A-Za-z]" message="Please enter only Alpha characters for the Pod Title"

Transforming:

view plain print about
1<cfform action="pod.cfm" method="post">
2                Pod Name: <cfinput value="#url.pod#" validateat="onBlur" validate="regular_expression" pattern="[A-Za-z]" message="Please enter only Alpha characters for the Pod Title" type="text" name="NewPod" size="25"><br>
3.....

To:

view plain print about
1<cfform action="pod.cfm" method="post">
2                Pod Name: <cfinput value="#url.pod#" type="text" name="NewPod" size="25"><br>
3.....

You will then have to do your own personal validation when editing your Pod Title, which means letters only with no spaces, special characters or numbers.

BlueOnyx Note:
On BlueOnyx, after making the above changes, attempting to save your pod edits produces this error:

no write access to source file [/home/.sites/85/site9/web/includes/pods/tagcloud.cfm]

no write access to source file [/home/.sites/85/site9/web/includes/pods/tagcloud.cfm] at railo.runtime.tag.FileTag.checkFile(FileTag.java:915):915 at railo.runtime.tag.FileTag.actionWrite(FileTag.java:513):513 at railo.runtime.tag.FileTag.doStartTag(FileTag.java:297):297 at blogcfcadmin.pod_cfm$cf.call(/home/.sites/75/site8/web/blogcfcadmin/pod.cfm:26):26 at railo.runtime.PageContextImpl.doInclude(PageContextImpl.java:764):764 at railo.runtime.listener.ClassicAppListener._onRequest(ClassicAppListener.java:35):35 at railo.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:24):24 at railo.runtime.PageContextImpl.execute(PageContextImpl.java:1973):1973 at railo.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:280):280 at railo.loader.servlet.CFMLServlet.service(CFMLServlet.java:32):32 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803):803 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269):269 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188):188 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210):210 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172):172 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127):127 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117):117 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108):108 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151):151 at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200):200 at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291):291 at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:775):775 at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:704):704 at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:897):897 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685):685 at java.lang.Thread.run(Thread.java:619):619

No write permissions. Also BlogCFC is running as user, tomcat, which is not in this site's group (site9 group in this example). Add tomcat to group site9 and change group write permissions so that tomcat can modify the file.

See if tomcat is in group site9:

view plain print about
1cat /etc/group

Add tomcat to site9 group:

view plain print about
1/usr/sbin/usermod -a -G site9 tomcat

Next, change group permissions for site9 on the pods directory. Navigate the site's web directory first.

view plain print about
1chmod -R g+w includes/pods

Check your work. Is tomcat in site9? Do permissions show group write?

view plain print about
1cat /etc/group
2ls -la includes/pods

Restart Tomcat

view plain print about
1/sbin/service tomcat5 restart

Wait for the site to come back up and make your pod edits within BlogCFC's Pod Manager. You should have a successful edit!


Installing BlogCFC on Railo and BlueOnyx

If you are reading this, you probably already know about BlogCFC. It's great. This blog is using it. The link is at the bottom of the page and here as well. BlogCFC.

To install BlogCFC on Railo running on BlueOnyx....

Open the client folder and place the contents under /web/ Delete Application.cfc from /web/ which was created when Railo was deployed. BlobCFC uses Application.cfm.

The Application.cfc error was: key [ISCOLDFUSIONMX7] doesn't exist in struct (keys:applicationname)

BlogCFC on Railo / BlueOnyx Error - key [ISCOLDFUSIONMX7] doesn't exist in struct (keys:applicationname)

The next was: Table 'scrumhalfdb.tblBlogEntries' doesn't exist

BlogCFC on Railo / BlueOnyx Error - Table 'scrumhalfdb.tblBlogEntries' doesn't exist

This is because Linux & MySQL is case sensitive. The file blog.cfc around line 1000, function get Archives has tblBlogEntries camel cased when it should be all lowercase. Edit /web/org/Camden/blog/blog.cfc to correct this, convert tblBlogEntries to tblblogentries as the /install/mysql.sql creates the tables.

The blog now works and shows no blog entries.

BlogCFC on Railo / BlueOnyx Works! - screen shot of empty blog

We have to change the BlogCFC Admin directory because it conflicts with the BlueOnyx Admin. I decided to change my folder name to blogadmin.

Change the admin directory to something else, like blogadmin A command find and replace /admin/ to /blogadmin/ of just the files in the newly named /blogadmin/ folder, formerly named /admin/.

But when we go to the blogadmin/folder, we get no login, just the body of the initial admin page:

BlogCFC on Railo / BlueOnyx not quite done - incomplete admin screen

This was because on line 42 of /web/blogadmin/Application.cfm:

view plain print about
1<cfif findNoCase("/admin", cgi.script_name) and not isLoggedIn() and not findNoCase("/blogadmin/notify.cfm", cgi.script_name)>

The

view plain print about
1<cfif findNoCase("/admin"...

needs to be

view plain print about
1<cfif findNoCase("/blogadmin"...

This was missed on the command find and replace because we had a trailing slash (/).

But wait, there's more...

Next you'll find that you cannot edit settings in BlogCFC admin settings. When changing settings in admin/settings.cfm you get an error with Script Name: /blogadmin/settings.cfm?

view plain print about
1Message: /home/.sites/<site #>/site<ID>/web/org/camden/blog/blog.ini.cfm (Permission denied)
2Java.io.FileNotFoundException

BlogCFC on Railo / BlueOnyx Error - Message: /home/.sites/../siteID/web/org/camden/blog/blog.ini.cfm (Permission denied)
Java.io.FileNotFoundException

This is because of Linux permissions. /home/.sites/siteNumber/siteID/web/org/ is owned by the site admin and needs to be owned by Tomcat. Change ownership to tomcat:

view plain print about
1chown -R tomcat.site<ID> /home/.sites/<site #>/site<ID>/web/org/

Now you will be able to save settings for BlogCFC.

Next issue to deal with is SES URLs in Tomcat. Because BlogCFC takes advantage of SES URLs adjustments need to be made within Tomcat's web.xml.

Another way around is to disable the SES coding in the BlogCFC code. In this link, http://www.coldfusionjedi.com/forums/messages.cfm?threadid=BB778077-E1D7-BD85-E2A147C3B0F4ECBA , Ray tells us to edit makeCategoryLink which is for categories. makeLink for entries. Those are both in blogcfc. You would also need to edit the categories pod.

Otherwise we can edit Tomcat's web.xml by adding the following:

view plain print about
1<servlet-mapping>
2 <servlet-name>CFMLServlet</servlet-name>
3 <url-pattern>/index.cfm/*</url-pattern>
4 </servlet-mapping>
5
6 <servlet-mapping>
7 <servlet-name>CFMLServlet</servlet-name>
8 <url-pattern>/page.cfm/*</url-pattern>
9 </servlet-mapping>

We have to add the wildcards for both page.cfm and index.cfm. If you add pages to your blog site they are referenced by page.cfm and will fail otherwise.

If you make a mistake here or over experiment with the servlet mappings and url patterns, your site's Tomcat instance will fail to start correctly or even at all.

You will have to restart Tomcat in order for the changes to take effect.

Stopping and starting Tomcat through the BlueOnyx Server Management Tomcat Host Manager Interface results in an error.

HTTP Status 503 - This application is not currently available type Status report message This application is not currently available description The requested service (This application is not currently available) is not currently available. Apache Tomcat/5.5.23

BlogCFC on Railo / BlueOnyx Error - Tomcat Error -HTTP Status 503 - This application is not currently available

Therefore, we must Restart Tomcat from the command line for the whole server:

view plain print about
1/sbin/service tomcat5 restart

Don't be too anxious, the shell command line will report Tomcat has started but Railo and everything else has to load too. Wait a couple of more seconds and then test the site.

BlogCFC pod updates on Railo BlueOnyx error

The Problem:
Permission denied when updating pods on BlogCFC on Railo on BlueOnyx. Permission denied invalid file [/home/.sites//web/includes/pods/pods.xml]

The Solution:
This is because the pods.xml file is not in in the /web/includes/pods/ directory. Assuming, without looking at the code that BlogCFC pods creates pod.xml when the pods are initially updated. We can create the file as shown.

Login as root and cd into the pods directory.

view plain print about
1[root@www pods]# ls
2archives.cfm monthlyarchives.cfm recentcomments.cfm subscribe.cfm
3calendar.cfm pages.cfm rss.cfm tagcloud.cfm
4feed.cfm recent.cfm search.cfm

Create the pods.xml and change ownership to tomcat.
view plain print about
1[root@www pods]# touch pods.xml
2[root@www pods]# chown tomcat.site8 pods.xml
3[root@www pods]# ls -l
4total 48
5-rw-r--r-- 1 siteuser site8 1049 Dec 28 21:20 archives.cfm
6-rw-r--r-- 1 siteuser site8 4809 Dec 28 21:20 calendar.cfm
7-rw-r--r-- 1 siteuser site8 1267 Dec 28 21:20 feed.cfm
8-rw-r--r-- 1 siteuser site8 1181 Dec 28 21:20 monthlyarchives.cfm
9-rw-r--r-- 1 siteuser site8 779 Dec 28 21:20 pages.cfm
10-rw-r--r-- 1 tomcat site8 0 Jan 7 11:41 pods.xml
11-rw-r--r-- 1 siteuser site8 1132 Dec 28 21:20 recent.cfm
12-rw-r--r-- 1 siteuser site8 1720 Dec 28 21:20 recentcomments.cfm
13-rw-r--r-- 1 siteuser site8 665 Dec 28 21:20 rss.cfm
14-rw-r--r-- 1 siteuser site8 940 Dec 28 21:20 search.cfm
15-rw-r--r-- 1 siteuser site8 3723 Dec 28 21:20 subscribe.cfm
16-rw-r--r-- 1 siteuser site8 2188 Dec 28 21:20 tagcloud.cfm

Change write permissions so the site8 group can write. This is so that siteuser can write to the files as well. If one of the files owned by siteuser is executing the write to pod.xml then it will complete. As it turns out, after testing, this step is completely unnecessary. User tomcat does all the writing. This note is left for reference only.
view plain print about
1[root@www pods]# chmod g+w pods.xml
2[root@www pods]# ls -l
3total 48
4-rw-r--r-- 1 siteuser site8 1049 Dec 28 21:20 archives.cfm
5-rw-r--r-- 1 siteuser site8 4809 Dec 28 21:20 calendar.cfm
6-rw-r--r-- 1 siteuser site8 1267 Dec 28 21:20 feed.cfm
7-rw-r--r-- 1 siteuser site8 1181 Dec 28 21:20 monthlyarchives.cfm
8-rw-r--r-- 1 siteuser site8 779 Dec 28 21:20 pages.cfm
9-rw-rw-r-- 1 tomcat site8 0 Jan 7 11:41 pods.xml
10-rw-r--r-- 1 siteuser site8 1132 Dec 28 21:20 recent.cfm
11-rw-r--r-- 1 siteuser site8 1720 Dec 28 21:20 recentcomments.cfm
12-rw-r--r-- 1 siteuser site8 665 Dec 28 21:20 rss.cfm
13-rw-r--r-- 1 siteuser site8 940 Dec 28 21:20 search.cfm
14-rw-r--r-- 1 siteuser site8 3723 Dec 28 21:20 subscribe.cfm
15-rw-r--r-- 1 siteuser site8 2188 Dec 28 21:20 tagcloud.cfm

Now we can update the pods, their order and display.

But going to the blog itself we see that nothing has changed. Why is that? Because we did not refresh our blog cache. Go back to the admin and click on "refresh blog cache" from the menu.

BlogCFC was created by Raymond Camden. This blog is running version 5.9.7. Contact Blog Owner