Produkcyjny ColdFusion 2025 za współdzielonym Apache: instalacja trwa 34 sekundy, szczegóły wymagają uwagi

Przygotowaliśmy produkcyjną instalację Adobe ColdFusion 2025 na Debianie 12, za serwerem Apache 2.4, który obsługuje już kilka innych serwisów. Sama instalacja trwa 34 sekundy. Konektor i łatwe do przeoczenia szczegóły konfiguracji wymagały więcej uwagi: błąd 503 przez IPv6, mapowania sięgające do każdego hosta wirtualnego i profil, który po cichu dokłada debugger.

  • Instalacja w 34 sekundy, bez błędów i ostrzeżeń
  • Pozostałe serwisy na Apache bez zmian
  • 5 z 5 restartów Apache bez awarii
Okno przeglądarki wysyła jeden tor do ramki z podpisem Apache; z niej trzy tory prowadzą do ramek z podpisami PHP, PHP i CFML; tor CFML z małym rombem konektora i jego ramka są pomarańczowe, dwie ramki PHP mają haczyki

Serwer aplikacji Adobe ColdFusion na Debianie 12, za serwerem Apache 2.4 współdzielonym z serwisami PHP

Wyzwanie

Zadanie: produkcyjna instalacja Adobe ColdFusion 2025 podpięta pod istniejący serwer Apache 2.4 na Debianie 12. Apache obsługuje już kilka innych serwisów, PHP 8.2 na MPM prefork i reverse proxy do kontenerów, i żaden z nich nie może odczuć zmiany.

Trzy rzeczy utrudniały sprawę bardziej, niż sugeruje instrukcja. Narzędzie konfiguracji konektora, wsconfig, nie rozpoznaje Debiana. Do wyboru były dwa instalatory o niemal identycznej nazwie, pierwotne wydanie i odświeżony build, i trzeba było ustalić, który jest który, zanim cokolwiek zostanie uruchomione. A konfiguracja JVM, sterta i garbage collector, miała zostać domyślna.

Rozwiązanie

Buildy zidentyfikowaliśmy bez uruchamiania: instalator ma doklejone archiwum ZIP, więc jego listing pokazuje daty buildów i wersje pakietów. Potem instalacja w trybie silent z pliku właściwości na bazie oficjalnego wzorca Adobe: profil Production i Secure, serwer standalone, panel administratora tylko z wpisanych adresów, bez dodatków, których aplikacja nie używa.

Konektor Apache skonfigurowaliśmy z opcją, która niczego nie restartuje. Najpierw przegląd zmian, kopie zapasowe i zapis kodów HTTP pozostałych serwisów; dopiero potem restart, po teście konfiguracji. Osobny host wirtualny i strona testowa CFML pokazują wersję serwera, Javę, konektor i parametry sterty. Cała procedura przebiegła na serwerze produkcyjnym; pozostałe serwisy były dostępne przez cały czas, poza restartem Apache, którego wymaga konektor.

Wyniki

Zainstalowana wersja (stan na 2026-10)
ColdFusion 2025 Update 8
Instalacja w trybie silent
34 sekundy
Dziennik instalatora
2 618 operacji, 0 ostrzeżeń, 0 błędów
Start serwera ColdFusion
Poniżej 15 sekund
Pozostałe serwisy na Apache
Te same kody HTTP przed zmianą i po niej
Cykle stop i start Apache
5 z 5 bez awarii, 0 zmian w konfiguracji JVM

Jak pracowaliśmy

  1. Identyfikacja buildu bez uruchamiania

    Plik instalatora ma doklejone archiwum ZIP, więc jego listing pokazuje daty buildów i wersje pakietów. Nowszy to ColdFusion 2025 Update 8.

  2. Przygotowanie serwera i licencji

    Osobny użytkownik systemowy bez powłoki dla usługi, katalog instalacji i plik licencji do aktywacji, zanim uruchomi się instalator.

  3. Instalacja w trybie silent

    Plik właściwości na bazie wzorca Adobe: profil Production i Secure, serwer standalone, panel administratora tylko z wpisanych adresów, bez Solr, generowania PDF i JNBridge, nieużywane servlety wyłączone.

  4. Konektor bez restartu

    wsconfig z opcją, która zostawia Apache w ruchu. Przegląd zmian, kopia konfiguracji Apache, zapis kodów HTTP pozostałych serwisów, potem test konfiguracji i restart.

  5. Osobny host wirtualny i strona testowa

    Strona CFML pokazuje wersję serwera, Javę, konektor i parametry sterty, więc każde późniejsze sprawdzenie zajmuje sekundy.

  6. Diagnoza błędu 503 i testy regresji

    Pozostałe serwisy, pięć cykli stop i start Apache oraz dostęp do panelu administratora sprawdziliśmy, zanim uznaliśmy procedurę za gotową.

Wyzwania, które pokonaliśmy

Żadnego z pięciu punktów poniżej nie ma w instrukcji instalacji, a każdy kosztuje popołudnie, gdy przychodzi jako niespodzianka.

Błąd 503, choć ColdFusion działa: localhost to nie zawsze 127.0.0.1

Po podpięciu konektora Apache zwracał 503 Service Unavailable, a sam ColdFusion odpowiadał poprawnie. wsconfig wpisuje jako adres serwera ColdFusion nazwę localhost. Konektor rozwiązał ją na adres IPv6 ::1, a konektor AJP w Tomcacie ColdFusion nasłuchuje tylko na 127.0.0.1. Log konektora mówi wprost, czego szukać:

connect to ::1:8024 failed (errno=111)
(cfusion) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=111)

Rozwiązaniem jest adres 127.0.0.1 w definicji workera i w pliku właściwości, w którym wsconfig przechowuje parametry konektora, żeby ponowne uruchomienie narzędzia nie przywróciło nazwy. Na nowej instalacji narzędzie przyjmuje adres jako opcję. Czego nie robić: otwierać portu AJP na wszystkich interfejsach. Otwarty AJP to znany wektor ataku, Ghostcat, CVE-2020-1938.

Konektor sięga do wszystkich hostów wirtualnych

Żadnego objawu, i właśnie to jest problem: nic się nie psuje, dopóki inny serwis na tym samym Apache nie użyje ścieżki, którą konektor uważa za swoją. wsconfig w ColdFusion 2025 kopiuje mapowania do każdego hosta wirtualnego, a obejmują one więcej niż pliki CFML:

/rest/* = cfusion
/restapps/* = cfusion
/mcs = cfusion
/cffileservlet/* = cfusion
/*.jsp = cfusion

Aplikacja PHP z API pod /rest/ na tym samym serwerze mogłaby trafić do ColdFusion. Przed restartem przejrzeliśmy logi dostępowe pozostałych serwisów pod kątem tych ścieżek, nie znaleźliśmy nic i zapisaliśmy ich kody HTTP; po restarcie porównaliśmy. Gdy kolizja jest realna, narzędzie potrafi skonfigurować konektor tylko dla jednego hosta wirtualnego.

Konektor zmienia więcej, niż widać

Na Debianie narzędzie kopiuje moduł i tworzy jego konfigurację bezpośrednio w katalogu Apache, a dwa kolejne pliki lądują w katalogu ColdFusion. Dopisuje dwie linie include na końcu głównej konfiguracji Apache i dodaje sekret do konektora AJP w konfiguracji serwera ColdFusion, więc ColdFusion też trzeba zrestartować. Debiana nie rozpoznaje, co okazuje się niegroźne. Wniosek: pliki konektora leżą w dwóch miejscach, więc kopie zapasowe, zarządzanie konfiguracją i aktualizacje muszą obejmować oba.

Zgłoszenia o awariach Apache po instalacji konektora

Na forum Adobe użytkownicy ColdFusion 2025 zgłaszali, że Apache na Ubuntu losowo nie startuje po dodaniu konektora. Wykonaliśmy pięć pełnych cykli stop i start na Apache 2.4.67 z modułem konektora z buildu z kwietnia 2026, stan na 2026-10: każdy cykl zakończył się poprawnym startem i odpowiedzią strony testowej, a w dzienniku systemowym nie było żadnej awarii. Na serwerze współdzielonym taki test należy do instalacji, a nie do pierwszego restartu po aktualizacji systemu.

Profil serwera to nie formalność

Szablon konfiguracji JVM w instalatorze zawiera domyślną stertę i równoległy garbage collector. Instalacja z profilem deweloperskim dopisuje na początku argumentów JVM agenta debuggera, którego w szablonie nie ma. Na produkcji wybieramy profil Production i Secure, a po instalacji czytamy konfigurację JVM, zamiast zakładać, że jest domyślna. Z tego samego powodu nigdy nie przenosimy tego pliku ze środowiska testowego na produkcję. Jak zachowuje się sterta za mała na obciążenie, pokazuje inny projekt.

Ramka z podpisem Apache i słowem localhost pod spodem wysyła dwa tory w prawo: górny z podpisem ::1 kończy się krzyżykiem, dolny pomarańczowy z podpisem 127.0.0.1 dochodzi do ramki z podpisem CFML i AJP 8024 pod spodem

Pięć pułapek w jednym miejscu

Pułapka Co widać Co zrobiliśmy
localhost rozwiązuje się na IPv6 Apache odpowiada 503, ColdFusion odpowiada Adres 127.0.0.1 w obu plikach konektora; AJP zostaje zamknięty na zewnątrz
Mapowania w każdym hoście wirtualnym Nic, dopóki inny serwis nie użyje zmapowanej ścieżki Logi dostępowe pozostałych serwisów sprawdzone, kody HTTP zapisane i porównane
Pliki konektora w dwóch miejscach Sam restart Apache nie wystarcza Kopie obu katalogów, restart ColdFusion po konektorze
Zgłaszane awarie Apache Losowy brak startu po konektorze Pięć cykli stop i start jako część instalacji
Profil deweloperski Agent debuggera w argumentach JVM Profil Production i Secure, konfiguracja JVM przeczytana po instalacji

Co z tego wynika

Checklista, której używamy teraz przy produkcyjnym ColdFusion 2025 za Apache na Debianie:

  • Ustalić build instalatora z listingu jego archiwum i wziąć najnowszy.
  • Przygotować użytkownika usługi, katalog i plik licencji, zanim uruchomi się instalator.
  • Instalować w trybie silent z pliku właściwości: profil Production i Secure, wpisane adresy administratorów, nieużywane servlety wyłączone.
  • Uruchomić narzędzie konektora z adresem pętli zwrotnej i bez restartu, po kopii konfiguracji Apache.
  • Sprawdzić skopiowane mapowania pod kątem kolizji z pozostałymi hostami wirtualnymi.
  • Po konektorze zrestartować także ColdFusion, ze względu na nowy sekret AJP.
  • Zapisać kody HTTP pozostałych serwisów przed restartem Apache i porównać je po nim.
  • Wykonać kilka cykli stop i start Apache.
  • Przeczytać konfigurację JVM po instalacji, zanim uzna się ją za domyślną.

Dwie rzeczy warte zapamiętania: instalator w trybie silent sam tworzy i włącza usługę systemd, pod nazwą, która nie zawiera słowa coldfusion; a przy pustej liście adresów administratorów instalator ogranicza panel do lokalnej maszyny, a konektor wyłącza ścieżkę administratora, więc przez Apache panel odpowiada 404.

Źródła

Arkusz checklisty z klipsem u góry i sześcioma wierszami, każdy z linią i haczykiem po lewej; ostatni haczyk jest pomarańczowy

Powiązane sytuacje

  • Firma Adobe wystosowała oficjalny komunikat: od 10 listopada 2025 r. ColdFusion 2021 nie otrzymuje poprawek bezpieczeństwa. Porównujemy cztery rozwiązania z terminami i ryzykiem (stan: 2026-10): zostać i zabezpieczyć instalację, zaktualizować do wspieranej wersji, przejść na rozwiązanie open source Lucee albo stopniowo zastąpić cały system.

  • Wsparcie Debiana 11 zakończyło się 31.08.2026, a CentOS 7 już 30.06.2024 (stan: 2026-10). Zaktualizujemy Państwa serwer albo zaplanujemy i wykonamy przejście na Debiana. Pracujemy również z Proxmox VE 8 i z serwerami fizycznymi, które przenosimy na Proxmox.

Inne projekty

  • Skala punktów z przerywanym progiem: koperta phishingu przechodzi pomarańczowym łukiem przez próg

    Filtr antyspamowy, który działał, ale nie chronił

    Usługi uruchomione, konfiguracja poprawna, w statusie systemu żadnych błędów. A mimo to phishing lądował w skrzynkach odbiorczych, a newslettery partnerów w folderze spam. Nasi inżynierowie zmierzyli, które mechanizmy wykrywania naprawdę działają, usunęli przyczyny, a trzy miesiące później znaleźli i naprawili regresję, którą było widać dopiero w ujęciu godzinowym.

  • Cztery koperty przechodzą przez bramki SPF, DKIM i DMARC, odhaczone na pomarańczowo, w drodze do skrzynki odbiorczej

    Dostarczalność poczty dla czterech domen firmowych

    Serwer pocztowy czterech domen firmowych niczego nie podpisywał, nie publikował polityki DMARC i był odrzucany przez Microsoft. Nasi inżynierowie sprawdzili go, przetestowali zmianę na jednej domenie i wdrożyli ją partiami. Efekt: wszystkie trzy mechanizmy przechodzą sprawdzenie w Gmailu, blokada Microsoftu została zdjęta, a użytkownicy niczego nie odczuli.

W 20 minut ustalimy, jaki pierwszy krok pasuje do Państwa systemu

Państwo opisują cel i obecny stan, my mówimy otwarcie, czy i jak możemy pomóc. Odpowiedź w ciągu jednego dnia roboczego, bez zobowiązań.

Telefon (niemiecki, polski, angielski) +48 501 250 220
E-mail E-mail

Dostępni: poniedziałek–piątek, 9:00–17:00 (czas środkowoeuropejski); wsparcie i awarie całą dobę (24/7)