diff --git a/src/Composer/Command/DiagnoseCommand.php b/src/Composer/Command/DiagnoseCommand.php
index 415b6d7b2..e70815fc6 100644
--- a/src/Composer/Command/DiagnoseCommand.php
+++ b/src/Composer/Command/DiagnoseCommand.php
@@ -189,6 +189,7 @@ EOT
'zip: ' . (extension_loaded('zip') ? 'extension present' : 'extension not loaded')
. ', ' . ($hasSystemUnzip ? 'unzip present' : 'unzip not available')
. ', ' . ($hasSystem7zip ? '7-Zip present ('.$bin7zip.')' : '7-Zip not available')
+ . (($hasSystem7zip || $hasSystemUnzip) && !function_exists('proc_open') ? ', proc_open is disabled or not present, unzip/7-z will not be usable' : '')
);
return $this->exitCode;
@@ -220,6 +221,10 @@ EOT
private function checkGit()
{
+ if (!function_exists('proc_open')) {
+ return 'proc_open is not available, git cannot be used';
+ }
+
$this->process->execute('git config color.ui', $output);
if (strtolower(trim($output)) === 'always') {
return 'Your git color.ui setting is set to always, this is known to create issues. Use "git config --global color.ui true" to set it correctly.';