PHP集成开发环境有很多,如XAMPP、AppServ......只要一键安装就把PHP环境给搭建好了。但这种安装方式不够灵活,软件的自由组合不方便,同时也不利于学习。所以我还是喜欢手工搭建PHP开发环境,需要哪个模块自己安装就行了,或者那个软件需要升级,直接升级那个软件就行了,并不影响其他软件,非常方便。
安装环境:windowsXP 32
一、准备工作-下载所需软件
(下载php网站:http://tool.php100.com/)
二、安装软件
1、安装Apache
注意:Apache服务器的默认是80端口
双击安装,与安装其他Windows软件没有什么区别,在填Server Infomation时,并没有特殊规定,只要输入的信息符合格式即可。
服务器信息可以按照默认配置,如果服务器的80端口没被其他服务器程序占据。可选“for All Users,on Port 80, as a Service—Recommended.”如果仅为当前用户使用,使用8080端口,手动启动,选择“only for the Current User, on Port 8080, when started Manually.”。端口号是可以通过配置文件进行修改的。
安装完成之后出现apache服务管理器,如下图,点击第一个图标
(注意:安装完apache后并没有启动此服务)
服务管理列表中有现在可以启动的服务项目,点击“Start”
在浏览器输入http://localhost,如果显示It Works!,表示Apache安装成功。
2、安装php
将php-5.3.10-Win32-VC9-x86.zip解压到一个目录即可,本例我放置到了D:\php文件夹下。
3、安装MySQL
双击安装,如果需要更改安装目录,则在Choose Setup Type选择Custom
此处选择用户自定义配置
可以更改mysql的安装目录位置,此处保持默认。
完成后勾选”Launch the MySql instance Configuration Wizard”进行MySql的配置。
安装完成后开始配置MySQL,全部保持默认选项即可,但最好把MySQL默认编码改为utf8,在Modify Security Settings选项中设置密码,输入两次密码即可完成,最后点Execute完成配置。
选择配置方式:“Detailed Configuration(手动精确配置)”、”Standard Configuration(标准配置)”,选择“Detailed Configuration”,
选择服务器类型,“Developer Machine(开发测试类,mysql占用很少资源)”、“Server Machine(服务器类型,mysql占用较多资源)”、“Dedicated MySQL Server Machine(专门的数据库服务器,mysql占用所有可用资源)”,一般选择“Server Machine”。 可根据实际情况进行选择。本例使用开发测试类型滴。
选择mysql数据库的大致用途,“Multifunctional Database(通用多功能型,好)”、“Transactional Database Only(服务器类型,专注于事务处理,一般)”、“Non-Transactional Database Only(非事务处理型,较简单,主要做一些监控,记数用,对MySAM数据类型的支持仅限于non-transactional)”,选择“Transactional Database Only”,本例选择的是通用多功能型。
对InnoDB Tablespace进行配置,就是为InnoDB数据库文件选择一个存储空间,如果修改了,要记住位置,重装的时候要选择一样的地方,否则可能会造成数据库损坏,当然,对数据库做个备份就没问题了。使用默认位置。
选择网站的一半mysql访问量,同时连接的数目,“Decision Support(DSS)/OLAP(20个左右)”、“Online Transaction Processing(OLTP)(500个左右)”、“Manual Setting(手动设置,自己输一个数)”,选择“Online Transaction Processing(OLTP)”。本例选择第一项,由于只在本机做开发测试工作。
是否启用TCP/IP连接,设定端口,如果不启用,就只能在自己的机器上访问mysql数据库,选择“Enable TCP/IP Networking”是否启用TCP/IP连接,设定端口,如果不启用,就只能在自己的机器上访问mysql数据库,选择“Enable TCP/IP Networking”。
设置数据库语言编码,“Standard Character Set”为西文编码、“Best Support For Multilingualism”为RTF-8编码、“Manual Selected Default Character Set/Collation”为手动设置编码,utf8
”Install As Windows Service”选择安装MySql服务,可自定义服务的名称。
“Include Bin Directory in Windows PATH”是在机器上添加MySql的环境变量。
选择“Modify Security Settings”,可根据实际要求勾选上“Enable root access from remote machines”以便能够从其他机器上访问。
完成配置后点击“Execute”执行配置即可。
MySQL安装完成了。
测试MySQL安装是否成功:
三、整合Apache+PHP+MySQL
Apache : 首先修改Apache的配置文件,让Apache支持解析PHP文件。Apache配置文件在Apache安装目录的conf目录下的httpd.conf。
1. 让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
2. 在配置文件中找到
DirectoryIndex index.html
改为
DirectoryIndex index.php index.html
3. 修改Apache站点目录,在配置文件中找到(Apache安装的目录不同,显示的值不一样)
#DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
改为
DocumentRoot "D:/php"
再找到
#<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
改为
<Directory "D:/php">
PHP : 把php.ini-development改名为php.ini,作为PHP的配置文件。修改php.ini
1. 设置PHP扩展包的具体目录,找到
; On windows:
; extension_dir = "ext"
改为 (值是ext文件夹的目录)
; On windows:
extension_dir = "D:/php/ext"
2. 开启相应的库功能,找到需要开启的库的所在行
;extension=php_curl.dll
;extension=php_gd2.dll
;extension=php_mbstring.dll
;extension=php_mysql.dll
;extension=php_xmlrpc.dll
去掉前面的分号(注释),即改为
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_xmlrpc.dll
3. 设置时区,找到
;date.timezone =
改为
date.timezone = Asia/Shanghai
四、验证安装是否成功
配置完成,检测一下配置是否成功。有两种方法可以验证。
第一种:重启Apache,在站点目录下新建文件index.php,输入内容:
<?php phpinfo(); ?>
打开浏览器输入http://localhost,显示如下内容,则安装成功,并且成功关联MySQL。
第二种:在Web根目录下(如 D:\website)建立testdb.php文件内容如下:
<?php $link=mysql_connect('localhost','root','123456'); if(!$link) echo "fail"; else echo "success"; mysql_close(); ?>
注意更改连接数据库的地址和root的密码。
用浏览器打开http://localhost/testdb.php 如果输出success就表示PHP、mysql 和apache合作愉快了。
五、安装过程中遇到的问题
1、地址栏输入http://localhost,显示的IIS页面
原因:IIS与apache默认端口号一样,都是80
解决方法一:把IIS服务停止
解决方法二:修改Apache端口号
2、地址栏中输入http://localhost,提示域名解析错误
原因:安装后的apache并未启动
解决方法:启动后即可正常访问。
3、启动Apache时报错the requested operation has failed
原因一:80端口占用
例如IIS,另外就是迅雷。我的apache服务器就是被迅雷害得无法启用!
Windows平台查看谁占用了我们的80端口方法:
在windows命令行窗口下执行:
C:\>netstat -aon|findstr "80"
TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 2448
看到了吗,端口被进程号为2448的进程占用,继续执行下面命令:
C:\>tasklist|findstr "2448"
thread.exe 2016 Console 0 16,064 K
很清楚吧,thread占用了你的端口,Kill it
如果第二步查不到,那就开任务管理器,看哪个进程是2448,然后杀之即可。
如果需要查看其他端口。把 80 改掉即可
原因二:软件冲突
装了某些软件会使apache无法启动如Dr.com 你打开网络连接->TcpIp属性->高级->WINS标签 把netbios的lmhosts对勾去掉,禁用tcp/ip的netbios. 然后再启动应该就可以了。
原因三:httpd.conf配置错误
如果apache的配置文件httpd.conf搞错了,在windows里启动它,会提示the requested operation has failed ,这是比较郁闷的事,因为查错要看个半天。
其实可以用命令行模式启动apache,并带上参数,apache会提示你哪句有误,然后就可以针对性的解决,命令如下: httpd.exe -w -n "Apache2" -k start
还有一种情况:
即使你这次启动了,下次你都有可能启动失败
在运行里输入:netsh winsock reset
一会儿cmd会提示你重启,不用理会,现在APACHE已经可以启动了。
其实就是一个winsock的修复
4、如果你Apache安装后服务管理列表中没有出现apache的服务项就说明在安装过程中出现了错误,这时候可以手动进行安装。
解决方法:使用cmd进入C:\Program Files\Apache Software Foundation\Apache2.2\bin这是我本机安装的目录, 并执行httpd -k install命令,提示成功后即可在服务管理列表中看到apache服务。
5、httpd.conf的配置时,若php目录下无php5apache2_2.dll,一定是下载的版本不对。
6、MySQL安装有问题,需要重装,重装时变成无反应,装不了
解决方法:可参考http://www.cnblogs.com/yangxia-test/p/4414397.html
7、启动Apache时,提示php startup
解决思路:cmd命令中,输入httpd.exe -w -n "Apache2" -k start ,查看Apache日志,显示以下错
apache虽然能运行,但是看见error.log中有httpd.exe: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName这个错误
解决方法:因为DNS没配置好. 如果不想配置DNS, 就在httpd.conf , 在最前加入 ServerName localhost:80 即可.