最近看了一些教科书,可能是印刷的缘故,只是一个空格没有打印,再加上网上的很多博客文章只是顺手转载,并没有仔细的检查,还有php和apache之间的版本问题,害得我花了4,5小时的时间才搞定环境的搭配。学习过程中,也发现了log文件不容忽视的最用。
php的版本:php-5.2.17-Win32-VC6-x86.zip apache的版本:httpd-2.2.25-win32-x86-openssl-0.9.8y
共享网址:http://pan.baidu.com/disk/home#list/path=%2F
php:
1)将php解压到自己要安装的路径,将该路径添加系统的环境变量和个人用户的环境变量Path中。
(win8)我的电脑--属性--高级系统设置--高级("环境变量")
2)复制php.ini-recommended文件,重命名为php.ini。打开修改其中的一些设置:
查找关键字:"extension_dir",将 extension_dir ="./" 修改为 extension_dir = PHP_DIR/ext,该路径下面放置的是一些php提供的模块。路径配置文件中路径分隔符建议用"/";
找关键字:"extension=php_mysql.dll"(对MySql的支持):去掉改语句前面的注释符号:";"。
可能我们在php文件中开启了对mysql模块的支持,extension_dir也是正确的,mysql数据库也正确的安装了,但是在运行含有访问mysql数据库的语句的php文件时,却出现的错误。在apache的logs的error.log中,会有相应的错误提示:undefined function mysql_connect()。这时候说明mysql模块是没有加载成功的(其他模块加载成功)。解决方法:
将php目录下的libmysql.dll复制到apache的bin目录下面,然后在apache的conf目录下的httpd.conf文件中,加入
LoadFile "PHP_DIR/libmysql.dll" ;
检测数据库连接的代码:
<?php
$link = mysql_connect('localhost', 'root', '923');//创建连接
// if(mysql_connect("127.0.1","root", "923") ){
// echo "连接成功";//如果链接成功了,输出成功,否则报错
// }
// else{
// echo "error";
// }
if($link){
echo "Hello the world!";//如果链接成功了,输出成功,否则报错
}
else{
echo "error";
}
// phpinfo();
?>
如果还有错,可能是版本的问题。
3)将改好的php.ini放到php的安装目录下。
apache:
1)打开apache的安装包,在安装过程中,出现的需要填写的三个内容自己看着填。
2)找到"APACHE_HTTP_DIR/conf"目录下的httpd.conf文件,编辑:
关键子查询"listen":在安装的过程中,Apache的监听窗口根据自己的安装时候的选择可能是80或者8080,因为这两个端口都比较常用,可能会和其他的服务发生冲突,像IIS的默认端口为80,可以打开cmd窗口:输入netstat -ano|findstr "80" 查看是否被占用。我自己把listen的端口改为:listen 8888
3)在文件中找个自己觉得合适的地方,加入下面的语句,支持php模块:
LoadModule php5_module "PHP_DIR/php5apache2_2.dll"
PHPIniDir "PHP_DIR"
AddType application/x-httpd-php .php
上面橙色的".php"前面有个空格,我根据书上把他连这些,结果apache就启动不了了。
找到错误的方法:打开“APACHE_HTTP_DIR/logs”目录下的文件error.logs:
关键查询"ServerRoot":自己的Apache的安装路径。
关键查询"IfModule dir_module":指令用于指定目录中默认的索引文件名称
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
关键查询"DocumentRoot":这个指定的是Web站点的访问目录。
蓝色的文件名根据自己PHP_DIR中的文件填写,安装包不一样,可能不太一样,像:php5apache.dll ....
编辑index.php文件,如下:
<?php phpinfo(); ?>
放到Web站点的访问目录,在浏览器输入访问地址,看是否安装成功。我的输入的访问地址:http://localhost:8888/index.php