MediaWiki REL1_40
|
Executes shell commands. More...
Static Public Member Functions | |
static | command (... $commands) |
Returns a new instance of Command class. | |
static | escape (... $args) |
Locale-independent version of escapeshellarg() | |
static | isDisabled () |
Check if this class is effectively disabled via php.ini config. | |
static | makeScriptCommand (string $script, array $parameters, $options=[]) |
Generate a Command object to run a MediaWiki CLI script. | |
Public Attributes | |
const | NO_EXECVE = 16 |
Deny execve syscall with seccomp. | |
const | NO_LOCALSETTINGS = 32 |
Deny access to LocalSettings.php (MW_CONFIG_FILE) | |
const | NO_NETWORK = 8 |
Restrict the request to have no network access. | |
const | NO_ROOT = 1 |
Disallow any root access. | |
const | PRIVATE_DEV = 4 |
Create a private /dev. | |
const | RESTRICT_DEFAULT |
Apply a default set of restrictions for improved security out of the box. | |
const | RESTRICT_NONE = 0 |
Don't apply any restrictions. | |
const | SECCOMP = 2 |
Use seccomp to block dangerous syscalls. | |
Executes shell commands.
Use call chaining with this class for expressiveness: $result = Shell::command( 'some command' ) ->input( 'foo' ) ->environment( [ 'ENVIRONMENT_VARIABLE' => 'VALUE' ] ) ->limits( [ 'time' => 300 ] ) ->execute();
... = $result->getExitCode(); ... = $result->getStdout(); ... = $result->getStderr();
|
static |
Returns a new instance of Command class.
string|string[] | ...$commands String or array of strings representing the command to be executed, each value will be escaped. Example: [ 'convert', '-font', 'font name' ] would produce "'convert' '-font' 'font name'" |
|
static |
Locale-independent version of escapeshellarg()
Originally, this fixed the incorrect use of single quotes on Windows (https://bugs.php.net/bug.php?id=26285) and the locale problems on Linux in PHP 5.2.6+ (https://bugs.php.net/bug.php?id=54391). The second bug is still open as of 2021.
string|string[] | ...$args strings to escape and glue together, or a single array of strings parameter. Null values are ignored. |
|
static |
Check if this class is effectively disabled via php.ini config.
Definition at line 139 of file Shell.php.
References wfDebug().
Referenced by MediaWiki\Shell\Command\__construct().
|
static |
Generate a Command object to run a MediaWiki CLI script.
Note that $parameters should be a flat array and an option with an argument should consist of two consecutive items in the array (do not use "--option value").
string | $script | MediaWiki CLI script with full path |
string[] | $parameters | Arguments and options to the script |
array | $options | Associative array of options: 'php': The path to the php executable 'wrapper': Path to a PHP wrapper to handle the maintenance script |
const MediaWiki\Shell\Shell::NO_EXECVE = 16 |
Deny execve syscall with seccomp.
const MediaWiki\Shell\Shell::NO_LOCALSETTINGS = 32 |
const MediaWiki\Shell\Shell::NO_NETWORK = 8 |
const MediaWiki\Shell\Shell::NO_ROOT = 1 |
const MediaWiki\Shell\Shell::PRIVATE_DEV = 4 |
const MediaWiki\Shell\Shell::RESTRICT_DEFAULT |
Apply a default set of restrictions for improved security out of the box.
const MediaWiki\Shell\Shell::RESTRICT_NONE = 0 |
const MediaWiki\Shell\Shell::SECCOMP = 2 |
Use seccomp to block dangerous syscalls.