diff --git a/.gitignore b/.gitignore
index 8cf78452c..be8430509 100755
--- a/.gitignore
+++ b/.gitignore
@@ -14,7 +14,6 @@ coverage
.buildpath
.project
.settings/
-local/cache/*
local/media/documents/*
local/media/images/*
web/assets/*
diff --git a/.travis.yml b/.travis.yml
index 84e25866b..184a98fbe 100755
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,6 +8,7 @@ env:
- DB_USER=root
before_script:
+ - phpenv config-add travis.php.ini
- composer self-update
- composer install --prefer-dist --dev
- sh -c "mysql -u$DB_USER -e 'SET FOREIGN_KEY_CHECKS = 0; DROP DATABASE IF EXISTS thelia;SET FOREIGN_KEY_CHECKS = 1;'; fi"
diff --git a/core/lib/Thelia/Command/Install.php b/core/lib/Thelia/Command/Install.php
index 03b7fda48..6423d861a 100755
--- a/core/lib/Thelia/Command/Install.php
+++ b/core/lib/Thelia/Command/Install.php
@@ -28,6 +28,7 @@ use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Filesystem\Filesystem;
use Thelia\Command\ContainerAwareCommand;
+use Thelia\Install\CheckPermission;
use Thelia\Install\Database;
/**
@@ -82,6 +83,9 @@ class Install extends ContainerAwareCommand
'',
'Welcome to Thelia install process',
'You need information about your database configuration (host, username, password, database name, etc)',
+ '',
+ 'Caution : You are installing Thelia in cli mode, we verify some information, but this information are only available for the cli php sapi',
+ 'This informations can be different in your apache or cgi php.ini files',
''
));
@@ -136,40 +140,35 @@ class Install extends ContainerAwareCommand
"Checking some permissions"
));
- $confDir = THELIA_ROOT . "local/config";
- $cacheDir = THELIA_ROOT . "cache";
- $logDir = THELIA_ROOT . "log";
+ $permissions = new CheckPermission(false, $this->getContainer()->get('thelia.translator'));
+ $isValid = $permissions->exec();
- $conf = is_writable($confDir);
- $cache = is_writable($cacheDir);
- $log = is_writable($logDir);
+ foreach($permissions->getValidationMessages() as $item => $data) {
+ if($data['status']) {
+ $output->writeln(array(
+ sprintf("%s ... %s",
+ $data['text'],
+ "Ok")
+ )
+ );
+ } else {
+ $output->writeln(array(
+ sprintf("%s %s",
+ $data['text'],
+ sprintf("%s", $data["hint"])
+ )
+ ));
+ }
- $output->writeln(array(
- sprintf(
- "config directory(%s)... %s",
- $confDir,
- $conf ? "Ok" : "Fail"
- ),
- sprintf(
- "cache directory(%s)... %s"
- ,$cacheDir,
- $cache ? "Ok" : "Fail"
- ),
- sprintf(
- "log directory(%s)... %s",
- $logDir,
- $log ? "Ok" : "Fail"
- ),
- ));
-
- if ($conf === false || $cache === false || $log === false) {
- $output->writeln(array(
- "",
- "Please put correct permission and reload install process"
- ));
- exit;
}
+ if(false === $isValid) {
+ $output->writeln(array(
+ "",
+ "Please put correct permissions and reload install process"
+ ));
+ exit;
+ }
}
/**
diff --git a/core/lib/Thelia/Install/CheckPermission.php b/core/lib/Thelia/Install/CheckPermission.php
index 15317211b..b8c4e9888 100644
--- a/core/lib/Thelia/Install/CheckPermission.php
+++ b/core/lib/Thelia/Install/CheckPermission.php
@@ -45,6 +45,7 @@ class CheckPermission extends BaseInstall
const DIR_LOG = 'log';
const DIR_CACHE = 'cache';
const DIR_WEB = 'web';
+ const DIR_SESSION = 'local/session';
/** @var array Directory needed to be writable */
protected $directoriesToBeWritable = array(
@@ -52,11 +53,12 @@ class CheckPermission extends BaseInstall
self::DIR_LOG,
self::DIR_CACHE,
self::DIR_WEB,
+ self::DIR_SESSION,
);
/** @var array Minimum server configuration necessary */
protected $minServerConfigurationNecessary = array(
- 'memory_limit' => 134217728,
+ 'memory_limit' => 157286400,
'post_max_size' => 20971520,
'upload_max_filesize' => 2097152
);
@@ -187,9 +189,9 @@ class CheckPermission extends BaseInstall
{
if ($this->translator !== null) {
if ($isValid) {
- $sentence = 'Your directory %directory% is writable';
+ $sentence = 'Your directory %directory% is writable';
} else {
- $sentence = 'Your directory %directory% is not writable';
+ $sentence = 'Your directory %directory% is not writable';
}
$translatedText = $this->translator->trans(
@@ -216,7 +218,7 @@ class CheckPermission extends BaseInstall
protected function getI18nDirectoryHint($directory)
{
if ($this->translator !== null) {
- $sentence = 'chmod 777 %directory% on your server with admin rights could help';
+ $sentence = 'chmod 777 %directory% on your server with admin rights could help';
$translatedText = $this->translator->trans(
$sentence,
array(
@@ -246,9 +248,9 @@ class CheckPermission extends BaseInstall
protected function getI18nConfigText($key, $expectedValue, $currentValue, $isValid)
{
if ($isValid) {
- $sentence = 'Your %key% server configuration (currently %currentValue%) is well enough to run Thelia2 (%expectedValue% needed)';
+ $sentence = 'Your %key% server configuration (currently %currentValue%) is well enough to run Thelia2 (%expectedValue% needed)';
} else {
- $sentence = 'Your %key% server configuration (currently %currentValue%) is not sufficient enough in order to run Thelia2 (%expectedValue% needed)';
+ $sentence = 'Your %key% server configuration (currently %currentValue%) is not sufficient enough in order to run Thelia2 (%expectedValue% needed)';
}
$translatedText = $this->translator->trans(
@@ -271,7 +273,7 @@ class CheckPermission extends BaseInstall
*/
protected function getI18nConfigHint()
{
- $sentence = 'Modifying this value on your server php.ini file with admin rights could help';
+ $sentence = 'Modifying this value on your server php.ini file with admin rights could help';
$translatedText = $this->translator->trans(
$sentence,
array(),
@@ -294,9 +296,9 @@ class CheckPermission extends BaseInstall
{
if ($this->translator !== null) {
if ($isValid) {
- $sentence = 'Your PHP version %currentValue% is well enough to run Thelia2 (%expectedValue% needed)';
+ $sentence = 'Your PHP version %currentValue% is well enough to run Thelia2 (%expectedValue% needed)';
} else {
- $sentence = 'Your PHP version %currentValue% is not sufficient enough to run Thelia2 (%expectedValue% needed)';
+ $sentence = 'Your PHP version %currentValue% is not sufficient enough to run Thelia2 (%expectedValue% needed)';
}
$translatedText = $this->translator->trans(
@@ -343,6 +345,10 @@ class CheckPermission extends BaseInstall
{
$serverValueInBytes = $this->returnBytes(ini_get($key));
+ if($serverValueInBytes == -1) {
+ return true;
+ }
+
return ($serverValueInBytes >= $necessaryValueInBytes);
}
diff --git a/travis.php.ini b/travis.php.ini
new file mode 100644
index 000000000..86776429c
--- /dev/null
+++ b/travis.php.ini
@@ -0,0 +1 @@
+post_max_size = 20M
\ No newline at end of file
diff --git a/local/cache/.gitkeep b/web/cache/.gitkeep
old mode 100755
new mode 100644
similarity index 100%
rename from local/cache/.gitkeep
rename to web/cache/.gitkeep
diff --git a/web/index_dev.php b/web/index_dev.php
index 0e9a229a8..f653270d6 100755
--- a/web/index_dev.php
+++ b/web/index_dev.php
@@ -42,11 +42,11 @@ $request = Request::createFromGlobals();
$thelia = new Thelia("dev", true);
if ( false === in_array($request->getClientIp(), $trustedIp)) {
- // Redirect 401 Unauthorized
- $response = new Response('Unauthorized', 401);
+ $response = Response::create('Forbidden', 403)->send();
+ $thelia->terminate($request, $response);
+} else {
+ $response = $thelia->handle($request)->prepare($request)->send();
$thelia->terminate($request, $response);
}
-$response = $thelia->handle($request)->prepare($request)->send();
-$thelia->terminate($request, $response);
\ No newline at end of file