设为首页 收藏本站
查看: 862|回复: 0

[经验分享] Apache + PHP + mysql各种问题分析以及一些解决方案

[复制链接]

尚未签到

发表于 2015-7-31 11:51:14 | 显示全部楼层 |阅读模式
  
  在我的前一篇日志中提到,搭建整个Apache+PHP+mysql+eclipse开发环境遇到了很多的问题,问题千奇百怪,网上的解决方案也是形形色色,在介绍了 eclipse下php调试配置后,我总结出了一个整个搭建过程中解决问题的大杀器——Apache日志文件分析。本文通过列举各种各样的问题、错误,并分析如何通过Apache日志文件来最终解决问题。总的思路还是我那篇日志中提到的回归原点,多看文档,多看错误日志,只有知其然,并且知其所以然,才能解决问题。
  对于遇到的各种问题,我的感觉是如此:

  • 上次同样的版本这样配置就行,这次就不行了;
  • 网上说把xxx.dll复制到system32下,我复制了还是没解决问题;
  • 刚才重装Apache就解决了那个问题,为什么我现在重装那个问题又出来了;
  • 为什么大家都说加上环境变量问题就解决了,我加了还是没能解决;
  • ……
  1.装了apache或者配置PHP后,服务启动不了: The Request opertion has failed!   于是你去Google或者百度了一下,网上的前辈们确实总结的很详细(确实许多人都被这个问题害惨了),有的甚至总结出好多种原因:80端口被占用、软件冲突、httpd.conf配置错误、甚至winsock出错。那么你该怎么办呢,一个一个去试?还是听我的,来看看Apache错误日志吧。
  Apache错误日志指的是Apache安装文件夹下logs/error.log文件,里面记录了所有的错误的具体环境,时间、原因等,并且信息、格式还可以自己去配置。
  在查看了error.log后,其中我们在文件末尾发现了一句:… make_sock: could not bind to address 0.0.0.0:80…. 你是不是知道了问题所在了,80端口不能绑定,那么你就可以去看一下那些程序占用了80端口(IIS,迅雷,SQL server的某个服务)或者你干脆把Apache端口改成8081,总之这个问题解决了。
  2. 还是同样的错误 The Request opertion has failed! 只不过是在你加了LoadModule php5_module C:/php/php5apache2.dll
PHPIniDir “C:/php” 这两句之后,就错了,网上也有各种求助的。来看看error.log中怎么说:Syntax error on line 130 of …httpd.conf: Cannot load C:/php/php5apache2.dll into server: The specified module could not be found…. 你是不是该看看你有没有这个文件了,或者你确实有这个文件,但你是不是添了相对路径而忘了添加环境变量呢。
  3.我确实有这个文件,但还是错了,那么log会是:Cannot load C:/Program Files/PHP/php5apache2.dll into server: The specified module could not be found. 那么它没说这个文件没有,而是说模块没找到,那么你是不是把模块文件填错了,本来应该填php5apache2_2.dll的,你填成了 php5apache2.dll,或者是版本错了,那么你可以去搜一下php5apache2.dll这个文件有什么问题,我想范围应该小了不少。
  4. Apache启动都正常,但是我在登陆phpmyadmin的时候说没有加载所需要的mysql扩展或者mcrypt扩展,然后明明去掉了这两个扩展 dll那两行的分号,怎么会没有呢,一看error.log他就会告诉你,确实没找到,你的ext就没找到,你是不是该把extension_dir换成绝对路径试一下。
  5.phpmyadmin登陆界面可以上去,但是一登陆就没反应IE说Internet Explorer cannot display the webpage, Firefox说连接被重置,看一下错误日志:[Thu Jun 28 21:36:27 2007] [notice] Child 1128: Acquired the start mutex.   
[Thu Jun 28 21:36:27 2007] [notice] Child 1128: Starting 250 worker threads.     
[Thu Jun 28 21:36:27 2007] [notice] Child 1128: Starting thread to listen on port 80.这怎么办,搜索一下这个总比不知道搜索什么要好吧,终于找到了一个说要把libmysql.dll拷贝到system32下面,照做后终于解决了这个问题。下面我详细说一下这个问题,我解决它的经历或者有人为什么没有遇到这个问题有人遇到了,我们需要知道为什么拷贝到system32后才能工作:相比我们肯定会产生这样的想法,肯定是环境变量错了,拷贝到system32下面他找到了,而原来没找到这个文件,但是明明我是添加了PHP环境变量的呀,为什么呢:因为mysql下面也有这个文件,Apache加载了mysql下面的这个libmysql.dll文件,它和PHP不一致,所以始终错了,拷贝到system32之后是因为system32在环境变量path里面在最前面,而mysql和php的环境变量在后面,发生错误的原因也就是 mysql的环境变量在php的前面,所以优先找到了mysql下的libmysql.dll. 有的人没错,是因为他先添加了php的环境变量,mysql的环境变量是后面加上去的或者根本就没有。于是有人有试了一下,现在我错了,我把php的环境变量放在path的最前面,怎么还是找到的是mysql下的libmysql.dll呢,稍微一想就知道你换过之后系统并没有生效,那么重启一下吧。
  5. 在加载zend debugger插件时,时钟不成功。phpinfo里面一直没有,不知道问什么,那么你也可以看一下error.log文件了,它会告诉你failed loading zenddebugger.dll或者not found, 那么你就知道了你写了相对路径是不合适的,或者是你把ts或者nts搞错了(参考上一篇日志),那么写上正确的路径或者换上相对的版本就正确了。
  另外提醒一下error.log,有时候你会发现error.log根本没有记录这个错误,那么怎么办,你可以先错误的配置去掉,启动起来 apache,然后加上错误的配置,然后restart服务,那么就会有错误日志了,因为从stop的启动,失败了是不会记录错误日志的。当然 apache有个工具叫test configuration你也可以使用这个工具找出很明显的错误,然后先把apache启动起来,对于不明显的错误就去分析错误日志好了。
  当然这种方法并不是万能的,因为问题很多,千奇百怪,你想都想不到,我在这里说出我的解决问题的思路,希望对有问题而解决不了的人一些思路,或许你会想出更简单的解决办法,那么也可以分享出来,我们大家来交流。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-92708-1-1.html 上篇帖子: IIS安装Apache伪静态插件 下篇帖子: [java]apache server与 tomcat 的区别以及整合
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表