The Virtuoso server in its standard build is a single executable. To allow for external customizations based on VSEs the Virtuoso server engine becomes a callable library, the main function is re-written to incorporate other libraries and a new executable is created. For example, a Virtuoso server that contains PHP support under Windows consists of:

 65K virtuoso-odbc-php-t.exe
5.2M libvirtuoso-odbc-t.dll
1.2M php4ts.dll

which replaces the usual 7M virtuoso-odbc-t.exe . virtuoso.odbc-php-t.exe is then executed in the usual way.

The Linux counterpart would be an 8M virtuoso-odbc-php-t binary.

The Virtuoso executable files provided in the installer are appropriately named to indicate which customizations are supported. e.g. one that contains "php" and "clr" in the file name has been built with PHP and CLR support.

The location of the support libraries (.DLL's) for the various customizations of Virtuoso on Windows must either be in the %PATH%; environment variable or be the same directory as the virtuoso .EXE file. Virtuoso will not be able to start otherwise.

[Note] Note:

If Virtuoso is starting as a system service then the SYSTEM PATH must be altered as opposed to the USER PATH. The USER PATH is appropriate to alter if Virtuoso is being started as that user, usually when in debug/foreground mode. This is applicable to any required environment variables, not just PATH.

Hosted environments that require SQL access back to the database can make use of the in-process client mechanism. Hosted Runtimes such as PHP and ASP .Net would ordinarily use an RPC based (ODBC) connection. To improve the efficiency of the system, keeping it all in-process, a special connection can be made with no alteration to the API used in the code for communication.

[Tip] See Also:

The In-Process Client keeps connections within Virtuoso avoiding unnecessary RPCs.