Install Lucee on Linux and XAMPP

Hi there,

I was wondering if anyone has “step-by-step instructions” how to install Lucee on Linux Mint with XAMPP/LAMPP (PHP running on it).

So far, I was able to make Lucee (Tomcat) running independently from XAMPP. It would be nice if it could use XAMPP’s Apache2 as the Web server.

NOTE: I am new to Linux and XAMPP, but I have done many installations on Windows with IIS without problems.

Thank you.

OS: Linux Mint 20.3 Cinnamon
Java Version: OpenJDK 11.0.15 2022-04-19
Tomcat Version: 9.0.65
Lucee Version: 5.3.9.160
XAMPP Version: 7.4.27

I never did such an installation on Linux, but I’d bet it’s pretty the same as shown here with windows

I’d make sure to not have any apache2 preinstalled and also, make sure to not install Tomcat with XAMPP installation because it’s better to install it with the Lucee Linux installer.

After several attempts, I was able to get Lucee installed on XAMPP. Here’s what I’ve done:

  1. Download and install XAMPP for Linux

  2. Download Lucee Linux Installer
    2.1.When installing Lucee, make sure to UNCHECK “Yes, Install Apache Connector”

  3. Once Lucee installation is completed, copy mod_cfml.so from /opt/lucee/sys/mod_cfml/ubuntu-httpd24-x64 to /opt/lampp/modules

  4. Open text editor to modify /opt/lampp/httpd.conf
    5.1. Uncomment Include etc/extra/httpd-vhosts.conf (Need it to set up a new site later)
    5.2. Paste the followings to the bottom of httpd.conf file
    5.3. Make sure the ModCFML_SharedKey matches the one in /opt/lucee/tomcat/conf/server.xml

# Lucee
LoadModule modcfml_module modules/mod_cfml.so

<IfModule modcfml_module>
	CFMLHandlers ".cfm .cfc .cfml"
	ModCFML_SharedKey "copy the key from server.xml"
	LogHeaders false
	LogHandlers false
	LogAliases false
	VDirHeader false
</IfModule>

<IfModule mod_proxy.c>
	ProxyPreserveHost On
	ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ http://127.0.0.1:8888/$1$2
	ProxyPassMatch ^/(.+\.cfml)(/.*)?$ http://127.0.0.1:8888/$1$2
	# optional mappings
	#ProxyPassMatch ^/flex2gateway/(.*)$ http://127.0.0.1:8888/flex2gateway/$1
	#ProxyPassMatch ^/messagebroker/(.*)$ http://127.0.0.1:8888/messagebroker/$1
	#ProxyPassMatch ^/flashservices/gateway(.*)$ http://127.0.0.1:8888/flashservices/gateway$1
	#ProxyPassMatch ^/openamf/gateway/(.*)$ http://127.0.0.1:8888/openamf/gateway/$1
	#ProxyPassMatch ^/rest/(.*)$ http://127.0.0.1:8888/rest/$1
	ProxyPassReverse / http://127.0.0.1:8888/
</IfModule>
  1. Set up a new site in /var/www
    6.1. Create folder(s) and a test CFM file. In this example, I created a folder “foobar”; and inside it, there is another folder “wwwroot”. In “wwwroot”, I created a test file “index.cfm”
    6.2. Open text editor to modify /opt/lampp/etc/extra/httpd-vhosts.conf
<VirtualHost *:80>
    ServerAdmin admin@foobar.com
    ServerName foobar
    DocumentRoot /var/www/foobar/wwwroot/
    Alias /assets /var/www/foobar/wwwroot/includes/assets
    DirectoryIndex index.cfm index.htm index.html
    <Directory "/var/www/foobar/wwwroot">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</virtualhost>
  1. BONUS: Set up a rewrite rule for ColdBox framework
    7.1. Create a file .htaccess in “wwwroot”; and paste the following:
RewriteEngine on
#if this call related to adminstrators or non rewrite folders, you can add more here.
RewriteCond %{REQUEST_URI} ^/(.*(CFIDE|cfide|CFFormGateway|jrunscripts|railo-context|lucee|mapping-tag|fckeditor)).*$
RewriteRule ^(.*)$ - [NC,L]

#Images, css, javascript and docs, add your own extensions if needed.
RewriteCond %{REQUEST_URI} \.(bmp|gif|jpe?g|png|css|js|txt|xls|ico|swf)$
RewriteRule ^(.*)$ - [NC,L]

#The ColdBox index.cfm/{path_info} rules.
RewriteRule ^$ index.cfm [QSA,NS]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.cfm/%{REQUEST_URI} [QSA,L,NS]
  1. Restart the system
  2. At this point, you should able to hit “http://foobar/

Notes:

  • All the steps above are done by “root” user.
  • Appropriate permissions might be needed for “foobar” folder and everything under it.

Environment:

  • Linux Mint 20.2
  • XAMPP for Linux 7.4 (includes Apache 2.4)
  • Lucee 5.3.9 for Linux

References:

3 Likes