Old

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

前言:本地调试 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

声明: 除非注明,ZWWoOoOo文章均为原创,转载请以链接形式标明本文地址
本文地址: http://zww.me/archives/25371

122 comments

  1. 奚少 奚少

    沙发?学习

    沙发
  2. MOPVHS MOPVHS

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

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

    板凳
  3. 老K 老K

    我回来了!

    地板
  4. ......
  5. asunchou asunchou

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

    41楼
  6. 小王子 小王子

    用PHPNOW的懒人飘过,

    42楼
  7. 一天一页 一天一页

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

    43楼
  8. holyknight123 holyknight123

    近来动念头想玩玩apache+php了,正好看到这篇有用的,多谢啦

    44楼
  9. 阿鼎 阿鼎

    暂时还用不到,先学习下先!

    45楼
  10. Mini Dragon Mini Dragon

    去用linux吧 适合开发啊

    46楼
  11. 林木木 林木木

    VC6 x86 Thread Safe……最后那个,我PHP下了三个版本都没2_2这个dll

    47楼
  12. Vicia Vicia

    今天照着折腾了一下,都搞定了。很顺利,特此感谢。 :mrgreen:

    48楼
  13. 落伍啦 落伍啦

    嗯,是挺实用的呢

    49楼
  14. vallycn vallycn

    不知搞啥,到打开http://localhost/phpmyadmin就提示
    phpMyAdmin -
    无法加载 mysql (外链,英语) 扩展,请检查您的 PHP 配置。 - 文档

    而且MYSQL的那个测试文档也无法运行起来

    50楼
  15. vallycn vallycn

    成功了!!!!!感谢无以言表!!

    51楼
  16. 红林落叶 红林落叶

    闲来无事,折腾了一下Wordpress,照着楼主的文章搭了WAMP环境,总体来说还是搞定了。不过出现一个诡异的问题,测试时phpinfo()可以正常显示,mysql连接时提示页面无法打开,没有任何错误信息。后将mysql_connect改为mysql_pconnect连接成功...

    52楼
    • zwwooooo zwwooooo

      @红林落叶
      手动比较麻烦,不熟悉的话遇到问题很难解决,慢慢折腾,我现在用回xampp了……

  17. Windows7下手动搭建Apache+PHP+MySQL方法记录 | 红林落叶 - pingback on 2011/10/10/ 10:22
    53楼
  18. XAMPP-优秀的LAMP集成包 | Dick Wu's Blog - pingback on 2011/12/09/ 18:06
    54楼
  19. vanabel vanabel

    直接用xampp很快, 什麼都不要做.

    55楼
  20. Normal Normal

    phpMyAdmin是折腾数据库用的么?

    56楼
  21. sun sun

    你好,我照着你的这篇文章来的,但是有个问题,apache 无法找到PHP 下ext 里面 的所有 dll文件,我路径写的是对的,而且php.ini 里面所有这些dll 注视已经都解开了。非常奇怪。

    57楼
    • zwwooooo zwwooooo

      @sun
      其实这种手动方式遇到麻烦时就真的很麻烦,因为不是特别懂。我觉得还是用一键包吧,如果你不是为了学习配置,而是只是要个调试环境的话。

  22. chenmo chenmo

    很全面的教程,给我解决了很多问题,感谢分享!

    58楼

Leave a Reply