最近在学习PHP,所以就在windows7下安装了PHP的开发环境。之所以没有选择集成的软件,如WAMP、AppServ等套件,是为了单独安装这些软件,有助于更加深入了解。
一、Apache的安装与配置Apache HTTP Server是Apache软件基金会的一个开放源代码的网页服务器,可以在大多数电脑操作系统中运行,由于其跨平台和安全性,被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
1. 下载
下载地址:http://httpd.apache.org/download.cgi#apache22
文件名:httpd-2.2.25-win32-x86-no_ssl
2. 安装
安装过程很简单,和其他windows下的软件一样,唯一值得注意的是可以如果更改安装路径的话要选择Custom安装,如图所示:
然后一路Next就行了。
安装完毕以后,任务栏右下角托盘图标就会出现一个正在运行的羽毛图标,
然后用浏览器访问localhost(默认80端口,如果更改要适当变化),安装正确情况下会显示It Works.
接下来再看下apache的安装目录结构:
bin:存放apache常用的命令,如httpd
cgi-bin:存放linux常用的命令,如.sh
conf:存放apache配置文件httpd.conf
error:存放错误记录
htdocs:存放站点文件
icons:存放图标
logs:存放apache相关日志
manual:存放手册
modules:存放模块,apache是根据模块来管理的,对应httpd.conf文件中的LoadModule
至此,apache安装暂时完成;后面需要做一些配置上的修改。
3.配置
配置放到后面,安装完PHP再进行配置。
二、PHP的下载、安装与配置1.下载
下载地址:http://windows.php.net/download/#php-5.3
文件名称:php-5.3.27-Win32-VC9-x86.zip
2.安装
PHP是绿色免安装的,直接解压到某个路径下就行可以使用了。
首先,把根目录下的php.ini-development改名为php.ini,为php的配置文件
然后,编辑php.ini,找到";extension= php_mysql.dll"去掉分号表示引入mysql模块;
第三,设置环境变量,
接下来,apache就要调用php的模块,使用php融入apache,按照之前的方法,打开conf/httpd.conf文件,搜索"LoadModule"关键字,在下面一行添加:
LoadModule php5_module "D:/php5/php5apache2_2.dll"PHPIniDir "D:/php5"
最后,添加应用程序类型,搜索关键字"AddType application",在其下面一行添加:
AddType application/x-httpd-php .phpAddType application/x-httpd-php .html
到此为止,最简单的配置完成之后,apache就可以和php完美的结合在一起了。
三、遇到的问题以及解决办法1. 在monitor窗口显示"the requested operation has failed"
原因,有很多种
原因一:80端口占用
例如IIS,另外就是迅雷。有的apache服务器就是被迅雷害得无法启用!
原因二:软件冲突
装了某些软件会使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 –t意思是:: run syntax check for config files
下面是我遇到的一些问题,还不少。
这个错误是因为LoadModule后面的参数错误,仔细核对;
这个错误也是粗心大意造成的,还是LoadModule后面的第二个参数写错了;
当然,还有这个BT的错误;
And this,很显然是语法错误;
最后,费劲九年二虎之力终于成功了。
此外:
apache启动报错:the requested operation has failed解决办法
直接搜这个很慢,因为有很多中可能。
最简单的方法是查看logs目录下的error.log
2.查看哪个进程占用80端口的方法
打开cmd, netstat –anb, 可以找出占用80端口的程序,然后找到对应的PID,在任务管理器(TaskManager)中杀死对应的进程.