我的Linux系统如下:2.6.19-1.2911.6.5.fc6。安装时基本上是全部安装,所以Apache的httpd服务,MySQL和PHP已经有了。开始时,我并不知道我已经有了Apache,因为我也是刚开始接触网络编程,不知道httpd就是Apache。所以花了小段时间去到apache.org去找,结果在它的站点上才发现httpd是它的。我发现我的服务里就有这一项,只是还没启动。就启动了它。包括后面要说的mysqld,方法可以在System->Administration->Server Settings->Services里设置。或在Terminal里输入
$ service httpd start
好了。服务启动,在浏览器里输入http://localhost,成功。(但我开始时是不行的,不知道为什么,有的网友说是host的IP原来的是::1,将之改为127.0.0.1地址。但是我现在将它改回::1也能用……)。
出现了Fedora Core Test Page的欢迎页面。根据里面的提示,我们知道可以将自己编辑的页面放在/var/www/html/目录下。所以,我马上到该目录下,编辑new.php文件如下:
<?php
phpinfo()
?>
迫不及待地到FireFoxj里输入http://localhost/new.php。!什么也没有!让我特别惊讶的是,状态栏显示完也,但页面什么也没有。然后就开始了痛苦地找资料。网上一堆人发生了这种问题,但好像没有一个能解释得清楚,也好像没有一个能解决得了。郁闷。好像有一个网友给一个人的解释得在php.ini里将short_tag设为On。我查了一下php.ini,是short_open_tag我的已经是On了,那位老兄竟然是这个原因,改后就好了。我又好一顿找,发现了将display_errors设为On时可以显示问题。问题终于出现了:
Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0
Warning: Unknown: Failed opening '/var/www/html/new.php' for inclusion (include_path='.:/usr/share/pear') in Unknown on line 0
好了,开始查找问题的解决,不少网友说是权限不够,我用:
$ chmod 777 /var/www/html
将html目录修改为全部可执行,然后再登录,发现不行。又继续找,在外文网站上也发现了类似的问题。也说的是权限。我再一次到html目录下,从属性里看到,文件只有权限确实很低。将root group和other的权限改为read-only。
再次访问http://localhost/new.php,奇迹终于出现了。显示出了PHP的信息,成功了!^-^
接下来是测试MySQL了。从一位网友那copy来一段code,如下。
<?php
$link=mysql_connect('localhost','root','');
if ($link) echo "yes";
else echo "no";
mysql_close();
?>
然后访问,失败(成功的话输出yes)!显示如下错误:
Fatal error: Call to undefined function mysql_connect() in /var/www/html/mysqltest.php on line 2
有网友提示可能没有在php.ini里设置好如下属性:
mysql.default_port =
mysql.default_host =
mysql.default_user =
mysql.default_password =
我一一做了设置。问题依旧。
又有网友提示是否安装了php-mysql的支持包。我一看
$ rpm -qa|grep php
结果是:
php-common-5.1.6-3
php-5.1.6-3
php-cli-5.1.6-3
php-ldap-5.1.6-3
果然没有。
到rpm.pbone.net里下了一个php-mysql的rpm包。安装。提示需要php-pdo,仍然下载下来。安装之。
重启服务,访问。
成功!
这里,我要说明的是,所做的修改,要经过如下命令重启服务才能有效果。
$ service httpd restart
$ service network restart