Windows 环境下的PHP5 与 Apache2 服务器的配置

目前 PHP5 发布了第三个候选版本,估计正式版本不久就快释放了。安装过程应该不会有所变化,下面文章内容将讲述 Windows2000/XP/2003(不建议在 windows 98 下建立 PHP 环境) PHP 环境的配置,服务器选择 Apache 2.0.49 ,数据库选择 MySQL 4.0.20 版本。

需要下载几个软件包:


  1. PHP5 RC3
  2. Apache 2.0.49
  3. MySQL 4.0.20

下载软件包
1. PHP5 RC3
 PHP 的下载地址为: http://www.php.net/downloads.php ,找到如下图位置,下载方框中的两个软件包。其中 PHP 5.0.0RC3 zip package 就是 PHP5 软件包,而 Collection of PECL modules for PHP 5.0.0RC3 则是 PHP5 PECL 扩展模块集合包。 下载完成后放于 C 盘备用。

  1. PHP5 RC3
  2. Apache 2.0.49
  3. MySQL 4.0.20

下载软件包
1. PHP5 RC3
  PHP 的下载地址为: http://www.php.net/downloads.php ,找到如下图位置,下载方框中的两个软件包。其中 PHP 5.0.0RC3 zip package 就是 PHP5 软件包,而 Collection of PECL modules for PHP 5.0.0RC3 则是 PHP5 PECL 扩展模块集合包。 下载完成后放于 C 盘备用。


2. Apache 2.0.49
  Apache官方下载地址为: http://httpd.apache.org/download.cgi ,找到如下图位置,下载 For Windows MSI 安装包,保存于 C 盘备用。

  Apache 官方下载地址为: http://httpd.apache.org/download.cgi ,找到如下图位置,下载 For Windows MSI 安装包,保存于 C 盘备用。

3. MySQL 4.0.20
 MySQL 官方下载地址为: http://dev.mysql.com/downloads/mysql/4.0.html ,找到 Windows downloads 部分,下载 Without installer 包并保存于 C 盘,如下图所示:


 

安装 PHP5
  假设你的系统安装于 C 盘,否则下列目录均须改成相应的盘的目录。
  将下载来的 PHP5 RC3(php- 5.0.0 RC3-Win32.zip)
解压缩到 C:/PHP5/ 目录下。将 PECL 扩展模块集合包里的所有文件解压缩到 C:/PHP5/ext/ 目录下。
  复制 C:/PHP5/ 目录下的 php5ts.dll 文件到 C:/windows/(如果是 windows 2000 操作系统,则为 C:/WINNT/ 目录,下同,不再重复说明) 目录下。
  复制 C:/PHP5/ 目录下的下列 dll 文件于 C:/windows/system32/ 目录下:

fdftk.dll
fribidi.dll
gds32.dll
libeay32.dll
libintl-1.dll
libmhash.dll
libmysql.dll
libmysqli.dll
ntwdblib.dll
ntwdblib.dll
yaz.dll

其中 libmysql.dll MySQL 4.1 之前版本的扩展支持,libmysqli.dll MySQL 4.1 之后版本的扩展支持。因为我上面下载的是 MySQL 4.0.20 ,所以其实复制 libmysql.dll 即可。
  复制 C:/PHP5/ 目录下的 php.ini-dist 文件到 C:/windows/ 目录下,并改名为 php.ini ,并用记事本打开编辑:
  定位到下面两行:

; Directory in which the loadable extensions (modules) reside.
extension_dir = "./"

修改下面一行使它指向 C:/PHP5/ext/ 目录,修改后如下:

; Directory in which the loadable extensions (modules) reside.
extension_dir = "C:/PHP5/ext/"

定位到下面两行:

;Windows Extensions
;Note that ODBC support is built in, so no dll is needed for it.

可以看到下面列出了所有可支持扩展,我们可以去掉前面的分号来使 PHP 支持相应的扩展。我测试了下,支持下列扩展,也可以根据选择是否配置。

extension=php_bz2.dll
extension=php_cpdf.dll
extension=php_curl.dll
extension=php_dba.dll
;extension=php_dbase.dll
extension=php_dbx.dll
;extension=php_exif.dll
extension=php_fdf.dll
extension=php_filepro.dll
extension=php_gd2.dll
extension=php_gettext.dll
;extension=php_iconv.dll
;extension=php_ifx.dll
extension=php_iisfunc.dll
extension=php_imap.dll
;extension=php_interbase.dll
extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_mcrypt.dll
extension=php_mhash.dll
extension=php_mime_magic.dll
extension=php_ming.dll
;extension=php_mssql.dll
;extension=php_msql.dll
extension=php_mysql.dll
;extension=php_oci8.dll
extension=php_openssl.dll
;extension=php_oracle.dll
extension=php_pdf.dll
;extension=php_pgsql.dll
extension=php_shmop.dll
extension=php_snmp.dll
extension=php_sockets.dll
;extension=php_sybase_ct.dll
extension=php_tidy.dll
;extension=php_w32api.dll
extension=php_xmlrpc.dll
extension=php_xsl.dll
;extension=php_yaz.dll
extension=php_zip.dll

保存文件并退出。

 

安装 Apache 2.0.49
  准备好下载下来的
apache_2.x.x-win32-x86-no_ssl.msi 。双击后开始安装。一步 Next 下来,同意许可协议后会有填写服务器信息的页面,本地调试,前面两个输入 localhost 即可。如下:

 

一路 Next 下来,均按照默认路径安装――当然你也可以选择你自己需要的路径。Apache 会自动安装并启动相关服务。并在任务栏右下角运行着一个 Apache 监控器:

 

我们可以从这个监控器来重起、停止、启动 Apache 服务。双击小图标打开控制界面:

接下来对 Apache 的配置文件进行配置,用记事本打开 C:/Program Files/Apache Group/Apache2/conf/ (我这里是按照默认安装路径安装,后面的设置按照自己的安装路径做相应的改变) 目录下的 httpd.conf 文件,定位到下面这行:

DirectoryIndex index.html index.html.var

在其后面添加一个 PHP 默认页,通常是 index.php ,如下:

DirectoryIndex index.html index.html.var index.php

为了使 Apache 识别 PHP 的相关扩展名,搜索并定位到下面这个部分:

<Directory "C:/Program Files/Apache Group/Apache2/cgi-bin">
   AllowOverride None
   Options None
   Order allow,deny
   Allow from all
</Directory>

在后面添加如下两行:

AddType application/x-httpd-php .php .phtml .php3 .php4
AddType application/x-httpd-php-source .phps

指定 php 模块,找到并定位到如下这行:

#LoadModule ssl_module modules/mod_ssl.so

在下面添加一行:

LoadModule php4_module c:/php5/php5apache2.dll

使它指向 PHP5 目录下的 php5apache2.dll 文件,路径一定要准确。
  为了指定 Apache 识别中文,我们指定 GB2312 为默认编码。应该找到并定位到下面这行

AddDefaultCharset ISO-8859-1

将其修改为:

AddDefaultCharset GB2312

另外,如果要禁止目录浏览,查找并定位到下面这几行:

<Directory "C:/Program Files/Apache Group/Apache2/htdocs">
#……
#
一些注释
#……
Options Indexes FollowSymLinks

去掉几行注释下面进跟着的一行的 Indexes 即可,修改后:

<Directory "C:/Program Files/Apache Group/Apache2/htdocs">
#……
#
一些注释
#……
Options FollowSymLinks

OK,保存 httpd.conf 文件后重起 Apache 服务器。

安装MySQL 4.0.20

mysql-4.0.20-win-noinstall.zip 文件夹压缩到 C 盘根目录下(注意:使用该版本 MySQL 必须将解压缩后文件夹放于 C 盘根目录下),解压缩后可以在 C 盘根目录下找到名为 mysql-x.x.x 的文件夹。将其改名为 mysql
  进入 bin 目录,找到 winmysqladmin.exe 文件,打开它。第一次运行会提示输入一个新的用户名和密码。这里可以随意选择你需要的用户名和密码输入,作为 my.ini 的默认用户名和密码。如下图:

点击 OK 确定后,WinMySQLadmin 将缩小到右下角的任务栏里:

 

我们来看看 MySQL 服务是否启动。打开控制面板,进入后打开管理工具,再打开服务。如果一切顺利的话我们会看到 MySQL 已启动的信息,如下图:

到这里 MySQL 的安装告一段落,非常简单。
测试 PHP 是否配置成功:
  打开记事本,输入如下这行代码:

<?php phpinfo(); ?>

保存为 phpinfo.php 文件,存放于 Apache2/htdocs/ 目录下,记得保存的时候选择保存类型为所有文件,如下图:

好了,打开浏览器,在地址栏中输入: http://localhost/phpinfo.php 并回车,如果一切顺利的话你将看到下面这个页面,到此 PHP5 的配置大功告成:

 

注:本文未从安全性和性能上来讨论服务器的配置,相应的安全配置请参考其他手册,本文仅简单介绍了 PHP5 环境的配置,作为学习 PHP5 的前提,本文并不能作为服务器配置文章来阅读,比如,这里没有设置 MySQL root 用户密码,将导致很大的安全隐患,所以请读者自行设置。
作者简介

深空(shenkong),就读西安电子科技大学电子信息工程,钟情 PHP。个人主页:www.openphp.cn,联系信箱:kim@openphp.cn

 


[ 点击此处收藏本文]
发表于 2004年08月06日 2:09 PM
href="http://blog.csdn.net/Shimizu/Services/Pingback.aspx" rel="pingback"/>

maxcai 发表于 2004-08-10 5:54 PM  
LoadModule php4_module c:/php5/php5apache2.dll
这个我的机子上不行
"
Syntax error on line 173 of D:/Program Files/Apache Group/Apache2/conf/httpd.con
f:
Can't locate API module structure `php4_module' in file C:/php5/php5apache2.dll:
No error
Note the errors or messages above, and press the <ESC> key to exit. 24...
"
要怎么设置呢?
用的是xp + apache_2.0.50 + php5 final

汽球 发表于 2004-08-10 9:27 PM  
LoadModule php4_module c:/php5/php5apache2.dll
修改成
LoadModule php5_module c:/php5/php5apache2.dll

maxcai 发表于 2004-08-11 8:01 AM  
谢谢汽球~~

mimax 发表于 2004-08-22 12:11 AM  
为什么安全不上???

ServerAdmin takes one argument,this email address of the server administrator Note the error......



胖子 发表于 2004-08-22 3:59 PM  
本人用的是
XP+apache_2.0.50-win32-x86-no_ssl+mysql-5.0.0a-alpha-win

这样配完之后,apache无法启动了,配了几次仍然不行。怪。
apache装到c:/apache/apache2下

胖子 发表于 2004-08-22 4:35 PM  
经过认真再一次察看,
是在apache中加入
LoadModule php4_module c:/php5/php5apache2.dll

时出了错
php startup:unable to load dynamic library'c:/php/extensions/php_iconv.dll'-找不到指定的模块。
php startup:unable to load dynamic library'c:/php/extensions/php_w32api.dll'-找不到指定的模块。
php startup:unable to load dynamic library'c:/php/extensions/php_xslt.dll'-找不到指定的模块。
php startup:unable to load dynamic library'c:/php/extensions/php_yaz.dll'-找不到指定的模块。
php startup:unable to load dynamic library'c:/php/extensions/php_mysql.dll'-找不到指定的模块。
.
....
就可以启动了。不知道会不会有影响。
注:把c:/php/ext 改为c:/php/extensions
现在是可以看到测试页面了。






aruoo 发表于 2004-08-27 4:10 PM  
出错
提示:
php startup:unable to load dynamic library'c:/php/ext/php_curl.dll'-找不到指定的模块。
php startup:unable to load dynamic library'c:/php/ext/php_ldap.dll'-找不到指定的模块。
php startup:unable to load dynamic library'c:/php/ext/php_openssl.dll'-找不到指定的模块。

但是apache可以启动,看到测试页面了
请问这个出错到底是怎么回事?
明明存在c:/php/ext/php_curl.dll这几个模块阿~~~为什么它说找不到?这个出错提示有影响吗?
谢谢!

aruoo 发表于 2004-08-27 4:12 PM  
并且问一个比较弱智的问题,怎么替换apache的测试页面,因为我的测试页面为“这不是你想看见的页面吧?”。。。。。。如何是好?

piaofeng 发表于 2004-09-02 12:26 PM  
我的apache可以启动,测试面我也看到了
可是当我在浏览器中输入http://localhost/phpinfo.php时
却出现了一个提示我保存的对话框,我看不到你说的一个页面
望指教,谢谢

小新 发表于 2004-09-03 10:47 AM  
很好,配制很成功,多谢 深空,还望多多指教,
能给你e-mail 联系吗??

小新 发表于 2004-09-03 10:49 AM  
我的apache可以启动,测试面我也看到了
可是当我在浏览器中输入http://localhost/phpinfo.php时
却出现了一个提示我保存的对话框,我看不到你说的一个页面
望指教,谢谢




回复:


那就是说你的php还没有安装成功。


胖子 发表于 2004-09-05 9:35 PM  
我的所有问题都解决了。
本人用的软件是
apache-2.0.50-win32-x86-no_ssl.exe
php5-win32-latest
phpmyadmin 2.6.0-beta2
mysql-5.0.1-alpha-snapshost-win

关于打开 http://localhost/phpinfo.php 出现保存界面是因为
没有在httpd文件中加入


AddType application/x-httpd-php .php
AddType application/x-httpd-php .php4
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .phtml
AddType application/x-httpd-php-source .phps
LoadModule php5_module "c:/php5/php5apache2.dll"


这个问题就可以解决了。绝对没有问题的。

还会有问题就接着问吧。

胖子 发表于 2004-09-05 9:39 PM  
在httpd中搜索
document root
把后面的路径改为你的网页存放的路径就可以了。显示为你的网页的界面.



深空 发表于 2004-09-07 10:48 PM  
晕,我的怎么在这里,而且不是修正版的,上面一个错误


LoadModule php4_module c:/php5/php5apache2.dll
修改成
LoadModule php5_module c:/php5/php5apache2.dll

ss 发表于 2004-09-09 12:31 PM  
我测试页面看到了 并且没有错误 为什么在地址栏中输入: http://localhost/phpinfo.php 却只是<?php phpinfo(); ?>
是什么原因呢

darinliu 发表于 2004-09-12 6:17 PM  
我也是碰到这样的问题呀?怎么办?

菜鸟 发表于 2004-09-13 8:31 PM  
我的apache可以启动,测试面我也看到了
可是当我在浏览器中输入http://localhost/phpinfo.php时
却出现了一个提示我保存的对话框,我也看不到你说的一个页面 ,这个根据以上几位说的我还是不懂,能不能教教我

oled 发表于 2004-09-15 4:14 PM  
关于无法打开php的问题,上面“胖子”的回答是正解!

菜鸟 发表于 2004-09-16 7:28 PM  
笔者你好,你的配置方法很好,但是有一个地方错了就是Apache的导入PHP文件应该是5。0而 不是4。0希望你能改过来,这样能给大家带来很多的配置方便

菜鸟 发表于 2004-09-16 7:31 PM  
我的php配置成功了运行也出画面了但是显示有的地方是红色的

highlight.comment #FF8000 #FF8000
highlight.default #0000BB #0000BB
highlight.html #000000 #000000
highlight.keyword #007700 #007700
highlight.string #DD0000 #DD0000

请教高手指点是什么地方没有配好

大肥羊 发表于 2004-09-20 4:21 PM  
该怎么办?是哪里出了错误吗?

菜鸟 发表于 2004-09-24 12:47 PM  
我按上面的方法装上了,但是注释掉了模块运行很好,现在要使用MYSQL模块我就把它的注释那掉,启动APACH服务器为什么总出现不能倒入模块,我想请教高手指点

菜鸟 发表于 2004-09-27 2:57 PM  
请问高手为什么这个程序不能在PHP5环境下运行,我总出现的错误是第90行的函数错误,请教高手怎么解决这个问题 “急!!



<?
################
# Calendar.php - 创建一个当天日期为高亮度的日历GIF图片。
# 使用到了GD 函数库存和TTF字体 -可以被改变成 PNG格式的图片, 当然,如果
# 你想要的是一个拥有一个透明背景的图片除外,这个改动是可以被很容易得
# 完成,最后,我们把图片写到一个叫 dategif/ 的目录,并且用当天的日期来
# 命名该图片的名字。(如:20000204.gif)这个GIF图片一般情况只会有5K或
# 是7K的大小。
#
# 这段程序你可以以任意地方使用,该文档或支持对每个人都是免费的,但是请
# 不要把该程序用于买卖,你可以剪切、拷贝或是毁坏这段程序,只要你喜欢,
# 并且,你不用为了用它而给我付费!如果你需要帮助或是你真的很喜欢这段程
# 序,请给我来封信,以让我知道,你看好吗?
# 二月四日4, 2000 由 Matt Florell ( mattf@mail.com )
################

Header( "Content-type: image/gif");

#创建一幅图片
$im = ImageCreate(156, 142);
# 设置颜色
$black = ImageColorAllocate($im, 50, 50, 50);
$white = ImageColorAllocate($im, 255, 255, 255);
$orange = ImageColorAllocate($im, 255, 200, 0);
$yellow = ImageColorAllocate($im, 255, 255, 0);
$tan = ImageColorAllocate($im, 255, 255, 190);
$grey = ImageColorAllocate($im, 205, 205, 205);
$dkgrey = ImageColorAllocate($im, 140, 140, 140);

###灰线 ###
#边框线
ImageRectangle($im, 1, 1, 155, 141, $dkgrey);
#水平线
ImageRectangle($im, 1, 22, 155, 39, $dkgrey);
ImageRectangle($im, 1, 56, 155, 73, $dkgrey);
ImageRectangle($im, 1, 90, 155, 107, $dkgrey);
ImageRectangle($im, 1, 107, 155, 124, $dkgrey);
#垂直线
ImageRectangle($im, 23, 22, 45, 141, $dkgrey);
ImageRectangle($im, 67, 22, 89, 141, $dkgrey);
ImageRectangle($im, 111, 22, 133, 141, $dkgrey);

### 白线 ###
#外框线
ImageRectangle($im, 0, 0, 154, 140, $white);
#水平线
ImageRectangle($im, 0, 21, 154, 38, $white);
ImageRectangle($im, 0, 55, 154, 72, $white);
ImageRectangle($im, 0, 89, 154, 106, $white);
ImageRectangle($im, 0, 106, 154, 123, $white);
#垂直线
ImageRectangle($im, 22, 21, 44, 140, $white);
ImageRectangle($im, 66, 21, 88, 140, $white);
ImageRectangle($im, 110, 21, 132, 140, $white);



### 在上面写数字

$today = date( "d");
$month = date( "m");
$year = date( "Y");
$datecode = date( "Ymd");
$gif = '.gif';
$first=mktime(0,0,0,$month,1,$year);

$mon_yr=date( "F Y", $first);

$wd=date( "w",$first);
#if ($wd==0) { $wd=7;}
$lastday=date( "d",mktime(0,0,0,$month+1,0,$year));
$cur=-$wd+0;
$ver_position = 50;
for ($k=0;$k<6;$k++) {
$day_position = 5;
$last_row_used = 0;
for ($i=0;$i<7;$i++ ) {
$cur++;
$sing_add = 0;
if (($cur<=0) || ($cur>$lastday) ) $day_position = ($day_position + 22);
else
{
$day_color = $grey;
if ($day_position<10) $day_color = $tan;
if ($cur==$today) $day_color = $yellow;

if (strlen($cur)<2) {$sing_add = 4;}
$fin_position = ($day_position + $sing_add);

ImageTTFText($im, 12, 0, $fin_position, $ver_position, $day_color, "./fonts/arialbd.ttf", "$cur");

$day_position = ($day_position + 22);
$last_row_used = 1;
}
}
$day_position = 5;
if ($last_row_used) $ver_position = ($ver_position + 17);
}
# 月份和年份 (Arial字体、加粗、居中)
$spc = 23;
$st_add = 0;
$st = "$mon_yr";
$st_len = strlen($st);
$st_margin = (14 - $st_len);
if ($st_margin > 0) {$st_add = ($st_margin * 4);}
$spc = ($spc + $st_add);
ImageTTFText($im, 14, 0, $spc, 15, $white, "./fonts/arialbd.ttf", "$st");

# 星期的名字
ImageString($im, 2, 3, 23, "Sun", $orange);
ImageString($im, 2, 25, 23, "Mon", $orange);
ImageString($im, 2, 47, 23, "Tue", $orange);
ImageString($im, 2, 69, 23, "Wed", $orange);
ImageString($im, 2, 91, 23, "Thu", $orange);
ImageString($im, 2, 113, 23, "Fri", $orange);
ImageString($im, 2, 135, 23, "Sat", $orange);

if ($ver_position<140)
{
$im_out = ImageCreate(156, 125);
$out_black = ImageColorAllocate($im_out, 50, 50, 50);
ImageRectangle($im, 1, 124, 155, 124, $dkgrey);
ImageCopyResized($im_out, $im, 0, 0, 0, 0, 156, 125, 156, 125);
ImageColorTransparent($im_out, $out_black);
ImageGIF($im_out, "./dategif/$datecode$gif");
ImageGIF($im_out);
ImageDestroy($im);
ImageDestroy($im_out);
}
else
{
ImageColorTransparent($im, $black);
ImageGif($im, "./dategif/$datecode$gif");
ImageGif($im);
ImageDestroy($im);
}

?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值