Поэтому в основном я пишу фреймворк, и, как часть его функций, он должен предоставить набор устоявшихся URI / путей для конечного разработчика. Некоторые из этих путей используют $_SERVER['DOCUMENT_ROOT'] : /** * Absolute filesystem path to web root install (aka docroot). * @example "C:/wamp/www" OR "/home/visitgoz/public_html/" */ CFG::set('ABS_WWW', str_replace( $tmpseps, DIRECTORY_SEPARATOR, truepath($_SERVER['DOCUMENT_ROOT']).'/' ) ); /** * […]
Проблема Я использовал функцию, которая использовала proc_open() для вызова команд оболочки. Кажется, что я делал STDIO неправильно, а иногда вызывал PHP или целевую команду для блокировки. Это исходный код: function execute($cmd, $stdin=null){ $proc=proc_open($cmd,array(0=>array('pipe','r'),1=>array('pipe','w'),2=>array('pipe','w')),$pipes); fwrite($pipes[0],$stdin); fclose($pipes[0]); $stdout=stream_get_contents($pipes[1]); fclose($pipes[1]); $stderr=stream_get_contents($pipes[2]); fclose($pipes[2]); return array( 'stdout'=>$stdout, 'stderr'=>$stderr, 'return'=>proc_close($proc) ); } устройство function execute($cmd, $stdin=null){ $proc=proc_open($cmd,array(0=>array('pipe','r'),1=>array('pipe','w'),2=>array('pipe','w')),$pipes); fwrite($pipes[0],$stdin); fclose($pipes[0]); $stdout=stream_get_contents($pipes[1]); fclose($pipes[1]); […]