Windows7下手动搭建Apache+PHP+MySQL方法记录

» 2011-01-03 122条评论

前言:本地调试 WordPress 主题一直是使用 XAMPP 搭建本地环境,但不知道什么原因,在比较多调用的主题(如CMS类)计算机会出现卡顿现象,查看进程是 Apache 和 MySQL 这2个进程 CPU 占用其高,具体原因不知,主机环境配置我很少折腾,不懂,或许是我主机太老的问题(单核CPU)。

决定:在忍受几个月的缓慢后,决定手动搭建 Apache+PHP+MySQL 试试(也听 jiucool 说他自己也是手动搭建,相当快),经过繁琐的步骤搭建成功后,发觉貌似是比较快点,起码不会卡顿。当然,也许是 RPWT,或者是错觉。不管是啥,用着感觉 OK 就行,此篇文章是用来记录具体步骤的,原理什么的请教 Google 吧,当然你怕 Google 被逼抽风,你可以用百度搜知道的不知道的还是找 Google 吧。

原文参考:http://www.leapsoul.cn/?p=695

测试环境:Windows 7(其他win版本没测试,大体相同)

一、去官方下载需要的代码包、软件包

1. Apache:下载地址,我下载的是 httpd-2.2.17-win32-x86-openssl-0.9.8o.msi

2. PHP:下载地址,我下载的是 php-5.3.4-Win32-VC6-x86.zip

3. MySQL:下载地址,我下载的是 mysql-5.5.8-win32.msi

4. phpMyAdmin:下载地址,我下载的是 phpMyAdmin-3.3.8.1-all-languages.7z

二、安装、解压

1. Apache

主要配置Network Domain、Server Name、Email地址(我依次填的是localhost、localhost、邮箱随意)以及Apache服务的占用端口,默认为80端口,你可以根据需要配置在其他端口,Apache的安装目录你可以使用默认目录或根据需要自行选择安装目录(我安装到 D:\Apache)。

在完成apache服务的安装后,在游览器中输入http://localhost/,出现It’s work!字样,说明Apache服务安装成功了。

2. PHP

只要解压php-5.3.4-Win32-VC6-x86.zip并重名为文件夹为php到某个盘即可完成PHP安装(我是将其解压复制到D盘目录下 D:\php

3. MySQL

点击Mysql安装程序自动安装,在此期间你可以根据需要选择Mysql数据库的安装目录(我安装到 D:\MySQL),MySQL 安装完后会启动向导,你可以先取消,下一部的配置里有说。

三、配置

1. Apache(Apache配置文件httpd.conf在Apache安装目录下的conf文件夹里面)

(1)默认Apache服务器执行WEB主程序的目录为Apache2.2/htdocs,所以当你的WEB主程序目录变更时,我们需要修改相应的Apache配置(我改到D:\localhost\htdocs),即用文本编辑软件打开 httpd.conf

DocumentRoot "D:/Apache/htdocs"

修改为

DocumentRoot "D:/localhost/htdocs"

再把

<Directory "D:/Apache/htdocs">

修改为

<Directory "D:/localhost/htdocs">

(2)修改具体的index文件先后顺序,由于配置了PHP功能,当然需要index.php优先执行

找到

DirectoryIndex index.html

修改为

DirectoryIndex index.php index.html

(3)使Apache支持PHP

找到

#LoadModule vhost_alias_module modules/mod_vhost_alias.so

在其下面增加如下内容(注意php的安装路径)

LoadModule php5_module "d:/php/php5apache2_2.dll"
PHPIniDir "d:/php"
AddType application/x-httpd-php .php .html .htm

说明:我们在PHP目录下可以看到多个php5apache的DLL文件,由于我们使用的是Apache2.2.17,所以我们当然需要使用php5apache2_2.dll,接着指定PHP的安装目录以及执行的程序扩展名。

2. PHP(配置文件php.ini在PHP安装目录下)

(1)把php.ini-development改名为php.ini,然后用文本编辑器修改php.ini,接下来的步骤都是在php.ini进行的。

(2)找到

; On windows:
; extension_dir = "ext"

修改为

; On windows:
extension_dir = "D:/php/ext"

表示指定PHP扩展包的具体目录,以便调用相应的DLL文件。

(3)由于默认PHP并不支持自动连接Mysql,需开启相应的扩展库功能,比如php_mysql.dll等,即将

;extension=php_curl.dll
;extension=php_gd2.dll
;extension=php_mbstring.dll
;extension=php_mysql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_odbc.dll
;extension=php_xmlrpc.dll

去掉其前面的英文分号(;),如下

extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_odbc.dll
extension=php_xmlrpc.dll

(4)配置PHP的Session功能

在使用session功能时,我们必须配置session文件在服务器上的保存目录,否则无法使用session,我们需要在Windows 7上新建一个可读写的目录文件夹,此目录最好独立于WEB主程序目录之外,此处我在D:\localhost目录上建立了phpsessiontmp目录,然后在 php.ini配置文件中找到

;session.save_path = "/tmp"

修改为

session.save_path = "D:/localhost/phpsessiontmp"

(5)配置PHP的文件上传功能

同session一样,在使用PHP文件上传功能时,我们必须要指定一个临时文件夹以完成文件上传功能,否则文件上传功能会失败,我们仍然需要在 Windows 7上建立一个可读写的目录文件夹,此处我在D:\localhost目录上建立了phpfileuploadtmp目录,然后在php.ini配置文件中找到

;upload_tmp_dir =

修改为

upload_tmp_dir = "D:/localhost/phpfileuploadtmp"

(6)修改date.timezone,否则在执行phpinfo时date部分会报错:Warning: phpinfo() [function.phpinfo]…

找到

;date.timezone =

修改为

date.timezone = Asia/Shanghai

3. MySQL

点击开始菜单下Mysql Server5.5菜单中的Mysql Server Instance Config Wizard,完成Mysql的配置向导。

(1)点击 Next> 后出现3个选项:选择Mysql服务器的类型
Developer Machine
Server Machine
Dedicated MySQL Machine
我选第2个“Server Machine”

(2)然后又是3个选项:Mysql数据库用途
Multifunctional Database
Transactional Database Only
Non-Transactional Database Only
我选第1个“Multifunctional Database”

(3)选择Mysql数据库的并发连接数
Decision Support (DSS)/OLAP:最大20个连接并发数
Online Transaction Processing(OLTP):最大500个并发连接数
Manual Setting:自定义
我选自定义,设置为50

(4)选择Mysql服务的端口号,一般默认即可

(5)选择Mysql数据库的字符集(推荐使用UTF8,比较通用,否则容易造成乱码。)
Standard Character Set
Best Support For Multilingualism
Manual Selected Default Character Set / Collation
我选“Manual Selected Default Character Set / Collation”,然后在 Character Set 选择 utf8

(6)设置Mysql为Windows服务
在这里考虑开机速度的问题,我将自动登录Mysql服务取消了,一般你可以选择此选项,如果没有选,你可以使用net start mysql启动Mysql服务(停止就是net stop mysql)。
我的选择是“Install AS Windows Service”和“Include Bin Directory in Windows PATH”勾选,“Launch the MySQL Server automatically”去掉勾选

(7)设置Mysql数据库root用户的密码

(8)执行Mysql服务配置选项

Mysql数据库的配置文件保存在D:\MySQL\my.ini,如果今后有什么变动,你可以修改此文件。

四、测试

0. 重新启动 Apache(系统托盘点击 Apache 图标》Apache 2.2》Restart)

1. 在 D:\localhost\htdocs 建立 index.php,输入如下内容

<?php
phpinfo();
?>

然后在游览器中输入http://localhost,就可以看到PHP的具体配置页面了

2. 修改 index.php 为如下内容

<?php
$connect=mysql_connect("127.0.0.1","root","你的mysql数据库密码");
if(!$connect) echo "Mysql Connect Error!";
else echo "MySQL OK!";
mysql_close();
?>

然后在游览器中输入http://localhost/,看到:“MySQL OK!”字样就说明PHP连接Mysql就算成功了。

五、安装数据库管理 phpMyAdmin

把下载回来的 phpMyAdmin-3.3.8.1-all-languages.7z 解压到 D:\localhost\htdocs 目录下,重新命名为 phpmyadmin,这样你就可以用 http://localhost/phpmyadmin 进入 phpmyadmin 管理界面了

这样 Apache+PHP+MySQL 环境就搭建完毕,你可以正常安装 WordPress了,不过要完美还要继续看下面的第六步。

六、问题与解决

1. 在Windows 7中PHP连接Mysql时默认只能使用IP地址连接Mysql,而无法使用localhost连接Mysql,解决方法为打开C:\Windows\System32\drivers\etc下的hosts文件,将

#   127.0.0.1       localhost

前面的注释 # 去掉

2. 在使用phpmyadmin导入数据库时,如果你的数据库大于2M(phpmyadmin默认为2M),那么会导入错误,这时我们要更改配置,打开 php.ini,那么更改如下几处:

file_uploads      on(是否允许通过HTTP上传文件的开关。默认为ON即是开)
upload_tmp_dir    --(文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹,上面步骤已经设置了)
upload_max_filesize   30m(望文生意,即允许上传文件大小的最大值。默认为2M)
post_max_size   50m(指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M)
max_execution_time   300(每个PHP页面运行的最大时间值(秒),默认30秒)
max_input_time         300 (每个PHP页面接收数据所需的最大时间,默认60秒)
memory_limit          128m(每个PHP页面所吃掉的最大内存,默认8M,如果你机子的内存足够大的话,还可以设置大点儿)

3. 安装好 WordPress 后,如果你重新定义了永久链接,你会发现无效,那么继续如下操作:

打开 httpd.conf

1. 找到 LoadModule rewrite_module 去掉前面的 #
2. AllowOverride None 改为 AllowOverride All

保存后重启 Apache

七、一些个人喜好

1. 默认下 Apache 是跟随 Windows 一起启动的,你可以在“菜单》运行》msconfig》启动》找到 Apache HTTP Server去掉前面的勾
补充:这样还不够,还要去掉Apache2.2服务,右键“计算机”》“管理”》“服务和应用程序”》“服务”,找到“Apache2.2”这个名称的服务,把启动类型选为“手动”

2. 如果你安装我上面所说的去掉了 MySQL 的自动启动,老是用命令启动/关闭 MySQL 会很麻烦,那么你可以写批处理(bat)解决

新建一个文本文件,内容如下:
net start mysql
然后重新命名为 MySQL-Start.bat(注意扩展名),把这个文件放到桌面直接点击就启动 MySQL 了。

同理新建一个文本文件,内容如下:
net stop mysql
然后重新命名为 MySQL-Stop.bat(注意扩展名),把这个文件放到桌面直接点击就关闭 MySQL 了。

终于写完了,虽然部分内容来自文章开头的“原文参考”,而且我还没贴图,都感觉很累,教程什么的最累人了。

另外:有些步骤我是凭记忆敲的,不知道有没有错误,如果有朋友根据我这篇文章折腾,有什么问题在评论里提出并讨论。

zww
or
oooo

“Windows7下手动搭建Apache+PHP+MySQL方法记录”有122条评论

  1. 奚少 says:

    沙发?学习

  2. MOPVHS says:

    嘿,本地环境很方便呢~~~已经用得爱不释手~~

    可惜Windows不支持mail()...

    1. zwwooooo says:

      @MOPVHS
      哈哈,mail就算了

  3. 老K says:

    我回来了!

    1. zwwooooo says:

      @老K
      哇,你“失踪”好久了,新年快乐!

    2. 老K says:

      @zwwooooo
      整一年了吧,一言难尽,总之,我回来了。

    3. 老K says:

      @zwwooooo
      想不到你的主题越折腾越好了,我就从你这取一个,给我个discount哦!

    4. zwwooooo says:

      @老K
      QQ联系我

    5. 老K says:

      @zwwooooo
      我把QQ发到你gmail去了。

    6. zwwooooo says:

      @老K
      起码你回来鸟,哈

  4. Veezy says:

    哇 技术活。。。
    暂时还用xampp吧

    1. zwwooooo says:

      @Veezy
      xampp简单

  5. 青鸟 says:

    学习了!

  6. akasuna says:

    其实还有一个叫 WAMP 的也不错,我个人感觉比 XAMPP 要好一些。

    1. zwwooooo says:

      @akasuna
      嗯嗯,听说过,但没用过

  7. 小狼 says:

    步骤真多,考完试在折腾吧!

    1. zwwooooo says:

      @小狼
      的确很繁琐

  8. 不羡鱼 says:

    我也是一直用WAMP,很不错的说。

    1. zwwooooo says:

      @不羡鱼
      哈,这些方便

  9. Armgod says:

    64位下很多搭建php环境的傻瓜方法不管用,下次试试这个吧

    1. zwwooooo says:

      @Armgod
      没试过64位的。。。我的老CPU

  10. 竹下无为梦 says:

    我还是用EASYPHP

  11. 我就是过来支持下,哈哈。。

    1. zwwooooo says:

      @一世年华
      大冷天的,谢谢支持

  12. JasonChao says:

    好麻烦,继续使用 XAMPP

    1. zwwooooo says:

      @JasonChao
      哈,的确是很繁琐

  13. 飞晏 says:

    用微软的web deployment搞定IIS和Apache

    1. zwwooooo says:

      @飞晏
      微软的这方面的很少用

  14. 明年回来准备装linux

    1. zwwooooo says:

      @软件盒子
      linux用来平时上网还是可以的。

  15. Max.L says:

    记得以前还没有 XAMPP 或 AppServ 时,就是手动设置,只是后来有了这些方便的东西,就忘了如何手动安装了。

    1. zwwooooo says:

      @Max.L
      哈哈,的确是,自动多了哪里还会去记手动

  16. 久酷 says:

    一次麻烦 :grin: :grin: 方便久久

  17. 子龙丶 says:

    果然是技术帝,我还是围观好了 :oops:

    1. zwwooooo says:

      @子龙丶
      这个没啥吧,CP而已

  18. 离鸣 says:

    懒得折腾,一般都用phpnow

    1. zwwooooo says:

      @离鸣
      phpnow也很简单

  19. ifenwen says:

    男的有见这么详尽的教程了啊

    1. zwwooooo says:

      @ifenwen
      虽然只是文字,但这类教程的确很累

  20. iphone says:

    做个链接把,你把我删除了啊。呜呜

    1. zwwooooo says:

      @iphone
      1.我发现是你先删除我的连接。
      2.现在停止友链了。
      3.麻烦你设置个头像吧。

回复给 JasonChao ¬
取消回复

昵称 *

网址

B em del U Link Code Quote