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://local
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://local
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://local
五、安装数据库管理 phpMyAdmin
把下载回来的 phpMyAdmin-3.3.8.1-all-languages.7z 解压到 D:\localhost\htdocs 目录下,重新命名为 phpmyadmin,这样你就可以用 http://local
这样 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 了。
终于写完了,虽然部分内容来自文章开头的“原文参考”,而且我还没贴图,都感觉很累,教程什么的最累人了。
另外:有些步骤我是凭记忆敲的,不知道有没有错误,如果有朋友根据我这篇文章折腾,有什么问题在评论里提出并讨论。
嚓!