Виртуальная машина PHP
Экземпляр класса Runkit_Sandbox создает отдельный поток основного процесса с собственным окружением и выделенной областью памяти (стеком). С помощью дополнительных параметров конструктора можно ограничивать функционал интерпретатора в песочнице, создавая таким образом безопасное окружение для выполнения пользовательского кода.
$options = array(
'safe_mode'=>true,
'open_basedir'=>'/var/www/users/jdoe/',
'allow_url_fopen'=>'false',
'disable_functions'=>'exec,shell_exec,passthru,system',
'disable_classes'=>'myAppClass',
);
$sandbox = new Runkit_Sandbox($options);
$sandbox->ini_set('html_errors', true);
// ...
$sandbox->eval('var_dump(isset($foo));');
https://php.net/manual/ru/runkit.sandbox.php
UPD: Так же есть сторонние библиотеки, например:
https://github.com/Corveda/PHPSandbox