本地安装magento笔记,记下来以备后用
折腾了两天,觉得挺不易的,记下来以备后用
Mysql安装(略).
Apache及PHP安装过程(略),主要配置文件如下:
Apache安装在D:\Apache2.2
Php安装在D:\php (php的版本下载,最让人头疼,下载的时候在官网下载面页左侧(Which version do I choose?)看看你要的是哪个版权本,我是在windows上的用Apache2.2,所以用v6的Thread Safe版本)
一、
======httpd.conf=====================
最后添加以下三行
LoadModule php5_module D:/PHP/php5apache2_2.dll
PHPIniDir "D:/PHP" //设置php.ini所在目录
AddType application/x-httpd-php .php
查找DirectoryIndex index.html这行,修改为
DirectoryIndex index.html index.php
二、到magento官方下载magento-check.php,检测有哪个扩展没有开启,在php.ini里开启,并复制php_curl.dll libeay32.dll ssleay32.dll 复制到 system32下,还不行,你可能需要将涉及到的DLL文件全部复制过去
======php.ini=====================
extension_dir = "D:\php\ext" //去掉行首的分号,设置php扩展模块目录
max_execution_time = 300 //时间加长
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mcrypt.dll
extension=php_mysql.dll
extension=php_pdo.dll
extension=php_pdo_mysql.dll //这里根据检测的文件看需要看启哪些扩展
三、下载个phpmyadmin吧,好管理数据库,先建立一个商城数据库在后面安装的时候输入进去
四、安装的过程中会出些错误,修改商城errors目录下的local.xml.sample为local.xml
会显示引发错误的原因,根据提示排除.
五、报以下的错误
aError in file: "*******\app\code\core\Mage\SalesRule\sql\salesrule_setup\upgrade-1.6.0.0-1.6.0.1.php" - SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'period'
修改方法:
1、打开数据库管理工具,比如phpMyAdmin
2、打开数据库找到表coupon_aggregated的表结构
3、更改period字段,把默认的值设置为“0000-00-00”,保存退出。
4、再次安装就可以了。
也可以直接执行 mysql> alter table coupon_aggregated change period period DATE not null DEFAULT '0000-00-00';
六、当购物车中添加了两个以上的商品时,浏览商品详情页面即出现Subquery returns more than 1 row错误的解决办法,是由于调用了 upsell_products 这个鸟东西的原因...
但根本原因是框架太垃圾了,并不是如magento他们说的mysql版本的问题
修改:
找到: \lib\Zend\Db\Adapter\Abstract.php
找到 function: public function quote($value, $type = null)
>>>>>>>>>>>
if ($value instanceof Zend_Db_Select) {
return '(' . $value->assemble() . ')';
}
替换为:
>>>>>>>>>>
if ($value instanceof Zend_Db_Select) {
return $value->assemble();
}
七、自动SKU Open /app/design/adminhtml/default/default/template/catalog/product/edit.phtmland add the following snippet to the bottom of the file:
setTimeout("usa()","5000")
var a= new Date();
var y=a.getYear();
var m=a.getMonth()+1;
var d=a.getDate();
var h=a.getHours();
var mi=a.getMinutes();
var s=a.getSeconds();
function usa(){
if(document.getElementById('sku').value == ""){
document.getElementById('sku').value = 'A'+y+m+d+h+mi+s;
}
}
基本就是这些。