你参考一下:
 1、安装  
       将PHP解压缩到c:\php4目录下,将php.ini-dist文件拷贝到系统目录c:\winnt下并重命名为php.ini,将php4ts.dll文件拷贝到c:\winnt\system32。  
       2、配置  
       打开php.ini,设置如下:  
       error_reporting    =    E_ALL  &  ~E_NOTICE  这项决定PHP新版本中如果未定义变量是否输出错误信息  
         
       register_globals  =  On  这项取决于你自己的决定,如果你要兼容以前写的程序,那么将他设为on,否则将他设为off,默认为off,这样的话只能用$_SERVER、$_ENV、$_GET、$_POST、$_FILES、$_REQUEST、$_SESSION来应用变量了,建议初学者将此项设为on  
 
       post_max_size  =  8M  
       upload_max_filesize  =  2M      这两项决定允许上传的最大文件大小。  
 
       default_charset  =  "gb2312"  默认为"iso-8859-1",有时可能会页面可能碰到乱码,设为gb2312即可解决  
     
       doc_root  =  c:\inetpub\wwwroot\    服务器的主目录  
 
       extension_dir  =  c:\php4\extensions\    扩展文件的目录  
 
       cgi.force_redirect  =  0  
       ;  cgi.redirect_status_env  =  ;      这两项稍后再做解释。  
 
       加载一些你需要的模块,如:  
       extension=php_gd2.dll                    图形处理模块  
       extension=php_mssql.dll                MS  SQL  SERVER模块  
       extension=php_oci8.dll                  Oracle  8  模块  
       extension=php_oracle.dll              Oracle  7  模块  
       ......  
       注意有些模块需要另外文件的支持,你可以把c:\php4\dlls\目录下的所有文件拷贝到c:\winnt\system32目录下,像php_oci8.dll、php_oracle.dll就需要安装oracle  client客户端软件,否则就会报“无法找到动态链接库或Unable  to  load  dynamic  library  'c:\php4\extension\php_oci8.dll'”之类的错误。  
 
       odbc.defaultlrl  =  4096          有时候用ODBC将一篇很长的文章存到数据库后,内容却少了一大半,就是这项在作怪,将它设大一点即可,默认为4096即4096个字节。  
 
       mssql.textlimit  =  4096  
       mssql.textsize  =  4096          这两项的作用同上,用于操作MS  SQL  SERVER数据库时,text字段的长度。  
 
       session.save_path  =  c:\winnt\temp\  设置session文件的存放目录,注意要可写。

解决方案 »

  1.   

    track_vars = On ; 使$HTTP_*_VARS[]数组有效,这里*在使用时用
    ; ENV, POST, GET, COOKIE or SERVER替换
    post_max_size = 8M ; PHP将接受的POST数据最大大小。
    gpc_order = "GPC" ; 这条指示被人反对。用 variables_order 代替。; Magic quotes
    magic_quotes_gpc = On ; 在输入的GET/POST/Cookie数据里使用魔术引用
    ; (原文就这样,呵呵,所谓magic quotes 应该是指用转义符加在引用性的控制字符上,如 '....)
    magic_quotes_runtime= Off ; 对运行时产生的数据使用魔术引用,
    ; 例如:用SQL查询得到的数据,用exec()函数得到的数据,等等
    magic_quotes_sybase = Off ; 采用 Sybase形式的魔术引用(用 '' 脱出 ' 而不用 '); 自动在 PHP 文档之前和之后添加文件
    auto_prepend_file =
    auto_append_file =; 象4.04b4一样,PHP 默认地总是在 “Content-type:” 头标输出一个字符的编码方式。
    ; 让输出字符集失效,只要设置为空。
    ; PHP 的内建默认值是 text/html
    default_mimetype = "text/html"
    ;default_charset = "iso-8859-1";;;;;;;;;;;;;;;;;;;;;;;;;
    ; Paths and Directories ;
    ;;;;;;;;;;;;;;;;;;;;;;;;;
    include_path = ; include 路径设置,UNIX: "/path1:/path2" Windows: "\path1;\path2"
    doc_root = ; php 页面的根路径,仅在非空时有效
    user_dir = ; 告知 php 在使用 /~username 打开脚本时到哪个目录下去找,仅在非空时有效
    ;upload_tmp_dir = ; 存放用HTTP协议上载的文件的临时目录(在没指定时使用系统默认的)
    upload_max_filesize = 2097152 ; 文件上载默认地限制为2 Meg 
    extension_dir = c:\php\ ; 存放可加载的扩充库(模块)的目录
    enable_dl = On ; 是否使dl()有效。
    ; 在多线程的服务器上 dl()函数*不能*很好地工作,
    ; 例如IIS or Zeus,并在其上默认为禁止
    ;;;;;;;;;;;;;;;;
    ; File Uploads ;
    ;;;;;;;;;;;;;;;;
    file_uploads = On ; 是否允许HTTP方式文件上载
    ;upload_tmp_dir = ; 用于HTTP上载的文件的临时目录(未指定则使用系统默认)
    upload_max_filesize = 2M ; 上载文件的最大许可大小; Fopen wrappers ;
    ;;;;;;;;;;;;;;;;;;
    allow_url_fopen = On ; 是否允许把URLs当作http:.. 或把文件当作ftp:...
    ;;;;;;;;;;;;;;;;;;;;;;
    ; 动态扩展 ;
    ; Dynamic Extensions ;
    ;;;;;;;;;;;;;;;;;;;;;;
    ; 若你希望一个扩展库自动加载,用下面的语法:
    ; extension=modulename.extension
    ; 例如,在windows上,
    ; extension=msql.dll
    ; or 在UNIX下,
    ; extension=msql.so
    ; 注意,这只应当是模块的名字,不需要目录信息放在里面。
    ; 用上面的 extension_dir 指示指定扩展库的位置。
    ;Windows 扩展
    ;extension=php_nsmail.dll
    extension=php_calendar.dll
    ;extension=php_dbase.dll
    ;extension=php_filepro.dll
    extension=php_gd.dll
    ;extension=php_dbm.dll
    ;extension=php_mssql.dll
    ;extension=php_zlib.dll
    ;extension=php_filepro.dll
    ;extension=php_imap4r2.dll
    ;extension=php_ldap.dll
    ;extension=php_crypt.dll
    ;extension=php_msql2.dll
    ;extension=php_odbc.dll
    ; 注意, MySQL的支持现在是内建的,因此,不需要用它的dll
    ;;;;;;;;;;;;;;;;;;;
    ; 模块设定 ;
    ; Module Settings ;
    ;;;;;;;;;;;;;;;;;;;[Syslog]
    define_syslog_variables = Off ; 是否定义各种的系统日志变量
    ; 如:$LOG_PID, $LOG_CRON, 等等。
    ; 关掉它是个提高效率的好主意。
    ; 运行时,你可以调用函数define_syslog_variables(),来定义这些变量
    [mail function]
    SMTP = localhost ;仅用于win32系统
    sendmail_from = [email protected] ;仅用于win32系统
    ;sendmail_path = ;仅用于unix, 也可支持参数(默认的是'sendmail -t -i')
    [Debugger]
    debugger.host = localhost
    debugger.port = 7869
    debugger.enabled = False
      

  2.   

    track_vars = On ; 使$HTTP_*_VARS[]数组有效,这里*在使用时用
    ; ENV, POST, GET, COOKIE or SERVER替换
    post_max_size = 8M ; PHP将接受的POST数据最大大小。
    gpc_order = "GPC" ; 这条指示被人反对。用 variables_order 代替。; Magic quotes
    magic_quotes_gpc = On ; 在输入的GET/POST/Cookie数据里使用魔术引用
    ; (原文就这样,呵呵,所谓magic quotes 应该是指用转义符加在引用性的控制字符上,如 '....)
    magic_quotes_runtime= Off ; 对运行时产生的数据使用魔术引用,
    ; 例如:用SQL查询得到的数据,用exec()函数得到的数据,等等
    magic_quotes_sybase = Off ; 采用 Sybase形式的魔术引用(用 '' 脱出 ' 而不用 '); 自动在 PHP 文档之前和之后添加文件
    auto_prepend_file =
    auto_append_file =; 象4.04b4一样,PHP 默认地总是在 “Content-type:” 头标输出一个字符的编码方式。
    ; 让输出字符集失效,只要设置为空。
    ; PHP 的内建默认值是 text/html
    default_mimetype = "text/html"
    ;default_charset = "iso-8859-1";;;;;;;;;;;;;;;;;;;;;;;;;
    ; Paths and Directories ;
    ;;;;;;;;;;;;;;;;;;;;;;;;;
    include_path = ; include 路径设置,UNIX: "/path1:/path2" Windows: "\path1;\path2"
    doc_root = ; php 页面的根路径,仅在非空时有效
    user_dir = ; 告知 php 在使用 /~username 打开脚本时到哪个目录下去找,仅在非空时有效
    ;upload_tmp_dir = ; 存放用HTTP协议上载的文件的临时目录(在没指定时使用系统默认的)
    upload_max_filesize = 2097152 ; 文件上载默认地限制为2 Meg 
    extension_dir = c:\php\ ; 存放可加载的扩充库(模块)的目录
    enable_dl = On ; 是否使dl()有效。
    ; 在多线程的服务器上 dl()函数*不能*很好地工作,
    ; 例如IIS or Zeus,并在其上默认为禁止
    ;;;;;;;;;;;;;;;;
    ; File Uploads ;
    ;;;;;;;;;;;;;;;;
    file_uploads = On ; 是否允许HTTP方式文件上载
    ;upload_tmp_dir = ; 用于HTTP上载的文件的临时目录(未指定则使用系统默认)
    upload_max_filesize = 2M ; 上载文件的最大许可大小; Fopen wrappers ;
    ;;;;;;;;;;;;;;;;;;
    allow_url_fopen = On ; 是否允许把URLs当作http:.. 或把文件当作ftp:...
    ;;;;;;;;;;;;;;;;;;;;;;
    ; 动态扩展 ;
    ; Dynamic Extensions ;
    ;;;;;;;;;;;;;;;;;;;;;;
    ; 若你希望一个扩展库自动加载,用下面的语法:
    ; extension=modulename.extension
    ; 例如,在windows上,
    ; extension=msql.dll
    ; or 在UNIX下,
    ; extension=msql.so
    ; 注意,这只应当是模块的名字,不需要目录信息放在里面。
    ; 用上面的 extension_dir 指示指定扩展库的位置。
    ;Windows 扩展
    ;extension=php_nsmail.dll
    extension=php_calendar.dll
    ;extension=php_dbase.dll
    ;extension=php_filepro.dll
    extension=php_gd.dll
    ;extension=php_dbm.dll
    ;extension=php_mssql.dll
    ;extension=php_zlib.dll
    ;extension=php_filepro.dll
    ;extension=php_imap4r2.dll
    ;extension=php_ldap.dll
    ;extension=php_crypt.dll
    ;extension=php_msql2.dll
    ;extension=php_odbc.dll
    ; 注意, MySQL的支持现在是内建的,因此,不需要用它的dll
    ;;;;;;;;;;;;;;;;;;;
    ; 模块设定 ;
    ; Module Settings ;
    ;;;;;;;;;;;;;;;;;;;[Syslog]
    define_syslog_variables = Off ; 是否定义各种的系统日志变量
    ; 如:$LOG_PID, $LOG_CRON, 等等。
    ; 关掉它是个提高效率的好主意。
    ; 运行时,你可以调用函数define_syslog_variables(),来定义这些变量
    [mail function]
    SMTP = localhost ;仅用于win32系统
    sendmail_from = [email protected] ;仅用于win32系统
    ;sendmail_path = ;仅用于unix, 也可支持参数(默认的是'sendmail -t -i')
    [Debugger]
    debugger.host = localhost
    debugger.port = 7869
    debugger.enabled = False
      

  3.   

    下面这个是我配置成功的:
    (1) 运行apache_2.0.47-win32-x86-no_ssl.exe,安装apache(2) 选择存放PHP的目录,进行拷贝或解压,例如e:\software\php\php-4.3.4-win32(3) 拷贝PHP目录下的php.ini-dist到windows系统目录下,并改名为php.ini
        拷贝PHP目录下的php4ts.dll到windows系统目录下或PHP的sapi子目录下(4) 编辑php.ini
    doc_root = "f:\php"
    extension_dir = "e:\software\php\php-4.3.4-win32\extensions"
    session.save_path = "c:\windows\temp\session"
    去掉extension=php_mssql.dll的注释
    考虑register_globals = Off的设置(5) 编辑httpd.conf
    LoadModule php4_module "e:/software/php/php-4.3.4-win32/sapi/php4apache2.dll"
    # AddModule mod_php4.c
    AddType application/x-httpd-php .php
    DocumentRoot "f:\php"
    给AddDefaultCharset ... 加上注释
      

  4.   

    [Logging]
    ; 这些配置指示用于示例的日志记录机制。
    ; 看 examples/README.logging 以得到更多的解释
    ;logging.method = db
    ;logging.directory = /path/to/log/directory[Java]
    ;java.class.path = .\php_java.jar
    ;java.home = c:\jdk
    ;java.library = c:\jdk\jre\bin\hotspot\jvm.dll 
    ;java.library.path = .
    [SQL]
    sql.safe_mode = Off[ODBC]
    ;uodbc.default_db = Not yet implemented
    ;uodbc.default_user = Not yet implemented
    ;uodbc.default_pw = Not yet implemented
    uodbc.allow_persistent = On ; 允许或禁止 持久连接
    uodbc.check_persistent = On ; 在重用前检查连接是否还可用
    uodbc.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
    uodbc.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
    uodbc.defaultlrl = 4096 ; 控制 LONG 类型的字段。返回变量的字节数,0 代表通过(?)0 means passthru
    uodbc.defaultbinmode = 1 ; 控制 二进制数据。0 代表?????Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char
    ; 见有关 odbc_binmode 和 odbc_longreadlen 的文档以得到 uodbc.defaultlrl 和 uodbc.defaultbinmode 的解释。[MySQL]
    mysql.allow_persistent = On ; 允许或禁止 持久连接
    mysql.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
    mysql.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
    mysql.default_port = ; mysql_connect() 使用的默认端口,如不设置,mysql_connect()
    ; 将使用变量 $MYSQL_TCP_PORT,或在/etc/services 下的mysql-tcp 条目(unix),
    ; 或在编译是定义的 MYSQL_PORT(按这样的顺序)
    ; Win32环境,将仅检查MYSQL_PORT。
    mysql.default_socket = ; 用于本地 MySql 连接的默认的套接字名。为空,使用 MYSQL 内建值mysql.default_host = ; mysql_connect() 默认使用的主机(安全模式下无效)
    mysql.default_user = ; mysql_connect() 默认使用的用户名(安全模式下无效)
    mysql.default_password = ; mysql_connect() 默认使用的密码(安全模式下无效)
    ; 注意,在这个文件下保存密码通常是一个*坏*主意
    ; *任何*可以使用PHP访问的用户可以运行
    ; 'echo cfg_get_var("mysql.default_password")'来显示那个密码!
    ; 而且当然地,任何有读该文件权力的用户也能看到那个密码。[mSQL]
    msql.allow_persistent = On ; 允许或禁止 持久连接
    msql.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
    msql.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制[PostgresSQL]
    pgsql.allow_persistent = On ; 允许或禁止 持久连接
    pgsql.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
    pgsql.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制[Sybase]
    sybase.allow_persistent = On ; 允许或禁止 持久连接
    sybase.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
    sybase.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
    ;sybase.interface_file = "/usr/sybase/interfaces"
    sybase.min_error_severity = 10 ; 显示的错误的最低严重性
    sybase.min_message_severity = 10 ; 显示的消息的最低重要性
    sybase.compatability_mode = Off ; 与旧版的PHP 3.0 兼容的模式。若打开,这将导致 PHP 自动地
    ; 把根据结果的 Sybase 类型赋予它们,
    ; 而不是把它们全当成字符串。
    ; 这个兼容模式不会永远留着,
    ; 因此,将你的代码进行需要的修改,
    ; 并将该项关闭。[Sybase-CT]
    sybct.allow_persistent = On ; 允许或禁止 持久连接
    sybct.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
    sybct.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
    sybct.min_server_severity = 10 ; 显示的错误的最低严重性
    sybct.min_client_severity = 10 ; 显示的消息的最低重要性
      

  5.   

    [bcmath]
    bcmath.scale = 0 ; 用于所有bcmath函数的10十进制数数字的个数number of decimal digits for all bcmath functions[browscap]
    ;browscap = extra/browscap.ini
    browscap = C:\WIN\SYSTEM\inetsrv\browscap.ini
    [Informix]
    ifx.default_host = ; ifx_connect() 默认使用的主机(安全模式下无效)
    ifx.default_user = ; ifx_connect() 默认使用的用户名(安全模式下无效)
    ifx.default_password = ; ifx_connect() 默认使用的密码(安全模式下无效)
    ifx.allow_persistent = On ; 允许或禁止 持久连接
    ifx.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
    ifx.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
    ifx.textasvarchar = 0 ; 若打开,select 状态符返回一个 ‘text blob’字段的内容,而不是它的id
    ifx.byteasvarchar = 0 ; 若打开,select 状态符返回一个 ‘byte blob’字段的内容,而不是它的id
    ifx.charasvarchar = 0 ; 追踪从固定长度的字符列里剥离的空格。
    ; 可能对 Informix SE 用户有效。
    ifx.blobinfile = 0 ; 若打开,text和byte blobs 的内容被导出到一个文件
    ; 而不是保存到内存。
    ifx.nullformat = 0 ; NULL(空)被作为空字段返回,除非,这里被设为1。
    ; 这种情况下(为1),NULL作为字串NULL返回。[Session]
    session.save_handler = files ; 用于保存/取回数据的控制方式
    session.save_path = C:\win\temp ; 在 save_handler 设为文件时传给控制器的参数,
    3; 这是数据文件将保存的路径。
    session.use_cookies = 1 ; 是否使用cookies
    session.name = PHPSESSID 
    ; 用在cookie里的session的名字
    session.auto_start = 0 ; 在请求启动时初始化session
    session.cookie_lifetime = 0 ; 为按秒记的cookie的保存时间,
    ; 或为0时,直到浏览器被重启
    session.cookie_path = / ; cookie的有效路径
    session.cookie_domain = ; cookie的有效域
    session.serialize_handler = php ; 用于连接数据的控制器
    ; php是 PHP 的标准控制器。
    session.gc_probability = 1 ; 按百分比的'garbage collection(碎片整理)'进程
    ; 在每次 session 初始化的时候开始的可能性。
    session.gc_maxlifetime = 1440 ; 在这里数字所指的秒数后,保存的数据将被视为
    ; '碎片(garbage)'并由gc 进程清理掉。
    session.referer_check = ; 检查 HTTP引用以使额外包含于URLs中的ids无效
    session.entropy_length = 0 ; 从文件中读取多少字节
    session.entropy_file = ; 指定这里建立 session id
    ; session.entropy_length = 16
    ; session.entropy_file = /dev/urandom
    session.cache_limiter = nocache ; 设为{nocache,private,public},以决定 HTTP 的
    ; 缓存问题
    session.cache_expire = 180 ; 文档在 n 分钟后过时
    session.use_trans_sid = 1 ; 使用过渡性的 sid 支持,若编译时许可了
    ; --enable-trans-sid
    url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"[MSSQL]
    ;extension=php_mssql.dll
    mssql.allow_persistent = On ; 允许或禁止 持久连接
    mssql.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
    mssql.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
    mssql.min_error_severity = 10 ; 显示的错误的最低严重性
    mssql.min_message_severity = 10 ; 显示的消息的最低重要性
    mssql.compatability_mode = Off ; 与旧版的PHP 3.0 兼容的模式。[Assertion]
    ; ?????
    ;assert.active = On ; ?assert(expr); active by default
    ;assert.warning = On ; issue a PHP warning for each failed assertion.
    ;assert.bail = Off ; don't bail out by default.
    ;assert.callback = 0 ; user-function to be called if an assertion fails.
    ;assert.quiet_eval = 0 ; eval the expression with current error_reporting(). set to true if you want error_reporting(0) around the eval().[Ingres II]
    ii.allow_persistent = On ; 允许或禁止 持久连接
    ii.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
    ii.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
    ii.default_database = ; 默认 database (format : [node_id::]dbname[/srv_class]
    ii.default_user = ; 默认 user
    ii.default_password = ; 默认 password[Verisign Payflow Pro]
    pfpro.defaulthost = "test.signio.com" ; 默认的 Signio 服务器
    pfpro.defaultport = 443 ; 连接的默认端口
    pfpro.defaulttimeout = 30 ; 按秒计的默认超时时间; pfpro.proxyaddress = ; 默认的代理的 IP 地址(如果需要)
    ; pfpro.proxyport = ; 默认的代理的端口
    ; pfpro.proxylogon = ; 默认的代理的登录(logon 用户名)
    ; pfpro.proxypassword = ; 默认的代理的密码[Sockets]
    sockets.use_system_read = On ; 使用系统的read() 函数替代 php_read()封装
    ; Local Variables: (局部变量)
    ; tab-width: 4
    ; End: