Lucee 5 installer issues with Server 2016/IIS?

I just set up a fresh Windows Server 2016 install with IIS and all the ASP/.NET installed. I downloaded the latest stable Lucee 5 installer and ran it as an administrator. The first time it got to the boncode connector install and then froze (let it sit 40 minutes). I rolled the VM back and ran it again this time skipping the boncode install. I downloaded the latest boncode connector installer and ran that (as administrator) and took all the defaults. It completed successfully. I can go to the Lucee server admin and that works fine. I added an IIS hosting entry for a test site then added an index.html to make sure it was working (worked fine). I replaced the index.html with an index.cfm and instead of the content of the cfm file being served, it brings up a strange looking Lucee welcome page with a bunch of broken css. I thought this was odd so I rolled it back and did it all again in case I missed something. Same result. I rolled it back and re-downloaded everything then ran the install again. Same result.

Any ideas what would cause that? Does Lucee not get along with Server 2016/IIS?

I ran the Lucee/Tomcat8/nginx install on a Ubuntu server and it all works perfectly. Something about it just doesn’t like Windows.

I’m not sure if there perhaps is an issue with Windows Server 2016/IIS10 with Lucee 5.1.3.18 as we have an issue that still isn’t resolved.

Aside from never being able to update I am currently running Lucee 5.1.0.34 on Windows Server 2016 and IIS10 successfully.

I set up a fresh 2012 R2 VM to try it on a different OS today during lunch.

I ended up with the exact same results.

I end up with this being the only thing that it will serve.

Adding any new site and placing any kind of cfm file in it results in what you see above being displayed in the browser. If you call an html file it is served correctly.

I then rolled back the 2016 VM to make it fresh and tried these other instructions:

http://docs.lucee.org/guides/running-lucee/windows.html

I end up with tomcat working but Lucee not working. Looks like the instructions are not complete.

Anyone have any working instructions for a Windows install?

I’ve installed Lucee successfully several times on Windows 2012 R2 using the Installer, but manually configuring the BonCode connector:

Instructions here

1 Like

What Lucee version are you installing? Did you adjust or install anything else before hand? I have the .Net items installed, I unlocked the downloaded installers, and I ran each as administrator. I tried it both with the built in Boncode connector and without it (installed afterwards using the boncode installer). I tried boncode 1035 and 1036 with no difference.

What are you doing different as I must be missing something?

Thanks

I’ve installed both 4.5 and 5 using the installer.

Hard to say obviously, but a few ideas:

  1. What do your <Host> entries in server.xml look like? They should be something like this:
<Host name="website.domain" appBase="webapps">
 <Context path="" docBase="C:\path\to\wwwroot" />
</Host>
  1. We always disable “mod_cfml”, prefering to add hosts manually as above although it requires a Lucee restart. Do this by searching for and commenting it out the entire<Valve className="mod_cfml.core"/> element in server.xml

  2. Check file permissions.

There aren’t any being added automatically. Only the default one is there. If I try to add one manually (using the exact same format you have there) then the service will not start. The installer should be adding these via mod_cfml.

That seems to defeat the purpose of the installer. If you are going to have to do everything manually then why bother with it?

Do you have the Lucee service running under a dedicated user_? I left the service running with the default settings so it should not have any permission issues.

Thanks

After I wrote the post above I noticed an update for Lucee appeared in the server admin. I ran it and cycled the service. No change. I went back in and added the host to server.xml manually and now it is working. This did not work with the old version.

Apparently the mod_cfml is not working. Anyone have any insight on that?

Thanks

[quote=“Robert_Cassetty, post:7, topic:2274”]
That seems to defeat the purpose of the installer. If you are going to have to do everything manually then why bother with it?[/quote]
I’m not doing everything manually, just the BonCode/IIS connection and hosts. Ideally I wouldn’t use the installer, but for now I’m happy to let it take care of the basic Lucee/Tomcat and Windows Service setup.

Ok. Thanks for your help. Hopefully I can figure out how to get mod_cfml working. I would prefer the process to be automated so I can have others easily add sites with Lucee support.

I figured it out. It was a permissions issue but not where I expected them to be. I adjusted the permissions on the 3 files boncode writes to the Windows folder and mod_cfml started working. I then followed the lockdown guide and created a dedicated user for lucee, set the service to run as that user, set permissions on the lucee folder, the wwwroot folder, and those 3 files in /windows. Still working.

Figured I would post this here in case someone else has this issue.

Thanks to all for the help.

2 Likes

For anyone else finding this post via google (as i did) and coming across similar behaviour it could also be caused by mod_cfml if your using 127.0.0.1 to access your site in IIS after enabling logging for mod_cfml tomcat valve it reported this in the logs

[mod_cfml] Counters have been reset (maxContexts, timeBetweenContexts)
[mod_cfml] host [127.0.0.1:88] contains ':'. New value => 127.0.0.1
[mod_cfml] Decoded Request URI => /index.cfm
[mod_cfml] QueryString => null
[mod_cfml] DocRoot Value => C:\blah\
[mod_cfml] Webserver main Host => w3svc2
[mod_cfml] Alias Value => 127.0.0.1
[mod_cfml] FATAL: Host [127.0.0.1] already exists.

which suggest mod_cfml doesn’t support using the same host header with different ports when setting up contexts as existing 127.0.0.1 context belongs to the lucee welcome page already. i’ve added a post about this on the mod_cfml group here

The 127.0.0.1 context is configured by default in the tomcat server.xml file in order to give you access to the default server and web admins for Lucee.

The “host” header limitation is not a limitation of Lucee or mod_cfml. It’s specific to how domains are mapped to contexts within Tomcat and if memory serves, it’s part of the J2EE specification. Tomcat contexts don’t care what port you accessed the context on - they only care about what domain (host) you’re hitting.

Yes i guessed that it didn’t care about the port from the error although i didn’t know if it was a limitations of mod_cfml or not, if it’s a limitation enforced by the J2EE specification seems fairly unlikely anything can be done about it then.

Either way with a default install out the box if you need to use a site other than the welcome site on 127.0.0.1 it’s not going to work, do you know if it is possible to remove the welcome site? i think i tried deleting it from the work (or webapps) directory in tomcat but that just caused it to 404, possibly i have to edit context.xml and remove it from there too?.

Kind of sucks if you want to have multiple sites running on 127.0.0.1 but i guess the argument can be made you should be using multiple tomcat instances in that case though.

have you tried using .localhost? i.e. site1.localhost etc

I’m replacing a existing setup so need to keep the existing port binding in place so adding it to the server.xml manually (like below) seems like the safest option as i’ve already tested it works and i can’t guarantee how other people would be accessing the sites on the box (some may use an external ip and port, some may use the loopback, etc).

Using a different hostname/binding on the site would work as it would cause mod_cfml to use a context other than 127.0.0.1 but i specially want to allow it to be used as it can be currently.

Kind of sucks if you want to have multiple sites running on 127.0.0.1 but i guess the argument can be made you should be using multiple tomcat instances in that case though.

Like most things in IT, “it depends”. Multiple instances of Tomcat take up a lot of unnecessary RAM. Lots and lots of folks use a single instance of Tomcat with multiple contexts defined within it. You could even make the argument that Lucee was designed to be used in this way because of how it provides an overall server admin as well as a web admin for each context.

You CAN have multiple sites run off 127.0.0.1. Like Zac mentioned above and like I mentioned on the mod_cfml list. You edit your local hosts file to include your local domain (“mysite.com.local” for example), then configure your web server to use that .local domain like you would any normal domain, and viola, you have yourself a unique local site running on 127.0.0.1. You can do this for both public and private domains.

Some docs:
https://kb.viviotech.net/display/KB/How+to+Preview+a+Domain+by+Modifying+your+Windows+Hosts+File