; 23.04.2026.11.40.wib [Indonesia] ; Portable Apache+PHPnoMySQL: ApacheLightHttpdServer - Hooyaa Edition !include "LogicLib.nsh" !include "MUI2.nsh" Name "ApacheLightHttpdServer" OutFile "ApacheLightHttpdServer_Setup_Installer.exe" RequestExecutionLevel user SetCompressor LZMA !define APPFOLDER "ApacheLightHttpdServer" !define PORT "8125" # MUI Interface !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH !insertmacro MUI_LANGUAGE "English" Section "MainApp" SetOutPath "$INSTDIR" File /r "ApacheLightHttpdServer\*" # Create portable flag FileOpen $0 "$INSTDIR\portable.dat" w FileWrite $0 "GOODNESS_WISENESS" FileClose $0 # Create start script FileWrite "$INSTDIR\start.bat" '$$INSTDIR\apache\bin\httpd.exe' FileWrite "$INSTDIR\stop.bat" 'taskkill /f /im httpd.exe' # Add to startup (optional) CreateShortCut "$SMPROGRAMS\ApacheLightHttpdServer.lnk" "$INSTDIR\start.bat" CreateShortCut "$SMPROGRAMS\ApacheLightHttpdServer.lnk" "$INSTDIR\stop.bat" MessageBox MB_OK "ApacheLightHttpdServer Installation complete! Run start.bat to launch." SectionEnd Section "Uninstall" Delete "$INSTDIR\portable.dat" Delete "$INSTDIR\start.bat" Delete "$INSTDIR\stop.bat" RMDir /r "$INSTDIR" SectionEnd Function .onInit # Kill any running httpd on port ${PORT} execwait 'taskkill /f /im httpd.exe' FunctionEnd ------------------------------------------------------------------------------------- installer.nsi Listen 8125 ServerName 127.0.0.1:8125 DocumentRoot "../htdocs/chatoffline" Options Indexes FollowSymLinks AllowOverride All Require all granted ------------------------------------------------------------------------------------- httpd.conf @echo off echo Checking for process on port 8125... for /f "tokens=5" %%T in ('netstat -aon ^| findstr :8125') do ( set PID=%%T ) if defined PID ( echo Killing process %PID% on port 8125... taskkill /f /pid %PID% ) else ( echo No process found on port 8125. ) pause ------------------------------------------------------------------------------------- kill_port.bat @echo off cd /d "%~dp0" apache\bin\httpd.exe ------------------------------------------------------------------------------------- start.bat @echo off for /f "tokens=5" %%T in ('netstat -ano ^| findstr ":8125" ^| findstr "127.0.0.1"') do ( taskkill /f /pid %%T >nul 2>&1 ) ------------------------------------------------------------------------------------- stop.bat CreateObject("WScript.Shell").Run """" & WScript.Arguments(0) & """", 0, False ------------------------------------------------------------------------------------- start.vbs CreateObject("WScript.Shell").Run """" & WScript.Arguments(0) & """", 0, False ---------------------------------------------------- !include "MUI2.nsh" !include "nsExec.nsh" Name "ApacheLightHttpdServerDaemon" OutFile "ApacheLightHttpdServerDaemon.exe" RequestExecutionLevel user SetCompressor LZMA # Disable installer pages (pure executable) !define MUI_ABORTWARNING !insertmacro MUI_PAGE_CUSTOMFUNCTION_LEAVE HidePages !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_LANGUAGE "English" Function HidePages Abort FunctionEnd Section "Main" SetOutPath "$EXEDIR" File /r "ApacheLightHttpdServer\*" # Create batch files FileOpen $0 "$EXEDIR\start.bat" w FileWrite $0 "@echo off$\r$\n" FileWrite $0 'cd /d "%~dp0" $\r$\n' FileWrite $0 'apache\bin\httpd.exe' FileClose $0 FileOpen $0 "$EXEDIR\stop.bat" w FileWrite $0 "@echo off$\r$\n" FileWrite $0 'for /f "tokens=5" %%T in ('\' FileWrite $0 'netstat -ano ^| findstr ":8125" ^| findstr "127.0.0.1"' FileWrite $0 ') do taskkill /f /pid %%T >nul 2>&1' FileClose $0 # Show tray icon with menu System::Call 'kernel32::GetCurrentProcess() i.s' Push $s Call ShowTrayIcon SectionEnd Function ShowTrayIcon Push $0 # Add icon to tray with context menu NotifyIcon::Icon "ym" $0 "ApacheLightHttpdServerDaemon" "f$EXEDIR\apache\bin\httpd.exe" "i1" # Menu: Start Server Menu::AppendItem $0 "Start Server" 100 # Menu: Stop Server Menu::AppendItem $0 "Stop Server" 101 # Handle clicks Menu::SetClick 100 "StartServer" Menu::SetClick 101 "StopServer" # Show menu on right-click NotifyIcon::ShowContextMenu FunctionEnd Function StartServer nsExec::Exec '"$COMSPEC" /c start.bat' FunctionEnd Function StopServer nsExec::Exec '"$COMSPEC" /c stop.bat' FunctionEnd Function .onGUIEnd # Clean up tray icon NotifyIcon::Icon "r" FunctionEnd -------------------------------------------------------------------------------------ApacheLightHttpdServerDaemon.nsi done make no:Autorun AND no:Installer but pure exe/.exe but make script ApacheLightHttpdServerDaemon.exe/ApacheLightHttpdServerDaemon.nsi for Daemon WIndows10/11 on below right corner taskbar Windows10/11, add right click, Start:start.bat AND Stop:stop.bat