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. 技术大牛啊 顶死

    1. zwwooooo says:

      @中文软件资讯站
      这只是按照别人的教材折腾然后记录+些补充而已。

  2. yayagoo says:

    为什么,,,,为什么,,,,我今天正要找这方面的东西呢,,,,太及时了

    1. zwwooooo says:

      @yayagoo
      那就折腾吧

  3. Glow says:

    真不简单呵,一个一个的装。我一般都是用集成的。hoho

    1. zwwooooo says:

      @Glow
      集成的简单易用

  4. 真好 says:

    纯技术文章,先支持一下。
    现在懒得设置,用的是phpnow。

    1. zwwooooo says:

      @真好
      设置一次就ok

  5. 园子 says:

    超级详细啊
    就是没有配图
    呵呵。

    1. zwwooooo says:

      @园子
      懒的配图,不是针对超级菜鸟的

  6. SErHo says:

    折腾PHP时,我在Ubuntu下,配置环境也很方便。

    1. zwwooooo says:

      @SErHo
      linux下当然很方便

  7. 阿修 says:

    我用的EasyPHP

    1. zwwooooo says:

      @阿修
      以前使用过,easy

  8. 囧啊囧 says:

    技术文章,我从来都是用一键套件。

    1. zwwooooo says:

      @囧啊囧
      一键简单方便

  9. 优趣 says:

    额、很强悍的散装,不过配置很麻烦、现在基本都用一键安装环境!

    1. zwwooooo says:

      @优趣
      手动的确麻烦,不过试一下无妨

  10. mice says:

    哇哈哈,终于开通空间了..貌似速度跟原来差不多嘛.. :mrgreen:

    1. zwwooooo says:

      @mice
      ...我根本就没换空间,而且这速度还不行么?记得前段时间很多人都说快到离谱。

    2. mice says:

      @zwwooooo
      不是说nginx+apache了嘛..我的意思是 没看出明显的区别...速度是蛮快的-.-

    3. zwwooooo says:

      @mice
      明显的区别是php处理能力更强,你看不到502了

    4. mice says:

      @zwwooooo
      - -!你这里一直就没出过这个错误...

    5. zwwooooo says:

      @mice
      前几天一直502。。。因为我用了个php调用多的插件。。。

    6. mice says:

      @zwwooooo
      神马样的插件啊0.0 知道下 以后避免避免..

    7. zwwooooo says:

      @mice
      willin出的最新一个插件,很赞,可惜它的统计功能可能太占php资源了。

  11. wmtimes says:

    这个可以收藏下。以后可以用。我现在用的都是绿色的环境包。

    1. zwwooooo says:

      @wmtimes
      绿色款方便

  12. 猪八戒 says:

    很有价值的一个教程

  13. 老谭 says:

    额,草稿箱里面有一篇这样的文章,本来是想作为自己的笔记的,最终还是没放出来

    1. zwwooooo says:

      @老谭
      哈哈,我本来也不想写,不过博客写到这没那么多内容好写,就记录一下自己所折腾。

  14. wmtimes says:

    写篇windows2003服务器下的教程吧。我老是装不了。

    1. zwwooooo says:

      @wmtimes
      没玩过2003,找高手吧。

  15. 这么麻烦!

    不是有一键安装包吗???

    1. zwwooooo says:

      @古墓候梅
      我不是因为没有一键安装包才自己安装的。。。我文章有说

  16. 以前也是这样用的,自己配置,现在懒了,直接用Wamp包,还可以的,傻瓜化。

    1. zwwooooo says:

      @IT不倒翁
      尝试手动也是不错的

  17. Bee君 says:

    win7不能用傻瓜式的环境安装~~不爽啊~

    1. zwwooooo says:

      @Bee君
      可以啊,谁说不可以?哈哈

    2. Bee君 says:

      @zwwooooo
      不是有权限问题麽

  18. asunchou says:

    这够折腾的了,我window下直接xampp,linux下寒假学学lamp的搭建~

    1. zwwooooo says:

      @asunchou
      linux下比较快

  19. 小王子 says:

    用PHPNOW的懒人飘过,

    1. zwwooooo says:

      @小王子
      嗯嗯,自己搭建下也好,学习一下

  20. 用AppServ的路过。
    想像博主这样去折腾,怕折腾进去了,出不来
    现在能用就先用着吧

    1. zwwooooo says:

      @一天一页
      折腾玩玩呗

发表评论

昵称 *

网址

B em del U Link Code Quote