aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/install/module/requirements/task
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/install/module/requirements/task')
-rw-r--r--phpBB/install/module/requirements/task/check_filesystem.php273
-rw-r--r--phpBB/install/module/requirements/task/check_server_environment.php190
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 '';
- }
-}