From 5cc7bd860fe653db831b20c7937a80ef35221f56 Mon Sep 17 00:00:00 2001 From: Michael Foster Date: Thu, 22 Aug 2013 03:35:57 +1000 Subject: [PATCH] Add cache and gm to pre-installation test. Don't die when we can't write to templates/cache. --- inc/template.php | 3 ++- install.php | 24 +++++++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/inc/template.php b/inc/template.php index 09e27c26..ef688944 100644 --- a/inc/template.php +++ b/inc/template.php @@ -26,7 +26,8 @@ function load_twig() { $loader->setPaths($config['dir']['template']); $twig = new Twig_Environment($loader, array( 'autoescape' => false, - 'cache' => "{$config['dir']['template']}/cache", + 'cache' => is_writable('templates') && (!is_dir('templates/cache') || is_writable('templates/cache')) ? + "{$config['dir']['template']}/cache" : false, 'debug' => $config['debug'] )); $twig->addExtension(new Twig_Extensions_Extension_Tinyboard()); diff --git a/install.php b/install.php index a6937028..8725df6d 100644 --- a/install.php +++ b/install.php @@ -512,6 +512,13 @@ if ($step == 0) { 'required' => false, 'message' => '(Optional) `identify` was not found or executable; command-line ImageMagick image processing cannot be enabled.', ), + array( + 'category' => 'Image processing', + 'name' => '`gm` (command-line GraphicsMagick)', + 'result' => $can_exec && shell_exec('which gm'), + 'required' => false, + 'message' => '(Optional) `gm` was not found or executable; command-line GraphicsMagick (faster than ImageMagick) cannot be enabled.', + ), array( 'category' => 'Image processing', 'name' => '`gifsicle` (command-line animted GIF thumbnailing)', @@ -526,12 +533,27 @@ if ($step == 0) { 'required' => true, 'message' => 'Tinyboard does not have permission to create directories (boards) here. You will need to chmod (or operating system equivalent) appropriately.' ), + array( + 'category' => 'File permissions', + 'name' => getcwd() . '/templates/cache', + 'result' => is_writable('templates') && (!is_dir('templates/cache') || is_writable('templates/cache')), + 'required' => true, + 'message' => 'You must give Tinyboard permission to create (and write to) the templates/cache directory or performance will be drastically reduced.' + ), array( 'category' => 'File permissions', 'name' => getcwd() . '/inc/instance-config.php', 'result' => is_writable('inc/instance-config.php'), 'required' => false, - 'message' => 'Tinyboard does not have permission to make changes to inc/instance-config.php. To complete the installation, you will be asked to manually copy and paste code into the file instead.' + 'message' => 'Tinyboard does not have permission to make changes to inc/instance-config.php. To complete the installation, you will be asked to manually copy and paste code into the file instead.' + ), + array( + 'category' => 'Misc', + 'name' => 'Caching available (APC, XCache, Memcached or Redis)', + 'result' => extension_loaded('apc') || extension_loaded('xcache') + || extension_loaded('memcached') || extension_loaded('redis'), + 'required' => false, + 'message' => 'You will not be able to enable the additional caching system, designed to minimize SQL queries and significantly improve performance. APC is the recommended method of caching, but XCache, Memcached and Redis are also supported.' ), array( 'category' => 'Misc',