让ecshop在本机中测试运行~

2016-07-07 15:24 来源:www.chinab4c.com 作者:ecshop专家

让ecshop在本机上运行可以避免很多后续维护的成本,先在本机上测试好,编辑完自己的风格,再上传到虚拟主机或空间

一、 下载软件。
1. 下载apache_2.0.55-win32-x86-no_ssl.msi,右键用迅雷点击此处下载(直接点击不行)。
2. 下载php-5.2.5-win32.zip,点击此处下载。
3. 下载mysql-essential-5.0.45-win32.msi,点击此处下载。
4. 下载phpMyAdmin-QA_2_11-latest.7z,可到其官网上下载最新版本。网址:http://www.phpmyadmin.net/home_page/index.php
5. 下载ZendOptimizer-3.3.0a-Windows-i386.exe,点击此处下载。如果链接失效,请到zend的官网下载,网址 http://www.zend.com/en/products/guard/optimizer/,点击右侧download即可(不过下载须先注册成为官网的用户)。关于如何安装配置测试zendoptimizer在我的另一篇文章中介绍了(网址:http://blog.chinaunix.net/u/32475/showart_428503.html),这里不再赘述。

二、安装配置

1. 首先安装apache

双击安装即可。假设我安装到了 c:\apache2 目录下。安装完毕后在浏览器中输入http://localhost 或者http://127.0.0.1 如果不出现错误界面既是安装成功。
apache默认使用80端口,由于未知原因我的apache和80端口冲突,我手动将其改为了 8080端口,方法如下:
使用ultrleEdit-32打开c:\apache2\conf\httpd.conf文件(此为 apache的配置文件),用ctrl+f找到"Listen 80",将其改为“Listen 8080”即可。但以后要浏览器中就得这样打了:
http://localhost:8080
或者:
http://127.0.0.1:8080

你的站点文件默认是在c:\apache2\htdocs下的,这就是你网站的根目录,你可以更改。方法如下:
在 c:\apache2 新建目录www,然后在httpd.conf找到“DocumentRoot "c:/apache2/htdocs"改成DocumentRoot "c:/apache2/www",然后找到它下面不远处的“<Directory "./">”,将其改为<Directory "c:/apache2/www">即可。

修改目录的默认首页:
在httpd.conf中找到,DirectoryIndex 后面写上你想设置为首页的文件名,如:index.html index.htm index.php等

要使这些配置生效需要重新启动apache

2. 安装配置php5

解压缩PHP压缩包到C:\php5(这个路径可以随意,不过以下要是用到这个路径,请相应的修改)。
  把C:\php5下的php.ini-dist改名为php.ini后再复制到C:\windows 然后修改几个地方:
extension_dir = "C:\php5\ext" (指定动态连接库的目录,php5和php4不同的地方就是它的动态连接库目录变了,这在它的文档结构里有详细的说明)
然后把下面几句前面的分号去掉
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_gd2.dll
;extension=php_imap.dll
;extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mysql.dll
即改为:
extension=php_dba.dll
extension=php_dbase.dll
extension=php_gd2.dll
extension=php_imap.dll
extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_mysql.dll
刚才修改 extension_dir = "C:\php5\ext"就是为了使php能正确的找到这些模块。

接下来一点很重要的就是把C:\php5目录下的 libmysql.dll php5ts.dllphp5apache2.dll libmcrypt.dll 和C:\php5\ext目录下的 php_mysql.dll php_mysqli.dll 复制到windows/system32下,如果不这样做,mysql动态连接库就无法正常加载。
不要把 php_mysql.dll 和 php_mssql.dll 混淆
如果没有加载 php_gd2.dllphp将不能处理图像.没有加载php_mysql.dll php将不支持mysql函数库
php_mbstring.dll 在后面使用phpmyadmin时支持宽字符


接下来修改了一些文件上传以及内存使用最大限制:(改不改都行)
memory_limit = 20M
post_max_size = 20M
upload_max_filesize = 20M


修改过php.ini以后也要重新启动apache

3.Apache整合 PHP

a.Apache中模块化安装php


在 c:\apache2\conf\httpd.conf中查找 # LoadModule foo_module modules/mod_foo.so
在此行后加入一行
LoadModule php5_module C:/php5/php5apache2.dll
PHPIniDir "C:/php5"

也可以将C:/php5/php5apache2.dll的 php5apache2.dll文件拷贝到c:\apache2\modules目录下,这样上面可改为:
LoadModule php5_module modules/php5apache2.dll PHPIniDir "C:/php5"

(其中C:/php5是你安装php的相应路径.注意不要把php5apache2_2.dll,php5apache2.dll和php5apache.dll混淆.php5apache.dll只适用于apache 版本1的.PHP5压缩包里的php5apache2.dll只适用于apache2.0.*版本,因为我的apache版本是2.0.55,所以我用的是php5apache2.dll,如果是2.2.*以上版本,必须使用php5apache2_2.dll.否则就可能会出现
"Cannot load C:/php/php5apache2.dll into server: The specified module could not be found."或者:"The requested operation has failed"的情况.关于这个问题的解决方法可以参考
http://www.phpfans.net/bbs/viewt ... &extra=page%3D1不过 php5apache2_2.dll出来之后也就没有多少参考价值了)b .
查找 AddType application/x-gzip .gz .tgz
在此行后加入一行
AddType application/x-httpd-php .php
这样apache就可以解释php文件了
也可以再加上如下两行:
AddType application/x-httpd-php .html
AddType application/x-httpd-php .htm
这样apache就可以解释php文件了,就是说包含php代码的 html、htm文件也可以被apache解析了。
到这里配置基本完成了
写一个test.php放到 c:\apache2\www下测试一下,代码为:
<?php
phpinfo();
?>

看到正确的页面即是整合成功。如下:





回答:


4. 安装mysql
(1) 点击MySQL安装包

(2) 默认是Typical,如果想修改安装路径的话也可以选择custom.
注意:安装mysql的路径中,不能含有中文!


(3)点击intall开始安装

(4)跳过注册

(5)是否现在就配置 MySQL.也可以之后在开始菜单的configuration wizard 进行配置.
这里是现在进行配置


(6) 选择Detailed Configuration(详细设置),点Next继续

(7)下面这个选项是选择mysql应用于何种类型,第一种是开发服务器,
将只用尽量少的内存,第二种是普通WEB服务器,将使用中等数量内存,
最后一种是这台服务器上面只运行MySQL数据库,将占用全部的内存.
用户可根据自己的需求,选择选项.这里只选择开发服务器,点Next继续


(8)下面是选择数据库用途,第一种是多功能用途,将把数据库优化成很好的innodb(事务)存储类型和高效率的myisam(非事务)存储类型,第二种是只用于事务处理类型,最好的优化innodb,但同时也支持myisam,只有myisam才支持全文索引最后一种是简单的网络开发,适合于简单的应用,只有不支持事务的myisam类型是被支持的.一般选择第一种多功能的.

(9)下面是选择InnodDB的数据存放位置,一般默认好了,不需要改动
(如果要修改数据保存路径,也可用在安装后修改my.ini的datadir的值)


(10)下面是选择MySQL允许的最大连接数,第一种是最大20个连接并发数,
第二种是最大500个并发连接数,最后 一种是自定义,你可以根据自己的需要选择.
这里选择第一个


(11)下面是是否运行网络链接.这里选择复选框.数据库监听的端口,一般默认是3306,
如果改成其他端口,以后连接数据库的时候都要记住修改的端口,否则不能连接mysql数据库,
比较麻烦,这里不做修改,用mysq的默认端口:3306


(12)这一步设置mysql的默认编码,默认是latin1,也是标准的编码.第二种是UTF8,第三种是手动设置.编码是版本4.1以上引入的.如果要用原来数据库的数据,最好能确定原来数据库用的是什么编码,如果这里设置的编码和原来数据库数据的编码不一致,在使用的时候可能会出现乱码.

这个比较重要,就是对 mysql默认数据库语言编码进行设置,第一个是西文编码,第二个是多字节的通用utf8编码,都不是我们通用的编码,这里选择第三个,然后在 Character Set那里选择或填入“gbk”,当然也可以用“gb2312”,区别就是gbk的字库容量大,包括了gb2312的所有汉字,并且加上了繁体字、和其它乱七八糟的字——使用mysql的时候,在执行数据操作命令之前运行一次“SET NAMES GBK;”(运行一次就行了,GBK可以替换为其它值,视这里的设置而定),就可以正常的使用汉字(或其它文字)了,否则不能正常显示汉字。按 “Next”继续。

(13)这一步是是否要把mysql设置成windows的服务,一般选择设成服务,
这样以后就可以通过服务中启动和关闭mysql数据库了.推荐:下面的复选框也勾选上,
这样,在cmd模式下,不必非到mysql的bin目录下执行命令.在命令行下咨询可以执行文件


(14)这一步是设置mysql的超级用户密码,这个超级用户非常重要,
对mysql拥有全部的权限,请设置好并牢记超级用户的密码,
下面有个复选框是表示创建一个匿名账号,这会使数据库系统不安全.
如果有这个需求,也请勾选.


(15) 点击 Execute进行安装

(16) 点击finish完成安装


(17) 我们可以开始使用mysql了,首先启动mysql服务,然后在命令行下打:
C:>php -u root -p
输入密码出现这个界面说明mysql已经安装好了
可能出现的问题:
如果在第15步,出现下图提示

是因为你之前装过mysql.卸载时还保留了一些配置文件.

点击retry看看是否可以通过。否则点击 cancel 退出.然后点击开始菜单的 MySQL Server Instance Config Wizard
重新配置 mysql

重复之前的操作.第14步将会出现界面是像下面这样


有三个输入密码的地方,你原来装过 mysql.
你在第一个文本框输入原来root的密码,后面两个文本框输入root的新密码就可以了

如果还是不行那就重装一次MySQL。
重装注意事项:最好删除原来的所有文件,必要的话,可以清一下注册表,
如果你机器上没有其它mysql相关的程序.而且一定记得不要保留原有的my.ini文件.
还有就是删除原来安装路径下的文件,并删除数据目录下面的ibdata1文件.

5. 配置php并关联 MySQL







a. 打开php.ini设置扩展路径
查找 extension_dir 有这么一行
extension_dir = "./"
将此行改成
extension_dir = "C:\php5\ext"
其中C:\php5是你安装php的路径.路径不正确将无法加载dll
(注意:有些php版本是 ;extension_dir = "./" 要把前面的分号去掉)

b. 分别查找
;extension=php_mbstring.dll
;extension=php_gd2.dll
;extension=php_mysql.dll
把上面3项前面的分号去掉,这样apache启动时就可以加载这些dll了
注意不要把 ;extension=php_mysql.dl和 ;extension=php_mssql.dl 混淆
当然前面我们也把这些dll复制到system32下了.(大家在安装的过程中都注意到如何把一些dll加载入来了.
以后要加载一些dll,比如说php_mysqli.dll,也就懂得怎么加载了)

c. 设置会话保存路径
查找session.save_path 有这么一行
;session.save_path = "N;/path"
在此行后加入一行(注意是加入一行,不是加到后面)
session.save_path = "C:\WINDOWS\Temp"
保存到你的临时目录下,这里完全可以保存到windows临时目录Temp下
也可以新建 c:\php5\session,然后将其改为:
session.save_path = "C:\php5\session"

d. 还有比较值得注意的是 short_open_tag .有一些php版本默认是Off的.
也就是说 php不能使用短标记如 <? ?> 必须使用<?php ?>
由于短标记使用方便,并且很多程序也是用短短标记来写,如discuz等
如果不把 short_open_tag 改成On将出现的症状将很难判断是上面原因,这里建议修改
查找
short_open_tag = Off
改为
short_open_tag = On

e. 是否显示错误 display_errors
出于安全性考虑,display_errors 有些版本也默认为 Off.
就是说在调试时,如果php代码有误,就只出现一个空白页.而不会显示出错原因和出错行数.
这样调试起来将非常不便,建议根据自己需要修改
查找
display_errors = Off(注意不是 ; - display_errors =Off[Security])
改成
display_errors = On

f. register_globals
出于安全性考虑它默认也是Off
当 register_globals=Off的时候,下一个程序接收的时候应该用$_POST['user_name'] 和$_POST['user_pass'])
当register_globals=On的时候,下一个程序可以直接使用$user_name 和$user_pass来接受值.
更详细的说明请参考
http://www.phpfans.net/bbs/archiver/?tid-234.htm
建议根据自己需要修改 .这里不建议修改,毕竟存在安全隐患.

g. php5时差问题
<?php echo date("Y-m-d H:i:s");?>时间相差八小时
为什么呢?PHP5系列版本新增了时区设置,默认为格林威治时间,与中国所在的东8区正好相差8个小时
查找date.timezone有这么一行
;date.timezone =
将;去掉,改成
date.timezone = PRC
其中PRC:People's Republic of China 中华人民共和国,
更详细解决方法请参考
http://www.phpfans.net/bbs/archiver/?tid-60.html

关于文件上传要注意的配置请参考
http://www.phpfans.net/bbs/viewthread.php?tid=1663&extra=page%3D1

对c:\WINDOWS下的php.ini修改好后,将其拷贝至php的安装目录既c:\php5中,将原来的php.ini覆盖掉才行,我也不知道为什么这么做,但若不这么做的话,运行下面的test_mysql.php时总是报一个如下的错:
Fatal error: Call to undefined function: mysql_connect()
有方家知道为什么这样做的话请发邮件告诉我 谢谢 please mail to : glq2000@126.com

至此配置完毕,写一个文件test_mysql.php测试一下
首先应应建立一个数据库,开启mysql服务,打开命令行输入:
c:>mysql -u root -p
回车后出现:
password:
打入你的密码后回车,如下图所示:


然后打入
mysql>use test;
后回车,代表使用test数据库;
然后在mysql>后打入下面的建表语句后回车。建立一个employees表。

CREATE TABLE employees ( employee_id mediumintNOT NULL AUTO_INCREMENT,
first varchar(20),
last varchar(20),
address varchar(20),
position varchar(20),primary key (employee_id));

然后插入一条记录:
mysql>insert into employees values(0,'耿','乐群','哈尔滨','学生');
回车后再插入一条数据:
mysql>insert into employees (first,last,address,position) values('tom','hax','USA','MOVIE STAR');
后回车,查看一下数据:
mysql>select * from employees;
test_mysql.php代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
<head>
<meta content="all" name="robots" />
<meta http-equiv="Content-Language" content="zh-CN" />
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<head>
<title>mysql connection test</title>
</head>
<body>

<?
//这里替换为你自己的用户名与密码
$db = mysql_connect("127.0.0.1", "root","glq2214545");

mysql_select_db("test",$db);
//目的是正确显示中文,这就是前面安装mysql时编码方式选gbk的原因
mysql_query("set names gbk");
$result = mysql_query("SELECT * FROM employees",$db);
printf("First Name: %s
\n", mysql_result($result,0,"first"));
echo '<br/>';
printf("Last Name: %s
\n", mysql_result($result,0,"last"));
echo '<br/>';
printf("Address: %s yy
\n", mysql_result($result,0,"address"));
echo '<br/>';
printf("Position: %s
\n", mysql_result($result,0,"position"));
echo '<br/>';
echo '<br/>';
echo 'It is scuessful to connect to mysql database. Congratulations!';
?>
</body>
<html>

访问 http://localhost/test_mysql.php 若显示为:

First Name: 耿
Last Name: 乐群
Address: 哈尔滨
Position: 学生

It is scuessful to connect to mysql database. Congratulations!


则恭喜你!php已经能连上mysql,并且中文也能正确显示了!

6. 安装配置 phpMyAdmin


下载得到 phpMyAdmin(我下的是phpMyAdmin-2.11.2.2-all-languages.zip),将其解压到 你网站根目录下并重命名为phpMyAdmin,(假设我的站点根目录在e:\apache2\www目录下,则将解压出的phpMyAdmin放到e: \apache2\www 中即可)
找到并打开 libraries/config.default.php (有些版本是当前目录的 config.inc.php或者 config.defaut.php),打开后发现其前面的注释说不要修改此文件,修改config.inc.php会有同样的效果,截图如下:


由划红线处可知,建议不要修改此文件,要修改的就修改 config.inc.php。config.inc.php在e:\apache2\www\phpMyAdmin下。打开 config.inc.php
做以下修改:

1 查找 i++,在其下加上如下两行
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password']= ''; //use your password here

把你的mysql密码填到$cfg['Servers'][$i]['password']= ''; 的单引号里边

2 搜索 $cfg['PmaAbsoluteUri'],将其后面单引号里的值设置为 phpMyAdmin 目录路径,如:http://localhost/phpMyAdmin/ ; (如果你更改了apache的端口为8080,则此处应写:http://localhost:8080/phpMyAdmin

3 搜索 $cfg['DefaultLang'],将其后面单引号里的值设置为 zh-gb2312 ;
若搜不到的话,就自己手动加上这一行。

下面这项根据自己需要的编码修改(如果对数据库编码不是很熟悉的建议不要修改)
4 搜索 $cfg['DefaultCharset'],将其设置为 自己所要的编码.

打开浏览器,输入:http://localhost/phpMyAdmin/,Apache 和 MySQL 均已启动,
如果出现如下页面则phpmyadmin安装完成并可以使用了



教程很详细哦

无语我原先以为这个教程ecshop会早有的,难道你们都是上传空间再改的吗?
这样相当麻烦 推荐用xampp做本地服务器,不用自己去配置php+apache+mysql,集成环境已经配置好了,其他的看上面的教程吧悲剧

菜鸟问个小问题:
ECshop的本地安装测试要那么麻烦吗?
那ECshoppxp是做什么用的呀?