Skip to content

Commit 999d538

Browse files
mazhalaieddielau
authored andcommitted
MAGETWO-31850: [GITHUB] install.log can not be created with open_basedir restriction #796
- fixes based on CR comments
1 parent a95e9c7 commit 999d538

File tree

3 files changed

+11
-31
lines changed

3 files changed

+11
-31
lines changed

setup/module/Magento/Setup/src/Controller/DatabaseCheck.php

+2-13
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44
*/
55
namespace Magento\Setup\Controller;
66

7-
use Magento\Framework\Filesystem;
87
use Magento\Setup\Model\InstallerFactory;
9-
use Magento\Setup\Model\WebLogger;
108
use Zend\Json\Json;
119
use Zend\Mvc\Controller\AbstractActionController;
1210
use Zend\View\Model\JsonModel;
@@ -20,23 +18,14 @@ class DatabaseCheck extends AbstractActionController
2018
*/
2119
private $installerFactory;
2220

23-
/**
24-
* Filesystem to access log
25-
*
26-
* @var Filesystem
27-
*/
28-
private $filesystem;
29-
3021
/**
3122
* Constructor
3223
*
3324
* @param InstallerFactory $installerFactory
34-
* @param Filesystem $filesystem
3525
*/
36-
public function __construct(InstallerFactory $installerFactory, Filesystem $filesystem)
26+
public function __construct(InstallerFactory $installerFactory)
3727
{
3828
$this->installerFactory = $installerFactory;
39-
$this->filesystem = $filesystem;
4029
}
4130

4231
/**
@@ -48,7 +37,7 @@ public function indexAction()
4837
{
4938
$params = Json::decode($this->getRequest()->getContent(), Json::TYPE_ARRAY);
5039
try {
51-
$installer = $this->installerFactory->create(new WebLogger($this->filesystem));
40+
$installer = $this->installerFactory->create();
5241
$password = isset($params['password']) ? $params['password'] : '';
5342
$installer->checkDatabaseConnection($params['name'], $params['host'], $params['user'], $password);
5443
return new JsonModel(['success' => true]);

setup/module/Magento/Setup/src/Model/InstallerFactory.php

+2-3
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,9 @@ public function __construct(ServiceLocatorInterface $serviceLocator)
2929
/**
3030
* Factory method for installer object
3131
*
32-
* @param LoggerInterface $log
3332
* @return Installer
3433
*/
35-
public function create(LoggerInterface $log)
34+
public function create()
3635
{
3736
return new Installer(
3837
$this->serviceLocator->get('Magento\Setup\Model\FilePermissions'),
@@ -43,7 +42,7 @@ public function create(LoggerInterface $log)
4342
$this->serviceLocator->get('Magento\Framework\Module\ModuleList\Loader'),
4443
$this->serviceLocator->get('Magento\Framework\App\Filesystem\DirectoryList'),
4544
$this->serviceLocator->get('Magento\Setup\Model\AdminAccountFactory'),
46-
$log,
45+
new WebLogger($this->serviceLocator->get('Magento\Framework\Filesystem')),
4746
$this->serviceLocator->get('Magento\Framework\Math\Random'),
4847
$this->serviceLocator->get('Magento\Setup\Module\ConnectionFactory'),
4948
$this->serviceLocator->get('Magento\Framework\App\MaintenanceMode'),

setup/module/Magento/Setup/src/Model/WebLogger.php

+7-15
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ class WebLogger implements LoggerInterface
1818
/**
1919
* Log File
2020
*
21-
* @var string
21+
* @const string
2222
*/
23-
protected $logFile = 'install.log';
23+
const LOG_WEB = 'install.log';
2424

2525
/**
2626
* Currently open file resource
@@ -29,7 +29,6 @@ class WebLogger implements LoggerInterface
2929
*/
3030
protected $filesystem;
3131

32-
3332
/**
3433
* Currently open file resource
3534
*
@@ -68,14 +67,7 @@ public function logSuccess($message)
6867
public function logError(\Exception $e)
6968
{
7069
$this->terminateLine();
71-
$stackTrace = $e->getTrace();
72-
$this->writeToFile('<span class="text-danger">[ERROR] ' . $e->getMessage() . '<br/>');
73-
foreach ($stackTrace as $errorLine) {
74-
if (isset($errorLine['file'])) {
75-
$this->writeToFile($errorLine['file'] . ' ' . $errorLine['line'] . '<br/>');
76-
}
77-
}
78-
$this->writeToFile('<span><br/>');
70+
$this->writeToFile('<span class="text-danger">[ERROR] ' . $e . '<span><br/>');
7971
}
8072

8173
/**
@@ -113,7 +105,7 @@ public function logMeta($message)
113105
*/
114106
private function writeToFile($message)
115107
{
116-
$this->directory->writeFile($this->logFile, $message, 'a+');
108+
$this->directory->writeFile(self::LOG_WEB, $message, 'a+');
117109
}
118110

119111
/**
@@ -123,7 +115,7 @@ private function writeToFile($message)
123115
*/
124116
public function get()
125117
{
126-
$fileContents = explode('\n', $this->directory->readFile($this->logFile));
118+
$fileContents = explode('\n', $this->directory->readFile(self::LOG_WEB));
127119
return $fileContents;
128120
}
129121

@@ -134,8 +126,8 @@ public function get()
134126
*/
135127
public function clear()
136128
{
137-
if ($this->directory->isExist($this->logFile)) {
138-
$this->directory->delete($this->logFile);
129+
if ($this->directory->isExist(self::LOG_WEB)) {
130+
$this->directory->delete(self::LOG_WEB);
139131
}
140132
}
141133

0 commit comments

Comments
 (0)