学习PHP也有一段时间了,基础的语法还算掌握了,至少写出“你好,PHP”这样的输出还是驾轻就熟的。至于自己写出一个让自己很有满足感的程序来,目前还尚欠缺火候。
开始学习PHP的时候,对于新手来说,环境的搭建至关重要(虽说大牛们也是从这个阶段过来的),但遇到满屏幕错误提示的时候,是不是有一种想放弃的感觉,说句实话,我有过,但还是硬着头皮查资料,问别人。一个看是微小的错误,可以让你学会很多东西。
好了,废话到此。
如题,这是自己独立搭建环境遇到的“最致命 Fatal Error(程序员最不想看到的两个英文单词)”的一次错误,因为他是在工作中出现的,体会到了基础的重要性。
配置环境是:Apache2.2 + PHP5.2 + MySql5.5 + windows 7
得意洋洋的完成PHP和apache的配置,虽说Apache重启的时候也碰到了点问题。但最让我抓狂的还是MySql的问题。
测试代码如下,保存为testConn.php到hotdocs目录下。执行后报了如题的错误。
- <?php
- $link=mysql_connect("localhost", "root", "123456") or die("connect error!");
- if($link){
- echo "Successfully";
- }else{
- echo "Failed";
- }
执行以上程序后,出现如题目所示的错误。
解决思路如下:
1,最基本的工作,检查你的Code,仔细读下,看看有没有什么语法、拼写的错误,这样也可以导致Fatal的产生。
2,环境配置的检查,主要从以下几个方面入手。
2.1 检查PHP有没有正确加载mysql 模块,两种方式:
(1),新建一个php文件,写一个系统函数phpinfo(),执行即可,从输出的页面查找mysql模块。
- <?php
- phpinfo();
(2),在确保你的php\ext 以及 php.ini所在的目录的路径正确配置到了系统环境path路径中的前提下,进入命令行,直到php所在的路径下,输入
php -m 回车即可。
看看列出的模块中有没有mysql。
2.2 检查php.ini文件中的 ;extension=php_mysql.dll 前面的;分号是否去掉。去掉,保存文件,重启apache尝试。
2.3 有没有将php\ext目录下的 php_mysql.dll 和php_gd2.dll两个文件复制粘贴到c:\windows\system32 下,我习惯称为是注册动态链接库文件(请过路的大牛指正)。
2.4 将第一步修改好的php.ini在粘贴到c:\windows下即可。
2.5 再次重启apache服务器尝试。
2.6卸载mysql,清空你的mysql安装目录和C:\documents and settings\All Users\MySQL目录(如不清空该目录你重装的时候最后一步execute的时候可能会报错的呦,亲,反正我是碰到了)。重装你的MySql尝试。[以上PHP和apache的配置不需要动]
至此,以上操作已经反复了几次,再重新运行的时候,程序报了一个好的错误提示,那就是说连接数据库的password不对。到这里其实心里面一阵窃喜,但是‘淫荡’的上午已经过去了半个多小时。
3,检查mysql的安装环境。
命令行进入mysql,
mysql -uroot -p
123456
回车之后,根据提示才发现原来是root的密码错误。
接下来是如何改密码,如何进行设置的就略过吧。但是我清晰的记得我输入的是123456.看来最近人品不咋地。
这件事情让自己明白了以下东东:
1,命令行的神奇,这是以前我根本都瞧不起眼的界面,总觉得不美观。开来关键时刻还是大作用。而且能够熟练的敲命令才是计算机高手的一个重要体现之一(我是这样认为的,所以我一只小小鸟而已,很菜,但很努力的飞)。
2,求知不能一知半解、眼高手低、不懂装懂和不去检验。这是做学问,做技术,乃至为人处事的几大忌。就这么多了。
3,不但要会和计算机熟练的各种语言沟通,不能忘却我们自己的语言,这或许是通病。但是,你所讲出来的至少让别人听明白,直接简单明了,说出问题要害(当然做到如此不但需要较强的文字驾驭能力,敏捷的思维,合理的表达,更重要的一点还是根基深厚的技术水准)