Index: install/prerequisites.php
===================================================================
--- install/prerequisites.php (revision 15549)
+++ install/prerequisites.php (working copy)
@@ -144,9 +144,8 @@
$ret['display_errors'] = $this->isPhpSettingChangeable('display_errors', '1');
$ret['error_reporting'] = $this->canChangeErrorReporting();
$ret['date.timezone'] = ini_get('date.timezone') != '';
+ $ret['variables_order'] = $this->_hasLetters(ini_get('variables_order'), Array ('G', 'P', 'C', 'S'));
- $ret['variables_order'] = strpos(ini_get('variables_order'), 'GPC') !== false;
-
$output_buffering = strtolower(ini_get('output_buffering'));
$ret['output_buffering'] = $output_buffering == 'on' || $output_buffering > 0;
@@ -154,6 +153,21 @@
}
/**
+ * Determines of a setting string has all given letters (ignoring order) in it
+ *
+ * @param string $setting
+ * @param Array $search_letters
+ * @return bool
+ * @access protected
+ */
+ protected function _hasLetters($setting, $search_letters)
+ {
+ $setting = preg_replace('/(' . implode('|', $search_letters) . ')/', '*', $setting);
+
+ return substr_count($setting, '*') == count($search_letters);
+ }
+
+ /**
* Detects if error reporting can be changed at runtime
*
* @return bool
Index: install/step_templates/sys_requirements.tpl
===================================================================
--- install/step_templates/sys_requirements.tpl (revision 15549)
+++ install/step_templates/sys_requirements.tpl (working copy)
@@ -11,26 +11,26 @@
</tr>';
$check_titles = Array (
- 'php_version' => 'PHP version: 5.2.0+ (required)',
- 'url_rewriting' => 'URL Rewriting Support (optional)',
- 'java' => 'Java (optional)',
+ 'php_version' => 'PHP version 5.2.0 or above<span class="error">*</span>',
+ 'url_rewriting' => 'URL rewriting support',
+ 'java' => 'Java template compression',
'sep1' => '<strong>PHP extensions:</strong>',
- 'memcache' => '- Memcache (optional)',
- 'curl' => '- Curl (required)',
- 'simplexml' => '- SimpleXML (required)',
- 'spl' => '- Standard PHP Library (required)',
- 'freetype' => '- Freetype (required)',
- 'gd_version' => '- GD 1.8+ (required)',
- 'jpeg' => '- JPEG (required)',
- 'mysql' => '- MySQL (required)',
- 'json' => '- JSON (required)',
+ 'memcache' => '- Memory caching support',
+ 'curl' => '- Accessing remote resources (via cURL)<span class="error">*</span>',
+ 'simplexml' => '- XML document processing (via SimpleXML)<span class="error">*</span>',
+ 'spl' => '- Standard PHP Library (SPL)<span class="error">*</span>',
+ 'freetype' => '- TrueType font support (via Freetype)<span class="error">*</span>',
+ 'gd_version' => '- GD Graphics Library 1.8 or above<span class="error">*</span>',
+ 'jpeg' => '- JPEG images support<span class="error">*</span>',
+ 'mysql' => '- Database connectivity (via MySQL)<span class="error">*</span>',
+ 'json' => '- JSON processing support<span class="error">*</span>',
'sep2' => '<strong>PHP settings:</strong>',
- 'memory_limit' => "- ini_set('memory_limit', ...) works (optional)",
- 'display_errors' => "- ini_set('display_errors', ...) works (optional)",
- 'error_reporting' => "- error_reporting(...) works (optional)",
- 'date.timezone' => "- ini_get('date.timezone') - timezone set (required)",
- 'variables_order' => "- ini_get('variables_order') - contains \"GPC\" string",
- 'output_buffering' => "- ini_get('output_buffering') > 0 - works (required)",
+ 'memory_limit' => "- Memory requirements changing on the fly",
+ 'display_errors' => "- Prevent script errors in production environment",
+ 'error_reporting' => "- Change error detalization level",
+ 'date.timezone' => "- Web server timezone is explicitly set<span class=\"error\">*</span>",
+ 'variables_order' => '- Needed super-global arrays registered',
+ 'output_buffering' => "- Script output buffering enabled<span class=\"error\">*</span>",
);
$output = sprintf($heading_tpl, '<strong>Server-side requirements</strong>');
Index: install/steps_db.xml
===================================================================
--- install/steps_db.xml (revision 15569)
+++ install/steps_db.xml (working copy)
@@ -219,6 +219,112 @@
For example, if you enter "inp_" into the prefix field, the table named Categories will be named inp_Categories.</p>]]>
</step>
<step name="sys_requirements" title="System Requirements Check">
- <![CDATA[The <i>System Requirements Check</i> option should be used to ensure proper system behavior in the current environment.]]>
+ <![CDATA[
+ <p>The <i>System Requirements Check</i> option should be used to ensure proper system behavior in the current environment.</p>
+ <p>
+ <b>PHP version 5.2.0 or above<span class="error">*</span></b><br/>
+ Use this PHP version or better to ensure normal website operation on every day basis.
+ </p>
+ <p>
+ <b>URL rewriting support</b><br/>
+ Allows to build nice looking SEO urls without specifying "/index.php" in each of them.
+ </p>
+ <p>
+ <b>Java template compression</b><br/>
+ When Java is installed on web server, then it's possible to use <a href="http://developer.yahoo.com/yui/compressor/" target="_blank">YUI Compressor</a>
+ to minify HTML, CSS and JavaScript output of website. This allows to make websites, which opens even faster, then before.
+ </p>
+ <p>
+ <b>Memory caching support</b><br/>
+ When available use <a href="http://memcached.org/" target="_blank">Memcached</a> memory object caching system for data caching.
+ Will severely improve website performance under heavy load and page loading speed in general.
+ </p>
+ <p>
+ <b>Accessing remote resources (via cURL)</b><br/>
+ Allows to perform data retrieval from other websites (e.g. rss feeds) in background. Data retrieval internally is done
+ using <a href="http://curl.haxx.se/" target="_blank">cURL</a> library, that must be installed on web server.
+ </p>
+ <p>
+ <b>XML document processing (via SimpleXML)<span class="error">*</span></b><br/>
+ In-Portal uses XML files to store module/theme meta data. This
+ <a href="http://www.php.net/manual/en/book.simplexml.php" target="_blank">library</a> is used keep In-Portal
+ code clean as fast even, when processing XML files.
+ </p>
+ <p>
+ <b>Standard PHP Library (SPL)<span class="error">*</span></b><br/>
+ Usage of <a href="http://www.php.net/manual/en/book.spl.php" target="_blank">this library</a> guarantees memory
+ efficient way to manage files and data structures across In-Portal.
+ </p>
+ <p>
+ <b>TrueType font support (via Freetype)<span class="error">*</span></b><br/>
+ This library allows to use TrueType fonts inside produced images. In particular it's used for Captcha code generation.
+ </p>
+ <p>
+ <b>GD Graphics Library 1.8 or above<span class="error">*</span></b><br/>
+ <a href="http://www.boutell.com/gd/" target="_blank">This library</a> is used to perform various manipulations (e.g. resize, crop, etc.)
+ on user-uploaded images.
+ </p>
+ <p>
+ <b>JPEG images support<span class="error">*</span></b><br/>
+ Support image manipulations on user-uploaded images *.jpg and *.jpeg file extensions.
+ </p>
+ <p>
+ <b>Database connectivity (via MySQL)<span class="error">*</span></b><br/>
+ In-Portal uses MySQL database as it's persistent data storage.
+ </p>
+ <p>
+ <b>JSON processing support<span class="error">*</span></b><br/>
+ <a href="http://en.wikipedia.org/wiki/JSON" target="_blank">JSON</a> data format is used to implement AJAX
+ approach and perform complete page reload only, when necessary.
+ </p>
+ <p>
+ <b>Memory requirements changing on the fly</b><br/>
+ In-Portal requires at least 16 megabytes of memory to operate normally. However some resource consuming
+ operations (like link validation) might consume more memory, then usual. To ensure, that such operations
+ never fail In-Portal changes maximally allowed memory limit on the fly. See
+ <a href="http://www.php.net/manual/en/ini.core.php#ini.memory-limit" target="_blank">memory_limit</a> setting
+ for more info.
+ </p>
+ <p>
+ <b>Prevent script errors in production environment</b><br/>
+ Prevents any errors to be shown on website, that might happen due incorrect web server configuration. See
+ <a href="http://www.php.net/manual/ru/errorfunc.configuration.php#ini.display-errors" target="_blank">display_errors</a> setting
+ for more info.
+ </p>
+ <p>
+ <b>Change error detalization level</b><br/>
+ Ensures, that all error types are shown in development environment and none in production environment. See
+ <a href="http://www.php.net/manual/ru/function.error-reporting.php" target="_blank">error_reporting</a> setting
+ for more info.
+ </p>
+ <p>
+ <b>Web server timezone is explicitly set<span class="error">*</span></b><br/>
+ Web server timezone must be set explicitly to ensure correct date/time calculations and display across the website.
+ See <a href="http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone" target="_blank">date.timezone</a>
+ setting for more info.
+ </p>
+ <p>
+ <b>Needed super-global arrays registered</b><br/>
+ Internally In-Portal relies on super-global array (e.g. $_SERVER, $_POST, etc.) presense inside a script. To make that happen
+ <a href="http://www.php.net/manual/en/ini.core.php#ini.variables-order" target="_blank">variables_order</a> setting must contain
+ following letters: "G", "P", "C", "S".
+ </p>
+ <p>
+ <b>Script output buffering enabled<span class="error">*</span></b><br/>
+ Output buffering is needed to allow usage of GZIP compression of page output. See
+ <a href="http://www.php.net/manual/en/outcontrol.configuration.php#ini.output-buffering" target="_blank">output_buffering</a>
+ setting for more info.
+ </p>
+ <p>
+ <b>Cookies enabled</b><br/>
+ However In-Portal can work without cookies (by adding ?sid=XXXXXXXX into each page url), but it's strongly
+ advised to use cookies-enabled web browser for better user expirience.
+ </p>
+ <p>
+ <b>JavaScript enabled</b><br/>
+ JavaScript might not be required on Front-End (depends on used theme), but it must be enabled in web browser
+ during installation and Admin Console usage.
+ </p>
+ ]]>
</step>
</steps>
\ No newline at end of file