实在有太多的人来问如何安装magento ,或者安装时出现了各种问题,有的甚至搞了几天也没能安装上去。我自己估计安装了不下100个的magento 站点,所以在这边总结一下在安装magento 过程中可能碰到的问题,最后给出几种在不同的条件下安装magento 的方法。
通常大家选择的安装方法是使用浏览器来安装,安装过程其实也非常简单,只要有一个数据库和相关账户就可以按照安装向导的提示一步一步的进行,通常可以能会碰到的问题有:
magento 要求至少php5.2以上的版本。
通常PHP的安装有两种方式,一是以apache 的模块方式,另一是以cgi方式。那magento 在cgi方式下安装要稍微复杂一点。
如果要在iis下的PHP安装magento ,我试过了,是无法进行的。虽然打硬要在这下面安装也是可以的,把magento 中对环境检测的代码注释掉好像可以绕过,不过没有多大的意义。
经常碰到的主要是服务器的PHP配置不支持pdo_mysql扩展。
magento 中有采用事务,等只有在innodb中才有的特性。虽然有人做过测试也可以不在innodb存储引擎下使用,不过好像会有N多问题。
诸如这样的问题,magento 有提供一个脚本来检测的你服务器环境是否适合安装magento :
extension_check(array( 'curl', 'dom', 'gd', 'hash', 'iconv', 'mcrypt', 'pcre', 'pdo', 'pdo_mysql', 'simplexml' )); function extension_check($extensions) { $fail = ''; $pass = ''; if(version_compare(phpversion(), '5.2.0', '<')) { $fail .= '<li>You need<b> PHP 5.2.0</b> (or greater)</li>'; } else { $pass .='<li>You have<b> PHP 5.2.0</b> (or greater)</li>'; } if(!ini_get('safe_mode')) { $pass .='<li>Safe Mode is <b>off</b></li>'; preg_match('/[0-9]/.[0-9]+/.[0-9]+/', shell_exec('mysql -V'), $version); if(version_compare($version[0], '4.1.20', '<')) { $fail .= '<li>You need<b> MySQL 4.1.20</b> (or greater)</li>'; } else { $pass .='<li>You have<b> MySQL 4.1.20</b> (or greater)</li>'; } } else { $fail .= '<li>Safe Mode is <b>on</b></li>'; } foreach($extensions as $extension) { if(!extension_loaded($extension)) { $fail .= '<li> You are missing the <b>'.$extension.'</b> extension</li>'; } else{ $pass .= '<li>You have the <b>'.$extension.'</b> extension</li>'; } } if($fail) { echo '<p><b>Your server does not meet the following requirements in order to install Magento.</b>'; echo '<br>The following requirements failed, please contact your hosting provider in order to receive assistance with meeting the system requirements for Magento:'; echo '<ul>'.$fail.'</ul></p>'; echo 'The following requirements were successfully met:'; echo '<ul>'.$pass.'</ul>'; } else { echo '<p><b>Congratulations!</b> Your server meets the requirements for Magento.</p>'; echo '<ul>'.$pass.'</ul>'; } }
如果检测结果有不符合的,请按照检测的提示修改相应的配置。php相关配置可以在php.ini中修改,如果你不知道php.ini文件在哪里,可以通过phpinfo的帮助来查找。如果你是在共享空间中没有权限修改可以联系你的提供商。不过现在一般的提供商都有提供基于目录,或者基于用户的php配置文件,每个目录或用户账户都可以有自己的php配置文件,你可以自己修改而不需要去找管理员,比如Host Moster 主机就是这样的。如果你的共享空间不是一个站点有一个是自己的php.ini,那么如果你的空间支持使用.htaccess的话也是可以进行大部分的 相关php配置。