DomainPunch Logo

 A Service of Softnik Technologies

Installing Watch My Domains SED on Windows Using XAMPP

This article explains how to install Watch My Domains SED on Windows using XAMPP. The instructions apply to Windows 11 and Windows Server editions, including Windows Server 2016 and later.

XAMPP provides Apache, MariaDB, PHP, and phpMyAdmin, which can be used to run Watch My Domains SED on a Windows workstation or server. Windows 11 is suitable for local evaluation, testing, and small private installations. Windows Server is recommended for production, always-on, and multi-user deployments.

Before You Begin

Make sure you have administrator access to the Windows machine. You should also have the Watch My Domains SED installation package or download link, your license code, and access to firewall and DNS settings if the installation will be accessed from other machines on the intranet.

Install XAMPP in a simple path such as:

C:\xampp

Avoid installing it under a user profile folder or inside a path that contains spaces. This makes it easier to configure Apache, PHP, IonCube Loader, scheduled tasks, and command-line scripts.

Decide the hostname or URL that will be used to access Watch My Domains SED. For a local Windows 11 installation, a folder-based URL may be:

http://localhost/wmdsed

However, a hostname-based URL is cleaner and is recommended for testing and server-style installations. For example:

http://wmdsed.localhost/

For an intranet installation, use the server name, local IP address, internal DNS name, or a fully qualified internal hostname.

Database Support by Edition

Watch My Domains SED supports different database backends depending on the edition being installed.

MySQL, MariaDB, and SQLite are suitable for normal Windows/XAMPP installations where supported by the installed package.

PostgreSQL, Oracle Database, Microsoft SQL Server, SQL Server Express, and other advanced database backends are supported only in Watch My Domains SED Professional Edition.

When using XAMPP, the simplest option is to use the MariaDB or MySQL server bundled with XAMPP. This is the recommended approach for most Windows installations unless you are installing Watch My Domains SED Professional Edition and specifically require another supported database backend.

Install XAMPP

Download and install the Windows version of XAMPP. Choose a XAMPP build that includes a PHP version supported by your Watch My Domains SED package. If your SED package is encoded for a specific PHP version, the PHP version in XAMPP must match the required IonCube Loader version.

During installation, select Apache, PHP, phpMyAdmin, and MySQL or MariaDB. These components provide the basic web server, PHP runtime, database server, and database administration interface required for a typical Watch My Domains SED installation.

Install XAMPP to:

C:\xampp

After installation, open the XAMPP Control Panel as administrator and start Apache and MySQL. Open the following URL in a browser to confirm that Apache is running:

http://localhost

Configure Apache and MySQL

For a Windows Server installation, Apache and MySQL should normally run as Windows services so they start automatically when the server restarts.

For a Windows 11 test or local installation, you may either start Apache and MySQL manually from the XAMPP Control Panel or install them as services if you want them to start automatically.

If Apache does not start, check whether another service is already using port 80 or port 443. Common conflicts include IIS, Web Deploy, Skype, or another local web server. Stop or reconfigure the conflicting service before continuing.

If Watch My Domains SED must be accessed from another machine on the intranet, allow inbound HTTP and HTTPS traffic in Windows Firewall. For local-only installations, firewall changes are usually not required.

Set Up the Site Folder and Hostname

Create the web folder that will contain Watch My Domains SED. A simple XAMPP location is:

C:\xampp\htdocs\wmdsed

For a simple folder-based installation, you can access the application using:

http://localhost/wmdsed

However, a hostname-based URL is usually cleaner and is recommended for testing and server-style installations. For example, you can use:

http://wmdsed.localhost/

This makes the Windows/XAMPP installation behave more like a hosted application, where Watch My Domains SED runs from the root of its own hostname instead of from a subfolder.

To use a local hostname on the same computer, edit the Windows hosts file as administrator:

C:\Windows\System32\drivers\etc\hosts

Add the following line:

127.0.0.1 wmdsed.localhost

Save the file. If Windows does not allow you to save directly into the hosts file location, save the file elsewhere first and then copy it back into the etc folder using administrator permissions.

After editing the hosts file, you may need to flush the Windows DNS cache. Open Command Prompt as administrator and run:

ipconfig /flushdns

Then configure Apache so that the hostname points to the Watch My Domains SED folder. In XAMPP, open the Apache virtual hosts configuration file:

C:\xampp\apache\conf\extra\httpd-vhosts.conf

Add a virtual host entry similar to this:

<VirtualHost *:80>
    ServerName wmdsed.localhost
    DocumentRoot "C:/xampp/htdocs/wmdsed"

    <Directory "C:/xampp/htdocs/wmdsed">
        Options +FollowSymLinks -Indexes
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Make sure Apache is configured to load the virtual hosts file. In the main Apache configuration file:

C:\xampp\apache\conf\httpd.conf

Confirm that this line is enabled and not commented out:

Include conf/extra/httpd-vhosts.conf

Restart Apache from the XAMPP Control Panel.

You should now be able to open Watch My Domains SED on the same computer using:

http://wmdsed.localhost/

For a Windows Server installation accessed from other machines, use a real internal DNS name, server name, or intranet IP address instead of editing only the local hosts file. The hosts file affects only the Windows machine where it is edited.

Make the Installation Accessible Across the Intranet

By default, 127.0.0.1 and localhost refer only to the same computer. If you open http://localhost/ on another computer, it will try to connect to that other computer, not to the machine where Watch My Domains SED is installed.

To access Watch My Domains SED from other computers on the intranet, use an IP address or hostname that points to the Windows machine running XAMPP.

Assign a static private IP address to the Windows machine. Private intranet addresses usually look like:

192.168.1.50
192.168.0.50
10.0.0.50
172.16.0.50

Do not use 127.0.0.1 for access from other computers. Addresses such as 192.168.x.x, 10.x.x.x, and 172.16.x.x are private network addresses intended for local networks and intranets.

After assigning a static intranet IP address, you can access a folder-based installation from another computer using a URL such as:

http://192.168.1.50/wmdsed

If you configured Apache to serve Watch My Domains SED from the web root, you can use:

http://192.168.1.50/

If you want to use a hostname on your intranet, configure your internal DNS server to point a name to the Windows machine. For example, create an internal DNS record such as:

wmdsed.company.local  A  192.168.1.50

You can then open:

http://wmdsed.company.local/

If you do not have access to internal DNS, you can edit the hosts file on each client computer that needs access. On each Windows client computer, edit:

C:\Windows\System32\drivers\etc\hosts

Add a line pointing the hostname to the Windows machine running XAMPP:

192.168.1.50 wmdsed.local

You can then open:

http://wmdsed.local/

For an intranet installation, configure Apache with a virtual host using the intranet hostname:

<VirtualHost *:80>
    ServerName wmdsed.local
    DocumentRoot "C:/xampp/htdocs/wmdsed"

    <Directory "C:/xampp/htdocs/wmdsed">
        Options +FollowSymLinks -Indexes
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

If your organization uses a formal internal domain, use that instead:

<VirtualHost *:80>
    ServerName wmdsed.company.local
    DocumentRoot "C:/xampp/htdocs/wmdsed"

    <Directory "C:/xampp/htdocs/wmdsed">
        Options +FollowSymLinks -Indexes
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Restart Apache after changing the virtual host configuration.

Also allow inbound traffic for Apache in Windows Firewall on the Windows machine. Usually this means allowing TCP port 80 for HTTP and TCP port 443 if HTTPS is configured.

For intranet access, router port forwarding is usually not required. Port forwarding is only needed when making a service reachable from outside the local network.

For intranet installations, HTTPS is still recommended if credentials or sensitive operational data will be transmitted over the network. You can use an internal certificate authority, a company-issued certificate, or another certificate trusted by the computers on your intranet.

When making Watch My Domains SED available across the intranet, also review firewall rules, phpMyAdmin access, default XAMPP pages, Apache directory permissions, and all administrator passwords.

Enable Required PHP Extensions

Watch My Domains SED requires PHP database support. If you are using MySQL or MariaDB, enable pdo_mysql or mysqli in php.ini. The default configuration normally assumes pdo_mysql.

Open the XAMPP Control Panel, click Config for Apache, and choose PHP php.ini. Search for:

pdo_mysql
mysqli

If the required extension line begins with a semicolon, remove the semicolon to enable it.

Also confirm that the following PHP extensions are enabled if they are available in your XAMPP build:

curl
gd
mbstring
xml
zip
soap
bcmath
intl
openssl
fileinfo
sockets
imap

If you use SQLite for a quick local or test installation, enable pdo_sqlite and provide a writable SQLite database file path in the configuration.

If you are installing Watch My Domains SED Professional Edition with PostgreSQL, Oracle Database, Microsoft SQL Server, SQL Server Express, or another supported advanced database backend, install and enable the PHP driver required for that database. These database engines are not available for all editions.

After changing php.ini, restart Apache from the XAMPP Control Panel. PHP configuration changes will not take effect until Apache has been restarted.

Install IonCube Loader

IonCube Loader is required for Watch My Domains SED trial and encoded installations.

Download the Windows IonCube Loader package that matches the PHP version, architecture, and thread-safety mode used by your XAMPP installation.

To check the PHP version and configuration, create a temporary PHP information file in:

C:\xampp\htdocs

Open it in a browser and review the PHP version, architecture, compiler, and thread safety settings. Remove the PHP information file after use.

Copy the correct IonCube Loader DLL into a stable folder such as:

C:\xampp\php\ioncube

Then edit php.ini and add the zend_extension line for the loader DLL.

For example, if the loader file is ioncube_loader_win_8.2.dll, the php.ini entry may look like this:

zend_extension="C:\xampp\php\ioncube\ioncube_loader_win_8.2.dll"

The exact DLL name must match your PHP version.

Watch My Domains SED also runs PHP from the command line for cron.php and setup commands. Confirm that command-line PHP can load IonCube Loader by running this from Command Prompt:

C:\xampp\php\php.exe -v

The output should show that IonCube Loader is loaded.

Some Windows PHP stacks use separate php.ini files for Apache PHP and command-line PHP. If command-line PHP does not show IonCube Loader, check which php.ini file is loaded by running:

C:\xampp\php\php.exe --ini

Update that file as needed.

Restart Apache after installing IonCube Loader. If Apache fails to start, the most common cause is using the wrong IonCube Loader DLL for the installed PHP version.

Download and Copy Watch My Domains SED Files

Download the Watch My Domains SED package and unzip it into the web folder created earlier.

A typical XAMPP installation path is:

C:\xampp\htdocs\wmdsed

After extraction, the folder should contain the main application files, cron.php, sed.php, the lib folder, and sample configuration files.

If the package contains config-sample.php, copy it to config.php. If you need extended configuration for your database backend, copy config-extended-sample.php to config.php instead. Do not edit the sample file directly. Keep the sample file as a reference for future updates.

Create Log and Data Folders

Create a folder for Watch My Domains SED logs. A simple Windows path is:

C:\wmdsed\logs

Create any additional folders needed for backups and generated data. For example:

C:\wmdsed\backup
C:\wmdsed\webdata

Use C:\wmdsed\backup for database backups and C:\wmdsed\webdata if you plan to enable website snapshot or browser-based checks.

Make sure the Windows account used by Apache and the Windows account used by Task Scheduler can read and write to these folders.

Create the Database

If you are using the bundled XAMPP MariaDB or MySQL server, open phpMyAdmin from the XAMPP Control Panel or visit:

http://localhost/phpmyadmin

Create a database for Watch My Domains SED. The recommended database name is:

wmdsed6

Create a dedicated database user instead of using the root account. A typical user name is:

wmdsed6

Grant this user full privileges only on the Watch My Domains SED database.

Use a strong password for the database user and store it securely. You will need this password when editing the Watch My Domains SED configuration file.

If you are installing Watch My Domains SED Professional Edition with PostgreSQL, Oracle Database, Microsoft SQL Server, SQL Server Express, or another supported advanced database backend, create the database and database user using the administration tools for that database server.

Configure Watch My Domains SED

Edit config.php in the Watch My Domains SED installation folder.

For a typical XAMPP installation, set the database type to MySQL or MariaDB using the driver expected by your package, usually pdo_mysql. Set the database name to:

wmdsed6

Set the database user to the dedicated database user created earlier. Set the database password to the password assigned to that user. For a local XAMPP installation, the database host is usually:

localhost

The default database port is usually:

3306

If you are using SQLite for a quick local or test installation, configure the SQLite database path according to the comments in the configuration file and make sure the file location is writable by the web server and scheduled task.

If you are installing Watch My Domains SED Professional Edition with PostgreSQL, Oracle Database, Microsoft SQL Server, SQL Server Express, or another supported advanced database backend, use the extended configuration file and select the correct database configuration block for that backend.

Set the setup password or application secret values in config.php. Use long random values and store them securely.

Update the log path in config.php to the Windows log folder, such as:

C:\wmdsed\logs

If backslashes cause escaping problems, use forward slashes such as:

C:/wmdsed/logs

Save config.php and restart Apache.

Initialize the Database Tables

After configuring the database, create the initial Watch My Domains SED tables from the command line.

Open Command Prompt as administrator and change to the Watch My Domains SED installation folder.

Run PHP from the XAMPP PHP folder and execute sed.php with the table initialization command.

For example, if SED is installed in C:\xampp\htdocs\wmdsed, run:

C:\xampp\php\php.exe C:\xampp\htdocs\wmdsed\sed.php list=tables

If the command fails, check that command-line PHP can load IonCube Loader, that the database credentials in config.php are correct, and that the database user has permission to create tables.

Open the Application

Open Watch My Domains SED in a browser using the URL configured for your installation.

If you configured a local hostname as recommended, use:

http://wmdsed.localhost/

If you are using a folder-based installation instead, use:

http://localhost/wmdsed

If you are accessing the installation from another computer on the intranet, use the intranet IP address or hostname, such as:

http://192.168.1.50/
http://192.168.1.50/wmdsed
http://wmdsed.local/
http://wmdsed.company.local/

If the application loads correctly, sign in and complete the initial administration steps. Enter your Watch My Domains SED license code when prompted.

If the page shows a PHP error, blank page, or encoded file error, check the Apache error log, PHP error log, and IonCube Loader configuration.

Run the Basic Diagnostic Tool

After the application files and configuration are in place, open the diagnostic tool in your browser.

If you configured the hostname-based URL, open:

http://wmdsed.localhost/verify.php

If you are using a folder-based installation, open:

http://localhost/wmdsed/verify.php

If you are accessing the installation from another computer on the intranet, use a URL such as:

http://192.168.1.50/verify.php
http://192.168.1.50/wmdsed/verify.php
http://wmdsed.local/verify.php
http://wmdsed.company.local/verify.php

Review the diagnostic output and correct any missing PHP extensions, database connection problems, folder permission issues, or IonCube Loader problems before continuing.

Configure the Scheduled Cron Task

Watch My Domains SED uses cron.php to process lookup queues and scheduled monitoring jobs. On Windows, this must be configured using Windows Task Scheduler.

The cron.php script must run every minute. Do not change the interval to anything other than one minute.

Create a batch file named cron.bat in a stable folder such as:

C:\wmdsed\cron.bat

The batch file should change to the application folder and run cron.php using XAMPP command-line PHP.

For example:

cd /d C:\xampp\htdocs\wmdsed
C:\xampp\php\php.exe C:\xampp\htdocs\wmdsed\cron.php

To avoid opening a visible command window every minute, create a VBScript wrapper named cron.vbs that runs cron.bat silently.

Example cron.vbs content:

Dim WinScriptHost
Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "C:\wmdsed\cron.bat" & Chr(34), 0
Set WinScriptHost = Nothing

Configure Windows Task Scheduler to run:

wscript.exe

Use the following argument:

"C:\wmdsed\cron.vbs"

Create a scheduled task that runs every one minute. On Windows Server, set the task to run whether the user is logged on or not and enable Run with highest privileges. On Windows 11, these settings are also recommended if the task should continue running when no user is actively signed in.

Use a Windows account that has permission to access XAMPP, the Watch My Domains SED folder, and the log folder.

Run the task manually once from Task Scheduler and confirm that queued jobs are processed inside Watch My Domains SED.

Configure Database Backups

Create a backup folder such as:

C:\wmdsed\backup

If you are using MariaDB or MySQL, create a batch file that runs mysqldump from the XAMPP MySQL bin folder and writes the database backup to the backup folder.

For example:

C:\xampp\mysql\bin\mysqldump.exe -u wmdsed6 -p wmdsed6 > C:\wmdsed\backup\wmdsed6_backup.sql

For unattended scheduled backups, avoid interactive password prompts. Use a secure MySQL option file or another safe credential storage method supported by your environment.

The output file name should include the machine name and current date. For example:

C:\wmdsed\backup\wmdsed6_SERVERNAME_20260109.sql

If you are using another database backend with Watch My Domains SED Professional Edition, use the recommended backup tool for that database server.

Create a second Windows Task Scheduler task to run the backup script daily. A late evening time such as 10:30 PM is suitable for most installations.

Keep a reasonable number of backup files and periodically copy backups to a separate machine or storage system. Database backups should not exist only on the same machine as the live installation.

Optional Website Snapshot Support

Some Watch My Domains SED features may require browser-based website checks or snapshots. On Linux, this is handled by installing Node.js, Puppeteer, and related browser dependencies.

If website snapshot support is required, install the Windows version of Node.js, then install the required Node packages in a dedicated folder such as:

C:\wmdsed\webdata

Use npm to install the required packages if these are required by the SED package:

npm install puppeteer
npm install minimist
npm install timers-promises

Copy the websites.js file from the Watch My Domains SED lib/js folder into the webdata folder if your package expects that layout.

Make sure the Windows account used by Apache and the scheduled task can access the webdata folder. Also make sure the machine has the runtime components required by Puppeteer and Chromium.

Configure HTTPS

For intranet installations, HTTPS is recommended if credentials or sensitive operational data will be transmitted over the network. XAMPP does not automatically provide a trusted certificate. You can use a certificate from your internal certificate authority, a company-issued certificate, or another certificate trusted by the computers on your intranet.

Configure Apache in XAMPP to use the certificate and private key. If your intranet uses a reverse proxy or load balancer, HTTPS may also be terminated there.

For local Windows 11 testing, HTTPS may not be required. However, avoid sending administrator login credentials over plain HTTP on untrusted networks.

Security Recommendations

Do not expose phpMyAdmin broadly across the intranet. Restrict it using firewall rules, VPN access, Apache access controls, or administrator-only network access.

Use strong passwords for Windows administrator accounts, database users, and Watch My Domains SED administrator accounts.

Use a dedicated database user for the application. Do not use the MariaDB root account in the application configuration.

Confirm that the database backend you plan to use is supported by your Watch My Domains SED edition. PostgreSQL, Oracle Database, Microsoft SQL Server, SQL Server Express, and other advanced database backends require Watch My Domains SED Professional Edition.

Keep XAMPP, PHP, Apache, MariaDB, IonCube Loader, database drivers, and Watch My Domains SED updated according to compatibility requirements.

Remove test files such as PHP information pages after installation.

If the installation is available across the intranet, disable or restrict access to default XAMPP pages, phpMyAdmin, and any diagnostic files that are not needed after setup.

Use HTTPS for intranet access when possible. Avoid exposing administrator login pages over plain HTTP on shared or untrusted internal networks.

Limit inbound firewall rules to the ports that are actually needed, usually 80 and 443. Do not expose database ports such as 3306 across the intranet unless there is a specific administrative requirement.

Testing the Installation

Open Watch My Domains SED from the same machine using:

http://wmdsed.localhost/

If you are using a folder-based installation instead, use:

http://localhost/wmdsed

If it is an intranet installation, open it from another computer using the configured hostname or local IP address:

http://192.168.1.50/
http://192.168.1.50/wmdsed
http://wmdsed.local/
http://wmdsed.company.local/

Add a small number of test domains and run lookups. Confirm that the lookup queue is processed after the cron task runs.

Check the Watch My Domains SED logs, Apache logs, PHP logs, and Task Scheduler history if the queue is not processed.

Run the backup task manually once and confirm that a database backup file is created successfully.

Troubleshooting

If the application shows encoded file errors, verify that IonCube Loader is installed and that the loader version matches the XAMPP PHP version.

If the web interface works but cron.php fails, check command-line PHP separately by running:

C:\xampp\php\php.exe -v

The command-line PHP configuration must also load IonCube Loader.

If database setup fails, check the database name, user name, password, host, database driver, and database privileges.

If you are using PostgreSQL, Oracle Database, Microsoft SQL Server, SQL Server Express, or another advanced database backend, confirm that you are installing Watch My Domains SED Professional Edition and that the correct PHP database driver is installed.

If another computer cannot access the installation using http://localhost/, remember that localhost always refers to the computer where the browser is running. Use the server IP address or intranet hostname instead.

If another computer cannot access the installation using the intranet IP address, check the Windows Firewall, router or network firewall, Apache virtual host configuration, and whether Apache is listening on the expected port.

If the intranet hostname does not work, check the internal DNS record or the hosts file entry on the client computer. Also confirm that the hostname points to the correct intranet IP address.

If Task Scheduler does not run the task, confirm that the task is set to run whether the user is logged on or not, that it uses absolute paths, and that the selected Windows account has the required permissions.

If the task works manually but not on schedule, check the Task Scheduler History tab and disable unnecessary power, idle, or network conditions.

Summary

Installing Watch My Domains SED on Windows with XAMPP requires Apache, PHP, a supported database backend, the required PHP extensions, IonCube Loader, a configured database, initialized database tables, and a scheduled task that runs cron.php every minute.

For a complete installation, also configure daily database backups, HTTPS, secure access controls, and optional Node/Puppeteer support if website snapshot features are required.

The same general process applies to Windows 11 and Windows Server. Windows 11 is suitable for local evaluation or small private use. Windows Server is recommended for production, always-on, or multi-user deployments.

For local access, localhost or 127.0.0.1 is sufficient. For access from another computer on the intranet, use the machine's LAN IP address or a hostname mapped to that IP address. For organization-wide intranet access, use internal DNS, appropriate firewall rules, and HTTPS where possible.

Close