diff options
| -rw-r--r-- | win32/build/Makefile | 3 | ||||
| -rwxr-xr-x | win32/build/registersyslog.php | 44 | ||||
| -rw-r--r-- | win32/syslog.reg | 5 |
3 files changed, 52 insertions, 0 deletions
diff --git a/win32/build/Makefile b/win32/build/Makefile index a4d82e06fb..26b73b625a 100644 --- a/win32/build/Makefile +++ b/win32/build/Makefile @@ -261,3 +261,6 @@ really-install: @type nul > $(BUILD_DIR)\extension_dlls.txt @if exist $(BUILD_DIR)\php_*.dll copy $(BUILD_DIR)\php_*.dll $(PHP_PREFIX)\ext /y >nul & dir /b $(BUILD_DIR)\php_*.dll > $(BUILD_DIR)\extension_dlls.txt @xcopy $(BUILD_DIR)\*.dll /exclude:$(BUILD_DIR)\extension_dlls.txt $(PHP_PREFIX) /y >nul + @echo Registering event source with syslog (requires admin rights) + @echo It's okay for this step to fail: + -$(PHP_PREFIX)\php.exe -n -dextension_dir=$(PHP_PREFIX) win32/build/registersyslog.php $(PHP_PREFIX)\$(PHPDLL) diff --git a/win32/build/registersyslog.php b/win32/build/registersyslog.php new file mode 100755 index 0000000000..ce28cbf420 --- /dev/null +++ b/win32/build/registersyslog.php @@ -0,0 +1,44 @@ +<?php + +/* This script sets up an event source for use by the php syslog() function. */ + +if (!extension_loaded("win32std")) { + @dl("php_win32std.dll"); +} + +$PATH = "SYSTEM\\CurrentControlSet\\Services\\Eventlog\\Application\\PHP-" . phpversion(); + +$dll = $argv[1]; + +if (extension_loaded("win32std")) { + $key = @reg_create_key(HKEY_LOCAL_MACHINE, $PATH, KEY_ALL_ACCESS); + + if (!$key) + $key = reg_open_key(HKEY_LOCAL_MACHINE, $PATH, KEY_ALL_ACCESS); + + if ($key) { + reg_set_value($key, "TypesSupported", REG_DWORD, 7) or die("Types"); + reg_set_value($key, "EventMessageFile", REG_SZ, $dll) or die("EventMessageFile"); + + syslog(LOG_NOTICE, "Registered PHP Event source"); + } else { + echo "Could not register event source\n"; + } +} + +/* let's also generate/update the bundled .reg file */ + +$dll = addslashes($dll); + +file_put_contents("win32/syslog.reg", <<<REG +REGEDIT4 + +[HKEY_LOCAL_MACHINE\\$PATH] +"TypesSupported"=dword:00000007 +"EventMessageFile"="$dll" + +REG +); + + +?> diff --git a/win32/syslog.reg b/win32/syslog.reg new file mode 100644 index 0000000000..a817b52faf --- /dev/null +++ b/win32/syslog.reg @@ -0,0 +1,5 @@ +REGEDIT4 + +[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\PHP-7.3.0-dev] +"TypesSupported"=dword:00000007 +"EventMessageFile"="g:\\test\\srctrunkinstall\\php7ts.dll" |
