Apache+php的配置历险记

绪:作者是大学二年级CS专业的小白,为了解决以下问题,花了我3点到7点半,整整4个半小时的时间。。。

背景:因项目原因,需要用php,于是乎去下了NetBeans和Dw,但是特么发现NetBeans没有本地服务器(百度的结果),如果我再去下载Apache和MySQL(之前卸载了= =),并配置的话,就很麻烦。于是在某php教材的推荐下,去下载了AppServ,它是一个集成包。

好了,正文开始:

百度AppServ,经多家对比,在某网站下了x64的包,解压后按照默认配置安装,安装好后要进行localhost测试,然后测试失败,无法显示网页,于是百度= =,经过调查后得出结论是IIS未安装(其实一开始我是不相信的...  因为我按照百度的某答案安装了),然后 发现百度某答案和百度经验的答案不同,按照百度经验的答案按照才成功。。。(made,误人子弟就不要回答了好吗= =)


然后IIS安装后发现Apache并不能启动,启动时报错:apache the request opertion has failed        心路:ok,fine,一个小怪而已,吃我百度大法!

经过多篇博客文章、百度答案对比,说得最多的方法如下:

原因一: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 -w -n "Apache2" -k start 

还有一种情况: 
即使你这次启动了,下次你都有可能启动失败 
在运行里输入:netsh winsock reset 
一会儿cmd会提示你重启,不用理会,现在APACHE已经可以启动了。 

其实就是一个winsock的修复



此刻心路:端口?什么鬼怎么会有问题,于是乎继续使用百度大法:


Apache+php的配置历险记


这里给你们说一下详细步骤  供像我一样的小白使用:

1、打开命令提示符(管理员)

2、netstat“:此命令是查看统计信息(经实践,这条命令并不可靠);

3、推荐使用此条命令:”netstat -aon|findstr "****"“ , ***是具体端口,然后在底部

   TGP    [::]:****   ,      这一行   的    最右边 会有一个PID(也是数字)

4、继续输入 :”  tasklist|findstr "****"   “    ,****是PID  ,会弹出占用该端口的进程,然后根据你的情况,选择结束该进程树or更换端口。

Apache+php的配置历险记

------------------------------------------分割线--------------------------------------------------------------------------

然而到这里你认为就完了吗?NONONO, 折磨才刚刚开始 [大哭] QAQ   Apache+php的配置历险记Apache+php的配置历险记

------------------------------------------分割线--------------------------------------------------------------------------

然后我遇见了443端口的错误(因为默认配置的端口分别是80和443),我按照上面查询端口的步骤查询,发现是VMware占用了我的443端口。。。。。go   die

到这里.....   我总算弄清楚了我端口的问题了....      接着我又查询了哪些端口是空的,用来更改,所以我把AppServ卸了....  重新  安装配置一遍,这次配置的  8080  和 444  。

上面说了折磨才刚刚开始.....   所以重新安装配置后的Apache还是不能启动.......

我按照网上说的方法,在cmd管理员中,输入“  httpd.exe -w -n "Apache2" -k start   ” ,结果显示‘httpd.exe’不是内部命令,也不是可运行程序 .................   纳尼???网上不是这么教的么???

然后我翻了N篇博客终于看到一篇描述了  :此时就必须用cd进入你的apache安装目录,进入到包含httpd.exe的目录即可  ,

对于此刻的我简直是救世主,然而 cd E:\****************\bin   ??   纳尼????怎么还是没反应= =   (原谅此刻的我,DOS命令已经荒废了1年半,格式什么的完全忘了),在我翻阅N篇回答后终于知道了   要先 E:进去Apache+php的配置历险记

终于进去了.....   然后  httpd.exe -w -n "Apache2" -k start   ” ,报的错误是:ServerRoot must be a valid directory ,但是我发现我和  百度经验说的方法  完全没有区别,这时候我注意到末尾有一句话:”Apache解压路径最好不要用中文

然而我路径包含中文............  fine....  去掉路径里的中文后

继续  httpd.exe -w -n "Apache2" -k start   ” 

这时候提示   Invalid LoadModule path apache2_4.dll    的错误,继续百度,都说有可能是版本问题,所以我确认了一下版本是一致的,然后便按照百度经验说的做,但是注意一点,我下的集成包里是有php5和php7两个文件夹,它其中有一个步骤是在末尾添加 ” PHPIniDir "E:/*****/php"  “,于是我添加了两行,第一行是php5,第二行是php7(这个问题如果你遇见了你自然会懂我说的啥= =)

继续“  httpd.exe -w -n "Apache2" -k start   ” ,

之后就是一些路径的问题了(因为之前我去掉了中文,资源文件里的路劲实际上是没有更改的),并且它提示错误的时候,会显示多少行,打开记事本,关闭自动换行,打开状态栏,会显示行数,把每一处里面的中文去掉即可。


接着测试该服务的配置文件:httpd.exe -n "Apache 2.4" –t  

Apache+php的配置历险记

启动已安装的apache服务:   httpd.exe -k start 

最后测试安装结果:               http://localhost:8080

Apache+php的配置历险记