iBatis.java

Apache + PHP + MySQL 安装过程中的注意事项

最近要和13一起做一个PHP的宠物展示网站,于是才会想起来去配PHP环境,网上搜搜,按照下面的文章配了一遍,有些收获:
http://tech.163.com/06/0206/11/299AMBLT0009159K.html

以下为配置过程中原文中忽略掉的注意事项。

一、Apache的端口修改
在Apache的配置文件conf/httpd.conf里搜索“Listen ”,后面的数字就是端口了。如果是按照服务模式装的,默认应该是80,按照应用模式装的,那默认是8080,因为我电脑上80跑的IIS,8080跑的RESIN,所以我把Apache改成90了。

二、Apache安装为服务
CMD中进入Apache安装目录下的bin目录,然后执行apache -k install回车即可,其他一些参数如下:
安装为特定的服务名:
apache -k install -n "服务名"
安装一个使用特定配置的服务,安装时指定配置文件:
apache -k install -n "服务名" -f "\my server\conf\my.conf"
移除一个Apache服务
apache -k uninstall -n "服务名"

三、发布目录的配置
Apache的httpd.conf文件里有关DocumentRoot的配置是关于Apache发布目录的,默认是指向Apache安装目录下的htdocs目录,修改后的目录绝不可包括空格,我之前把发布目录放在“我的文档”下面的一个文件夹里,结果“我的文档”的实际目录是F:\My Document\,导致路径中有一个空格,访问不了发布目录。

四、Apache加载PHP模块的配置
在配置Apache加载PHP模块时,除了加入
LoadModule php5_module C:/PHP/php5apache2.dll
这一句以外还要记得在下面加入
PHPIniDir "C:/PHP"
这句,否则就必须把php.ini文件复制到Windows目录下。

PS. 其实如果配过IIS+PHP的就很好理解了,PHP相当于一个ISAPI层,无论是IIS还是Apache都是把PHP作为一个ISAPI解析或者当作一个模块加入到自己里面,所以因为IIS没有加载PHP模块的概念,所以IIS+PHP是加载的php5isapi.dll文件作为ISAPI加入。

五、PHP的ext *.dll文件
很多教程要求把什么PHP目录以及PHP/ext目录下下所有*.dll复制到Windows/System32目录下才可使用,这其实是一种偷懒的办法,因为正确的方法应该是如原文中所说的一样,将PHP以及PHP/ext目录加入系统PATH路径中,其实就是让系统能找到这些dll文件放在哪里而已,我很不喜欢把*.dll放到System32目录,还有把php.ini复制到Windows目录下的这种方式,我认为PHP作为一个独立的模块就应该独立的存在。但是切记修改了系统PATH路径后一定要重新启动才能生效,而把*.dll复制到System32目录下由于System32目录本身就在系统PATH路径里,所以无需重新启动电脑,这就是为什么我刚说这种复制DLL文件的方法其实是偷懒。
要指定extension_dir的路径,"绝不可以"在目录结尾再加一个“/”,会导致无法访问发布目录,我就犯了这个错,为此还从头重做了一遍。
extension_dir = "./" 默认
extension_dir = "C:/PHP/ext"  正确
extension_dir = "C:/PHP/ext/" 错误

六、测试Apache加载PHP成功与否的代码
以下代码可以将PHP的一些信息用HTML的形式显示出来
1<?
2 phpinfo();
3?>

七、测试PHP连接MySQL成功与否的代码
以下代码可以将MySQL的用户表用HTML的形式显示出来,当然,用户名密码得根据实际情况来改,默认用户名为root,密码为空
 1<?PHP
 2 //---基本设定------
 3 $mysql_server_name = "localhost";
 4 $mysql_username    = "root";
 5 $mysql_password    = "";
 6 $mysql_database    = "mysql";
 7 //----------------
 8 $sql    = "select * from user";
 9 $conn   = mysql_connect($mysql_server_name, $mysql_username, $mysql_password);
10 $result = mysql_db_query($mysql_database, $sql, $conn);
11 $row    = mysql_fetch_row($result);
12
13 //表格开始
14 echo "<table border=1 cellspacing=0 cellpading=0>\n";
15 
16 //打印出栏位名称
17 echo "<tr>\n";
18 for ($i=0$i<mysql_num_fields($result); $i++) {
19    echo "<td nowrap>".mysql_field_name($result, $i)."</td>\n";
20 }
21 echo "</tr>\n";
22 
23 //将资料移动回第一笔
24 mysql_data_seek($result, 0);
25 
26 //印出资料内容
27 while($row=mysql_fetch_row($result)) {
28    echo "<tr>\n";
29     for ($i=0$i<mysql_num_fields($result); $i++)
30     {
31         echo "<td nowrap>$row[$i]</td>\n";
32     }
33     echo "</tr>\n";
34 }
35 
36 //表格结束
37 echo "</table>\n";
38 
39 mysql_free_result($result);
40?>

posted on 2008-11-30 23:20 Viva Hu 阅读(388) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: