Installation

PHP extensions
Checking your installed PHP extensions is pretty simple: Generate a file named phpinfo.php on your computer with the following content:

Upload this file via FTP to your shop root, fire up your browser and see the output of that file: http://www.yourshop.com/phpinfo.php

If you do not need this file any more for debugging your installation issues, delete it from your server! Hackers would be glad to find this kind information!

PHP version
OXID eShop is written in script language PHP, using Object Oriented Programming (OOP). OOP was finally introduced to PHP with version 5, improved with version 5.2.

You will know whether PHP is running on your server when calling the above named file phpinfo.php: If exactly the content of the file is shown, PHP is not installed on your server at all. Turn to your provider in this case.

If you want to install OXID on a PHP4 environment, the following error comes up:  Please turn to your provider.

Although the OXID eShop front end runs fine fine on standard installations with PHP e.g. 5.0.8, expect strange behavior at your admin panel.


 * From OXID eShop version 4.6 on, the minimum required PHP version is 5.2.10.
 * From OXID eShop version 4.8/5.1 on, the minimum required PHP version is 5.3.25.

Hint : Due to bugs, we recommend to not use a few PHP versions. See: Not recommended PHP versions

LIB XML2
Please see Wikipedia for more information: http://en.wikipedia.org/wiki/Libxml2

DOM
Please see Wikipedia for more information: http://en.wikipedia.org/wiki/Document_Object_Model

JSON
Please see Wikipedia for more information: http://en.wikipedia.org/wiki/JSON

ICONV
Please see Wikipedia for more information: http://en.wikipedia.org/wiki/Iconv

Tokenizer
Please see Wikipedia for more information: http://en.wikipedia.org/wiki/Tokenizer#Tokenizer

MySQL client connector for MySQL 5
MySQL client is connector used by PHP to connect to MySQL server. eShop requires MySQL client to be at at least version 5.0.33, although higher than 4.0 is still supported.

Due to a bug in MySQL 5.0.36 and 5.0.37 and a bug in MySQL 5.0.41, the OXID eShop does not run properly with these versions. If you are using MySQL 5.0.36 or 5.0.37 or 5.0.41, update MySQL to a other version.

GDlib v2 [v1] incl. JPEG support
Please see Wikipedia for more information: http://en.wikipedia.org/wiki/GD_Graphics_Library

mbstring
PHP currently does not have native support for Unicode or multibyte strings; Unicode support will be included in PHP 6 and will allow strings as well as class, method and function names to contain non-ASCIIcharacters.

That's why the PHP extension mbstring has to be installed on the server for a proper functioning OXID eShop.

cURL
cURL - extension allows to connect and communicate to different types of servers with many different types of protocols. Used for communication with Open ID service providers, Facebook Connect and external content download in WYSIWYG editor.

BCMath
BCMath lib offers the Binary Calculator which supports numbers of any size and precision. It is used by OpenId connection library for information encryption.

SOAP
SOAP extension enables support for SOAP servers and clients. Read here for more details: http://www.php.net/manual/en/soap.installation.php

= PHP configuration =

allow_url_fopen or fsockopen to port 80
It enables PHP to download file from remote servers. In eShop this is essential for functionality based on connection to 3rd party services (such as online VAT ID check, eFire, OpenId authorisation or additional services from oxid-esales.com site).

Zend compatibility mode must be off
ze1_compatibility_mode was basically used for migration of PHP 4 applications to PHP 5. It affects the way how PHP handles objects making it more of PHP 4 way. And since objects are passed not by their handle, but full value copy if this mode is on, the data flow in eShop is changed and thus execution of it will bring unexpected results.

REQUEST_URI set
$_SERVER['REQUEST_URI'] variable stores the URI which was given in order to access this page. SEO engine uses this URI for internal processing to get information about requested page.

ini_set allowed
ini_set - sets the value of the given PHP configuration option. The configuration option will keep new value during the script's execution and will be restored at the script's ending. These parameters are affected by oxid:    session.name = 'sid'    session.use_cookies = 0    session.use_trans_sid = 0    url_rewriter.tags =     magic_quotes_runtime = 0    session.gc_maxlifetime = 36000    default_socket_timeout = 5  WYSIWYG PRO:  display_errors = false/true  memory_limit = _CACLULATED_ACCORDING_IMAGE_SIZE_  PHPMAILER library:  sendmail_from = _SENDER_EMAIL_ADDRESS_  OPENID library:  include_path = _OPENID_LIBRARY_PATH_ 

register_globals must be off
Using functionality based on register_globals directive is considered against safe coding practice. This directive is deprecated, therefore we require to keep it always turned OFF. More information could be found here: http://ca.php.net/manual/en/security.globals.php

PHP Memory limit (min. 14MB, 30MB recommended)
The minimum amount of PHP memory for running eShop properly is 14 MB. You can define amount of memory given for PHP by setting directive memory_limit in php.ini configuration file.

UTF-8 support
UTF-8 support - encoding provides better support for special chars than other character encodings. This is particulary important for multilingual eShops. If you plan to provide your eShop in many different languages, you should use UTF-8. If you just want to provide a few languages using related symbol sets (e. g. English, German, French), you don't need UTF-8.

file uploads on
This determines if file uploads are enabled in PHP. If this flag is Off, you will not be allowed to upload any files (e.g. pictures). You can set It On in php.ini configuration file.

session.auto_start must be off
Session should not be started automatically, but only started by OXID shop when it's needed. PHP setting session.auto_start must be switched off.

= Server configuration =

Zend Guard Loader/Zend Optimizer
Zend Guard Loader (before PHP 5.3.: Zend Optimizer) is required to be installed on the server for running encoded php source code. So it's mandatory for Enterprise and Professional editions eShops and is not needed for Community edition eShop.

OXID eShop Enterprise and Professional editions runs properly only with Zend Guard Loader or Zend Optimizer version 3.3.0 (and higher).

apache mod_rewrite module
It is required for SEO URLs to work as it offers different URL handling direction to one oxseo.php entry file.

Attention: System health check tests if mod_rewrite works correctly. Even if there is mod_rewrite installed, it might be broken. In that case check fails and is presented 'red'.

One reason for that often is the setting for AllowOverride in the Apache configuration. The default setting for that changed from Apache version 2.3.8 to version 2.3.9 from AllowOverride All to AllowOverride None Make sure that at least AllowOverride FileInfo is set so the rewrite rules in the .htaccess file shipped with the shop are used. See http://httpd.apache.org/docs/current/mod/core.html#allowoverride for more info on that topic.

Files &amp; Folder Permission Setup
When checking system requirements, OXID eShop script tries to chmod some directories to writable. This fails on some (restrictive) operating systems like Debian or FreeBSD.

To resolve this, set file permissions manually, using your FTP client. If you don't know what is meant by "writable" and "read-only", please turn to your server provider. The values may differ depending on your operating system and the options your hosting provider used on this machine.

Those and subdirectories must be writeable all the time :


 * /out/pictures/
 * /out/media/
 * /log/
 * /tmp/

During installation those must be writeable


 * /config.inc.php
 * /.htaccess

After installation those must be read-only


 * /config.inc.php
 * /.htaccess

and set the export dir to writeable


 * /export

If after all checking the script still mentions some faulty configuration, you can check which folder is meant with this hack:

- make a backup-copy of /core/oxsysrequirements.php

- around line 375, put in following codeline just before "return $iModStat" echo $sPathToCheck; Thanks to Zottle for sharing! http://www.oxid-esales.com/forum/showthread.php?t=9953#post59179

PHP_Bug_.2353632

 * PHP &lt; 5.2.17 Some PHP versions may have issues related to PHP bug #53632. Please check http://bugs.php.net/53632 for more detailed description and possible solution.
 * PHP &lt; 5.3.5 Some PHP versions may have issues related to PHP bug #53632. Please check http://bugs.php.net/53632 for detailed description.

PHP_Bug_.55439

 * PHP 5.3.7 PHP version has critical issue related to PHP bug #55439. Function crypt returns incorrect results for MD5 encryption. Please check http://bugs.php.net/55439 for detailed description. German users see: http://www.heise.de/security/meldung/Finger-weg-von-PHP-5-3-7-1328482.html