Confused getting dev environment set up

I’m converting from using Adobe ColdFusion to Lucee. I have been using a bigass Windows10Pro Desktop machine as my dev machine with IIS as the web server. IF i want to be able to switch back and forth between the web sites i look after do I have to reconfigure Lucee each time I switch? How do people do development on multiple web sites?

Or do i have to switch my dev machine to WIndows Server instead?

I read on the Lucee docs that " Lucee doesn’t support multiple webserver hosts directly, however [mod_cfml] is available to achieve this."

So I’m confused now. Can I or can’t I replace my ColdFusion dev environent with Lucee? I need to check that all my sites are functioning properly before i move them to my new Viviotech/Win2019/Lucee server

OS: Windows 10 Pro v 21H1
Java Version:open =jdk version 1.8.0_302
Tomcat Version:came with installer
Lucee Version: 5.3.9.133

Cheers
Mike Kear

Hi Mike, I’d recommend using CommandBox while testing out Lucee. CommandBox can start any version of Adobe CF or Lucee in any folder and each server is a completely separate process so the wires never cross there. Inf act, you can leave them both running at the same time. And if you toss in some fun CLI modules like commandbox-cfconfig, you can even transfer your ACF config straight across to your Lucee server, or a .cfconfig.json file that will be imported on server start.

If you have more than one site you need to test or you are somehow married to IIS (and can’t just use the built in CommandBox web server), then we can walk you through that as well, but the simplest form of just running an app in Lucee is just

cd C:/websites/mywebroot
box server start cfengine=lucee

Thank you for your prompt response. MY immediate problem is just to get my stuff off the old ACF server and onto the new Lucee server and know that it’s all going to be as transparent as possible to the clients and their users. And for this to happen as quickly as possible. I would really like to be able to pull ACF off my system and say goodbye to it after 25 years.

Then of course my immediate issue is going to change to the ongoing maintenance and development work on those sites. I can see from reading about Lucee and all those extensions that there are a lot of enhancements I can make to my sites sitting there just waiting for me and it’s got me all motivated again after all this time.

I’m jusing IIS because I want my dev environment to be as close to my production environment on Viviotech as possible. SHould I ask them to set up Lucee with Comman box instead? Then they’ll both be the same, wont they?

Am i correct that i can install the full version of Lucee on my Win10Pro desktop machine ? or do i need WindowsServer for that?

It sounds like you haven’t even tested the sites on Lucee yet. I’d slow down a bit and forget Viviotech for a minute. Grab the source code down to your local machine, spin up some easy peasy Lucee sites in CommandBox and see what’s happening, what works, what doesn’t, etc. Once you’ve gotten testing and whatever changes are necessary out of the way, we can talk about deploying a production server on Lucee.

Sure, you can go through all that trouble, but this is precisely what CommandBox is well-situated to help you bypass. With CommandBox, you don’t need to install anything, really. Just have box.exe handy and a JRE for it to use and you’re off to the races.

Ok, thanks note to self: Time ot do some more learning about Command Box.

Thanks for your prompt advice.

Cheers
Mike Kear

1 Like

No, you can have them all actively running with one IIS (locally) and one Tomcat Lucee instance.

What is said in the documentation is a little misleading… It DOES NOT mean that Lucee won’t work with multiple websites. What it means: Lucee can’t automagically configure everything to do so. That is where mod_cfml comes into play: mod_cfml only configures Tomcat automatically for you, when it identifies a new added site on IIS. It will do it on the first time you hit a cfm/cfc template through IIS. If you are using only a bunch of sites, I’d configure it manually and deactivate mod_cfml. If you want to add and add sites in some sort of automatic way, then use mod_cfml.

If you want to test your cfml code for code compability, you could test it with CommandBox like @bdw429s said. Commandbox has a bunch of great features, so you can even try urlrewrites without having IIS installed. If you haven’t changed your setup in years, please learn CommandBox!!! You’ll love it!! CommandBox is from my perspective a MUST HAVE tool ( even if you don’t use it for running the cfengine ), cause it has many inbuilt tools you will need: you can e.g. import/export configuration inbetween the cfengines, use it for backing up configurations, install frameworks and much more.

If you want to test it with all the IIS configuration stuff locally as it would run on prod, than that’s a very different question, because your local setup will never be the same as on prod and you will encounter different issues. You can mimic it locally, but its different.

What I did to migrate from ACF to Railo back in 2012, I’ve setup a VirtualBox with a Windows ISO image locally (windows server installations have an evaluation time), but I’d say that’s a little outfashioned today. You could also look into running docker containers, but I don’t have much experience running it at the moment

3 Likes

I did something very similar to @andreas.

First evaluated what os specific and iis specific features does each site use
Sites that did not need IIS where ported to *NIX
Sites that specifically needed an IIS or Windows only feature, isolated only the code portions that require IIS.

The rest of the sites that can run NIX where ported over to NIX.

In testing I setup one file server to host one shared drive of all code
Then had one head IIS and one head NIX box…
You can even place ACF on Both boxes, so you have ,AFC/ IIS,-- Lucee IIS & AFC/ Apache Tomcat – Lucee - Tomcat, – > all pointed to the same shared code base.

1 Like

Thanks to you all for your help. I’ve now got Commandbox working great with sites that dont use a datasource. The sites are fast and reliable and I’m delighted!
But now I’ve come unstuck. There doesnt appear to be any help/tutrials/blog posts about how to set up a dataource that doesnt begin with “First set up a datasource in the Lucee Adminsitrator.” But if i havent installed the adminstrator … how do i set up a datasource now?

I have multiple sites that use different MSSQLServer DSNs. Including one that uses a remote DSN on a remote server

Can anyone point me at instructions on how I set up a MSSQLServer DSN?

Cheers
Mike Kear

Lucee administrator is installed by default with lucee

you can access it via http://localhost_or_domain_or_ip:UsePort/lucee/admin/server.cfm
so a simple dev install http://locahost:8888/lucee/admin/server.cfm

Thank you so much Terry. People have advised me not to try a full installation of Lucee for dev purposes. Instead to use CommandBox to set up a localised server to test the sites on … I havent yet seen how i handle the 30 sites I manage that way - I guess every time i switch from working on one to another i use CommandBox to stop that one and navigate to the other location and start the server there. but that still doesnt help me set up any datasources.

Whoa!!! I followed your advice Terry, using the following as my URL:
http://127.0.0.1:53847/lucee/admin/server.cfm and it opened a Lucee page with a password challenge. It said no password set yet. That’s not a problem but then it said to make a password.txt file with my password in it and put that file in “the root Lucee server directory”. Where do i find that? I put the password.txt file in the root of the site I’m trying to test, that didnt work, SO i guess the server directory is somewhere else. Where would that be?

Cheers
Mike Kear

Welcome to Lucee and modern CFML! You’lll see how mindblowing CFML has gotten all over these years, I promise you!

And relax, we from the community will be here to help you.

For now, please find here how to setup your password..

For creating your datasource, you only need to create one once, becuse all you di after that is, add the datasource connection string to your Application.cfc, so that you won’t need to do anything in Administrator. Today, you even don’t need to use any Administration Extension, because you can setup all these settings with Environment Variables, but lets go step by step.

Mikek,

I am not sure who would tell you to do that. From a pure technical prospective, you want your development environment to match your production environment as much as possible and the reason for that is time. Sure you can use a staging server, and then re-code everything you need to before production depending on your resources and QA checks, but that is not an efficient use of time or resources.

I use lucee locally (its a playground) then lucee on a dev virtual machine when I want something more than just Hey, did this chunk of code work.

1 Like

What’s the first step?

So I can’t set up datasources in the administrator like i used to in ColdFusion? Doing it that way meant that even though I had a local and a remote administrator, all the rest of the code (dev/staging/production) was identical.

Thank you Terry. TBH that is more like I did things in ACF. Each version of each site (Dev, staging, production) had identical code except for a small variables file that contained things that were different. They were turned into Application vars when the application was refreshed . If i can make that work the same way with Lucee, thats one fewer change i have to make on the migration.
I can see lots of things i would like to do going forward to take advantage of newer.better ways to do things but today I just need to get everything migrated and working as it has been. Then i can take my time reworking the oldest, least efficient code.

Cheers
Mike Kear

1 Like

Yes, of course you can setup the datasource in the Lucee administrator. What I was trying to say is, that many admins today may use the administrator to create the datasource once only: Then, from inside the administrator and after creating that datasource, you will be able to copy and paste the datasource definition code for that datasource into your Application.cfc. With that datasource definition code in place of your Application.cfc you won’t need to recreate that datasource in your administrator again, bcause your datasource settings will be picked up directly from within your Application.cfc. Doing it that way, you have much better portability of your web application…

Here you’ll find more information about how to Set up the datasource in Lucee

1 Like

Thank you Andreas. I have read that information in the Lucee docs. I need to have 11 sites going nearly all the time on my dev machine because i maintain them regularly, and some more i maintain infrequently. THen i need to be able to upload any changes to my production server and know that they’re going to work FOR SURE

And i need to have all 11 going simultaneously. That means (I think ) that i need to have at least 11 Lucee servers running if i use the Command Box to control them. Wouldn’t it be better to do it the way I used to run Adobe ColdFusion with one server but numerous datasources configured there?

Cheers
Mike Kear

Not necessarily. Previously CommandBox followed a Docker mentality, where one server/JVM/java process had a single web root.

This has all changed in Commandbox 5.5.0 (released yesterday) with built in Mod CFML support. Install BonCode into IIS (globally if you’re only using Lucee, or per-site if you want Lucee and Adobe side-by-side) and then enable Mod CFML support in CommandBox with

server set modCFML.enable=true
server set modCFML.sharedKey=your-key-here

Then enable AJP in CommandBox

server set web.ajp.enable=true

and set the same shared key in your Boncode settings XML file. (In the BIN folder of each web root if Boncode is installed per-site, or in the C:/Windows folder if installed globally) Now, define your sites and web roots in IIS like you normally do and CommandBox will auto-created contexts for each site and you can do it all on a single server.

More info here:
https://ortussolutions.atlassian.net/browse/COMMANDBOX-1411

Regarding your question about configuring datasources, I mentioned this above, but perhaps you missed it. CommandBox has a module you can install called commandbox-cfconfig that allows you to export/import/compare all configuration in a JSON format. So whether you want to create the datasources initially in the web admin UI and then export them to JSON or create then entirely from the CLI with the cfconfig datasource save command is entirely up to you. But once you start using CFConfig, you can start a server fresh for the first time and have the configuration automatically imported and ready to go without you ever touching the admin UI.

1 Like

=================================================
Good lord, every time i ask a question i end up with a whole new can of worms.

I dont know anything about Docker except what it is and I’ve loaded a few Docker projects. So i dont know what the Docker mentality is.

Now there’s another new app to download - Commandbox 5.5.0, while I was assured that the previous version would be the bees knees. Now i have Mod CFML (whatever that is) to learn about as well as a new CommandBox. What IS MOD-CFML ?

And what’s BonCode? Why do i need to know about that too? How many other things do i have to learn about just to get back to where I was last Wednesday? And i can’t go back to using ACF because loading something along the way here has broken that too. So even my old configuration doesnt work now.

And apparently I cant install Lucee on my WIn10 system because despite everything I do it still insists that TomCat is already a service when it isnt. No one seems to have an answer for that problem. I’ve asked here several times an dno one’s had a go at explaining it or helping me solve it.

I’ll say again - all i want to do is be able to get rid of Adobe ACF and get back to managing my client’s sites and my own sites. 11 of them. But in order to do that i need to discover what needs to be changed in the old code to make them work how they used to under ACF. I have been assured for YEARS that with Lucee there are minimal changes needed. However that’s not Zero changes. I need to test all my sites and learn what needs to change on them, so they can be loaded onto my new Lucee server without disrupting my clients’ businesses. Not spend days and days trying to get bloody Lucee to work.

But thanks for your help. I know I’m showing my frustration but i can tell you after spending all this time and getting nowhere near where I need to be I’m beginning to regret the whole thing.

Cheers
Mike Kear

Lol, I get it, there’s a lot of stuff to learn, but I think you’re also overstating it. This is sort of what you’ve signed up for. You want to run Lucee locally. But also with Adobe CF. And also with IIS. And also 11 sites. There’s no path to here wihtout you learning some new stuff. There’s also like 37 possible ways to do it and you’re getting a mixture of advice from a mixture of people. CommandBox is, in my biased opinion, still the shortest distance between two points for you, but it’s still going to require some new things being learned. A lot of what yoiu’re used to on Adobe is either a proprietary setup, or hacked together version of Tomcat (Adobe compile their own custom Tomcat to make stuff work a certain way), and some bits of the architecture simply won’t look exactly the same in Lucee-land.

Honestly, I told you precisely what it meant.

It is. And 5.5.0 is the bees elbows too. :laughing:

It’s an proxy setup for Lucee (or really, any java app) that is comprised of

  • A Tomcat Valve (for people using Tomcat)
  • A CommandBox feature you can enable (for people using CommandBox)
  • An IIS module called BonCode (for people using IIS)
  • An Apache module (for people using Apache)
  • A specification of custom headers you can add (for people using Nginx or any other web server)

It is the equivalent of Adobe’s special AJP-based IIS wsconfig connector which proxies traffic from the front end web server to the CF server and auto-creates contexts based on the web root defined in the front end server. Adobe CF people are just used to that being the way things work, but the rest of the Java/Tomcat/etc world don’t work that way and have never worked that way.

Well, no one is making you learn about it, but it’s the most common, most documented, most familar approach for Lucee users who want to front their server with IIS. You can certainly configure your own HTTP proxy with IIS’s request routing, and configure your own HTTP headers if you like, but BonCode is a pretty nice library to help you do all that with less work. It’s up to you.

Probably about 37. It will be fun though. And once you have it all working, it won’t seem nearly as daunting.

No one said being a server admin (even if it’s your local servers) was always going to be easy. You’re not necessarily making it easier by wanting to have IIS in the mix, but it’s your call. Adobe has spoiled you a bit, but it’s really not that much harder to set up Lucee. Doing them side by side is completely possible, but you’ll need to step up your game in regards to how much you understand what’s going on under the hood. It does take at least a nominal amount of fiddling.

All I can find is this thread created less than a day ago on a weekend. People in this forum help for free, unless you want to buy some consulting hours to have someone help. Zac is your best bet to figure out the installer stuff as he’s the guy currently helping maintain them.

It’s ok, keep your head up and push through. But maybe after taking a break, lol. There are plenty of people willing to help explain all the bits and pieces here and I’m sure you’ll get it all figured out soon. I think perhaps you’re expectations were a little off in terms of what you’d need to learn, but you’ll get it soon enough. :slight_smile: