Adobe has recently released its newest version of ColdFusion. One of its notable new features is compatibility with Apple silicon. However the installer by default does not run under current versions of macOS (Intel or Apple silicon), and once installed the default install does not natively run under Apple silicon. With just a few fixes, ColdFusion will run natively under Apple Silicon as well as with integration with Apache. This has been tested under both macOS 13 Ventura, and the beta of macOS 14 Sonoma on M1, M2, and M3.
First a few pre-requisites:
- Rosetta (The default JDK bundled with the Coldfusion installer is X86 based.)
- ColdFusion GUI installer
- Apache (optional; if you want to run it behind Apache)
- JDK > 17 (I opted for Amazon Coretto here)
To start you will need the GUI installer for Coldfusion 2023 from Adobe located at https://helpx.adobe.com/coldfusion/kb/coldfusion-downloads.html#download0 There are several different install methods, this guide is utilizing the GUI installer (ending in .dmg)
Once you have downloaded the installer and mounted the DMG you’ll need to do the following:
- Mount the dmg file
- Drag the installer to your desktop (you cannot run it from the DMG due to the included JDK not being signed, so Gatekeeper will not allow it to run)
- Open up the terminal and type in
xattr -r -d com.apple.quarantine
after quarantine make sure there is a space and then drag the installer into the terminal window to auto copy the path to the installer. This command will remove the quarantine extended attribute from all of the files within the installer which will cause Gatekeeper to not block the running of the embedded JDK. - Right click on the installer and select Open…The installer should now open
- Click through the installer steps and configure them for your needs. Couple of things to note if you are intending to use this in a production environment you will require a serial number, and it is HIGHLY recommended that you not enable RDS, Remote Start, and any additional services you do not need. I also recommend that you run the lockdown script afterwords for production environments (also found on Adobe’s ColdFusion download pages).
- Note for this install you will want to select Server Configuration under the Installer Configuration window in order to use Apache as your web front end
- If you are running in production or if you are NOT using Adobe CF Builder it is recommended to NOT install the Admin Component for Remote Start/Stop If you are not running in production I disable auto start with the system
- Once the installer has completed you should now be directed to http://127.0.0.1:8500/administrator/index.cfm – If everything went well you should see the administration screen. Login with the password you set during setup to finalize server setup.
- Note for this install you will want to select Server Configuration under the Installer Configuration window in order to use Apache as your web front end
At this point, you have a perfectly usable installation of ColdFusion but there are a couple of issues. First, since the install is utilizing the embedded JDK that Adobe provides, ColdFusion is running under an X86 version of JDK 17 utilizing Apple’s Rosetta technology. Since there are several different JDK 17 distributions that are ARM64 native there is no reason to use emulation to run an X86 variant.. For this guide I chose to use Amazon’s Coretto JDK 17. You can see this by opening up Activity Monitor and search for Java you will see it is running under X86 emulation.
To fix this you need to:
- In the ColdFusion admin console click on Server Settings, and then Java & JVM
- Under the Java Virtual Machine Path, point it to the appropriate JDK install. If utilizing Amazon Coretto the path is /Library/Java/JavaVirtualMachines/Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home
- You can also edit the jvm.config file with a text editor to make the change. Assuming you used the default install location this file is found at /Applications/ColdFusion2023/cfusion/bin/jvm.config
- You can also edit the jvm.config file with a text editor to make the change. Assuming you used the default install location this file is found at /Applications/ColdFusion2023/cfusion/bin/jvm.config
- After you have made this change you will need to restart ColdFusion. Assuming a default install location run the following command in Terminal:
/Applications/ColdFusion2023/cfusion/bin/coldfusion restart
- Once restarted validate that the admin interface is still accessible, and check Activity Monitor you should now see Java running natively under Apple silicon.
ColdFusion is now running natively under Apple Silicon under M1 / M2. If this is all you need enjoy! Read on for instructions on how to integrate your ColdFusion install with Apache. For this guide I am utilizing Apache as installed from the excellent package manager brew http://brew.sh Once you’ve installed Apache you can integrate ColdFusion by doing the following:
- From the terminal type in
sudo /Applications/ColdFusion2023/cfusion/runtime/bin/wsconfig
This utility modifies your Apache configuration to allow Apache to serve ColdFusion pages - Click on the Add button
- Enter the path to the Apache configuration directory for brew installs on Apple silicon the path is /opt/homebrew/etc/httpd
- Click on the Advanced button and add the path the the Apache (httpd) binary
- Click Ok, Ok, and then yes to restart Apache
- Finally I had to update the ColdFusion server.xml file in order for pages to be served correctly. This file can be found at /Applications/ColdFusion2023/cfusion/runtime/conf/server.xml
- Locate the AJP/1.3 Connector protocol section and add the following text address=”::1″
Restart both Apache (brew services restart httpd
) and ColdFusion (/Applications/ColdFusion2023/cfusion/bin/coldfusion restart
)
Disable Apple’s builtin version of Apache (Coldfusion sometimes seems to turn it on) by entering the following in the terminalsudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
sudo launchctl disable system/org.apache.httpd
Add a test file at /opt/homebrew/var/www called test.cfm.
Add the following line <cfdump var=”#SERVER#”>
Navigate to http://127.0.0.1:8080/test.cfm (By default homebrew installs Apache listening on port 8080). If everything works you should see the dump of the ColdFusion server configuration. Under OS you should see ColdFusion running natively under Apple silicon.