diff options
Diffstat (limited to 'phpBB/install/module/requirements/task')
| -rw-r--r-- | phpBB/install/module/requirements/task/check_filesystem.php | 273 | ||||
| -rw-r--r-- | phpBB/install/module/requirements/task/check_server_environment.php | 190 |
2 files changed, 0 insertions, 463 deletions
diff --git a/phpBB/install/module/requirements/task/check_filesystem.php b/phpBB/install/module/requirements/task/check_filesystem.php deleted file mode 100644 index 5b944b8415..0000000000 --- a/phpBB/install/module/requirements/task/check_filesystem.php +++ /dev/null @@ -1,273 +0,0 @@ -<?php -/** - * - * This file is part of the phpBB Forum Software package. - * - * @copyright (c) phpBB Limited <https://www.phpbb.com> - * @license GNU General Public License, version 2 (GPL-2.0) - * - * For full copyright and license information, please see - * the docs/CREDITS.txt file. - * - */ - -namespace phpbb\install\module\requirements\task; - -/** - * Checks filesystem requirements - */ -class check_filesystem extends \phpbb\install\task_base -{ - /** - * @var \phpbb\filesystem\filesystem_interface - */ - protected $filesystem; - - /** - * @var array - */ - protected $files_to_check; - - /** - * @var bool - */ - protected $tests_passed; - - /** - * @var string - */ - protected $phpbb_root_path; - - /** - * @var \phpbb\install\helper\iohandler\iohandler_interface - */ - protected $response; - - /** - * Constructor - * - * @param \phpbb\filesystem\filesystem_interface $filesystem filesystem handler - * @parma \phpbb\install\helper\iohandler\iohandler_interface $response response helper - * @param string $phpbb_root_path relative path to phpBB's root - * @param string $php_ext extension of php files - */ - public function __construct(\phpbb\filesystem\filesystem_interface $filesystem, - \phpbb\install\helper\iohandler\iohandler_interface $response, - $phpbb_root_path, - $php_ext) - { - parent::__construct(true); - - $this->filesystem = $filesystem; - $this->response = $response; - $this->phpbb_root_path = $phpbb_root_path; - - $this->tests_passed = false; - - // Files/Directories to check - // All file/directory names must be relative to phpBB's root path - $this->files_to_check = array( - array( - 'path' => 'cache/', - 'failable' => false, - 'is_file' => false, - ), - array( - 'path' => 'store/', - 'failable' => false, - 'is_file' => false, - ), - array( - 'path' => 'files/', - 'failable' => false, - 'is_file' => false, - ), - array( - 'path' => 'images/avatars/upload/', - 'failable' => true, - 'is_file' => false, - ), - array( - 'path' => "config.$php_ext", - 'failable' => false, - 'is_file' => true, - ), - ); - } - - /** - * {@inheritdoc} - */ - public function run() - { - $this->tests_passed = true; - - // Check files/directories to be writable - foreach ($this->files_to_check as $file) - { - if ($file['is_file']) - { - $this->check_file($file['path'], $file['failable']); - } - else - { - $this->check_dir($file['path'], $file['failable']); - } - } - - return $this->tests_passed; - } - - /** - * Sets $this->tests_passed - * - * @param bool $is_passed - */ - protected function set_test_passed($is_passed) - { - // If one test failed, tests_passed should be false - $this->tests_passed = (!$this->tests_passed) ? false : $is_passed; - } - - /** - * Check if a file is readable and writable - * - * @param string $file Filename - * @param bool $failable Whether failing test should interrupt installation process - */ - protected function check_file($file, $failable = false) - { - $path = $this->phpbb_root_path . $file; - $exists = $writable = true; - - // Try to create file if it does not exists - if (!file_exists($path)) - { - $fp = @fopen($path, 'w'); - @fclose($fp); - try - { - $this->filesystem->phpbb_chmod($path, - \phpbb\filesystem\filesystem_interface::CHMOD_READ | \phpbb\filesystem\filesystem_interface::CHMOD_WRITE - ); - $exists = true; - } - catch (\phpbb\filesystem\exception\filesystem_exception $e) - { - // Do nothing - } - } - - if (file_exists($path)) - { - if (!$this->filesystem->is_writable($path)) - { - $writable = false; - } - } - else - { - $exists = $writable = false; - } - - $this->set_test_passed(($exists && $writable) || $failable); - - if (!($exists && $writable)) - { - $title = ($exists) ? 'FILE_NOT_WRITABLE' : 'FILE_NOT_EXISTS'; - $description = array($title . '_EXPLAIN', $file); - - if ($failable) - { - $this->response->add_warning_message($title, $description); - } - else - { - $this->response->add_error_message($title, $description); - } - } - } - - /** - * Check if a directory is readable and writable - * - * @param string $dir Filename - * @param bool $failable Whether failing test should abort the installation process - */ - protected function check_dir($dir, $failable = false) - { - $path = $this->phpbb_root_path . $dir; - $exists = $writable = false; - - // Try to create the directory if it does not exist - if (!file_exists($path)) - { - try - { - $this->filesystem->mkdir($path, 0777); - $this->filesystem->phpbb_chmod($path, - \phpbb\filesystem\filesystem_interface::CHMOD_READ | \phpbb\filesystem\filesystem_interface::CHMOD_WRITE - ); - $exists = true; - } - catch (\phpbb\filesystem\exception\filesystem_exception $e) - { - // Do nothing - } - } - - // Now really check - if (file_exists($path) && is_dir($path)) - { - try - { - $exists = true; - $this->filesystem->phpbb_chmod($path, - \phpbb\filesystem\filesystem_interface::CHMOD_READ | \phpbb\filesystem\filesystem_interface::CHMOD_WRITE - ); - } - catch (\phpbb\filesystem\exception\filesystem_exception $e) - { - // Do nothing - } - } - - if ($this->filesystem->is_writable($path)) - { - $writable = true; - } - - $this->set_test_passed(($exists && $writable) || $failable); - - if (!($exists && $writable)) - { - $title = ($exists) ? 'DIRECTORY_NOT_WRITABLE' : 'DIRECTORY_NOT_EXISTS'; - $description = array($title . '_EXPLAIN', $dir); - - if ($failable) - { - $this->response->add_warning_message($title, $description); - } - else - { - $this->response->add_error_message($title, $description); - } - } - } - - /** - * {@inheritdoc} - */ - static public function get_step_count() - { - return 0; - } - - /** - * {@inheritdoc} - */ - public function get_task_lang_name() - { - return ''; - } -} diff --git a/phpBB/install/module/requirements/task/check_server_environment.php b/phpBB/install/module/requirements/task/check_server_environment.php deleted file mode 100644 index 50efdc55a2..0000000000 --- a/phpBB/install/module/requirements/task/check_server_environment.php +++ /dev/null @@ -1,190 +0,0 @@ -<?php -/** - * - * This file is part of the phpBB Forum Software package. - * - * @copyright (c) phpBB Limited <https://www.phpbb.com> - * @license GNU General Public License, version 2 (GPL-2.0) - * - * For full copyright and license information, please see - * the docs/CREDITS.txt file. - * - */ - -namespace phpbb\install\module\requirements\task; - -/** - * Installer task that checks if the server meats phpBB requirements - */ -class check_server_environment extends \phpbb\install\task_base -{ - /** - * @var \phpbb\install\helper\database - */ - protected $database_helper; - - /** - * @var \phpbb\install\helper\iohandler\iohandler_interface - */ - protected $response_helper; - - /** - * @var bool - */ - protected $tests_passed; - - /** - * Constructor - * - * @param \phpbb\install\helper\database $database_helper - * @param \phpbb\install\helper\iohandler\iohandler_interface $response - */ - public function __construct(\phpbb\install\helper\database $database_helper, - \phpbb\install\helper\iohandler\iohandler_interface $response) - { - $this->database_helper = $database_helper; - $this->response_helper = $response; - $this->tests_passed = true; - - parent::__construct(true); - } - - /** - * {@inheritdoc} - */ - public function run() - { - // - // Check requirements - // The error messages should be set in the check_ functions - // - - // Check PHP version - $this->check_php_version(); - - // Check for getimagesize() - $this->check_image_size(); - - // Check for PCRE support - $this->check_pcre(); - - // Check for JSON support - $this->check_json(); - - // Check for dbms support - $this->check_available_dbms(); - - return $this->tests_passed; - } - - /** - * Sets $this->tests_passed - * - * @param bool $is_passed - */ - protected function set_test_passed($is_passed) - { - // If one test failed, tests_passed should be false - $this->tests_passed = (!$this->tests_passed) ? false : $is_passed; - } - - /** - * Check if the requirements for PHP version is met - */ - protected function check_php_version() - { - $php_version = PHP_VERSION; - - if (version_compare($php_version, '5.3.9') < 0) - { - $this->response_helper->add_error_message('PHP_VERSION_REQD', 'PHP_VERSION_REQD_EXPLAIN'); - - $this->set_test_passed(false); - return; - } - - $this->set_test_passed(true); - } - - /** - * Checks if the installed PHP has getimagesize() available - */ - protected function check_image_size() - { - if (!@function_exists('getimagesize')) - { - $this->response_helper->add_error_message('PHP_GETIMAGESIZE_SUPPORT', 'PHP_GETIMAGESIZE_SUPPORT_EXPLAIN'); - - $this->set_test_passed(false); - return; - } - - $this->set_test_passed(true); - } - - /** - * Checks if the installed PHP supports PCRE - */ - protected function check_pcre() - { - if (@preg_match('//u', '')) - { - $this->set_test_passed(true); - return; - } - - $this->response_helper->add_error_message('PCRE_UTF_SUPPORT', 'PCRE_UTF_SUPPORT_EXPLAIN'); - - $this->set_test_passed(false); - } - - /** - * Checks whether PHP's JSON extension is available or not - */ - protected function check_json() - { - if (@extension_loaded('json')) - { - $this->set_test_passed(true); - return; - } - - $this->response_helper->add_error_message('PHP_JSON_SUPPORT', 'PHP_JSON_SUPPORT_EXPLAIN'); - - $this->set_test_passed(false); - } - - /** - * Check if any supported DBMS is available - */ - protected function check_available_dbms() - { - $available_dbms = $this->database_helper->get_available_dbms(false, true); - - if ($available_dbms['ANY_DB_SUPPORT']) - { - $this->set_test_passed(true); - return; - } - - $this->response_helper->add_error_message('PHP_SUPPORTED_DB', 'PHP_SUPPORTED_DB_EXPLAIN'); - - $this->set_test_passed(false); - } - - /** - * {@inheritdoc} - */ - static public function get_step_count() - { - return 0; - } - - /** - * {@inheritdoc} - */ - public function get_task_lang_name() - { - return ''; - } -} |
