Win2003+IIS+Mysql+PHP+Zend - 环境调试技术

发布时间:2011-01-06 11:02:55

Win2003+IIS6.0+Mysql5.0+PHP5.2.6+Zend3.3.3 环境调试技术

—— Windows 环境搭建教程——

-------参考文档 Discuz! 用户手册(www.hicode.cn)

一、系统约定(为了更真实起见,原来的X:\ 被我替换成了 D:\

环境软件下载后存放位置:D:\Server_Tools

环境软件安装位置:D:\Server_Core

PHP安装位置:D:\Server_Core\PHP

MySQL安装位置:D:\Server_Core\MySQL

说明:安装的时候需要提前建立MySQL的文件夹,如果是原来装过MySQl,最好卸载后重新安装。

Zend Optimizer安装位置:D:\Server_Core\Zend

说明:安装的时候需要提前建立Zend的文件夹,如果是原来装过Zend,最好卸载后重新安装。

IIS网站站点根目录:D:\wwwroot (注意设置权限,建议,在安装之前,先设置盘符的权限安全,比如设置D盘的安全权限是 管理员到完全控制、IIS的用户是第二级,network给三个基本权限,然后在此盘符建立的文件夹自动继承根目录的权限,也会省掉不少事。

其中有两个需要注意的地方:

1、 IIS的访问权限,除了完全控制以下的权限。

2、 Network的权限,给3个基本权限就可以了。

MySQL 数据库位置:D:\Database (最后需要剪切转移)

Php.ini存放位置:D:\Windows\php.ini (需要手工拷贝)

My.ini 存放位置:D:\Server_Core\MySQL\my.ini (系统默认位置)

二、系统环境检查以及准备所需软件

1. 检查系统是否已安装IIS

单击:"开始""管理工具",检查是否存在" Internet 信息服务(IIS)管理器 "

2. 查看磁盘分区容量并确定使用策略

打开"我的电脑",查看除 C 区外各个磁盘分区的可用空间容量,使用容量较大的磁盘分区作为 WEB 根目录,且 MySQL 数据库存储目录(Database),尽量不要与 WEB 根目录同在一个磁盘分区内。较小的磁盘分区可以作为服务环境软件的安装目录分区。(www.hicode.cn)

根据自己的应用环境调整空间分配才最为合理,本人是实验搭建,并且内部服务器几乎没有访问量,有也是局域网内部的,所以留了2G的空间就足够了,如果是大型建站,希望在建站之前做好规划,以免日后麻烦。

3. 下载环境软件

将所有软件均下载存放于Server_Tools文件夹中。

MySQL-essential-5.0.45-win32.msi (本人使用的是5.0.67

php-5.2.4-Win32.zip (本人使用的是5.2.6

ZendOptimizer-3.3.0-Windows-i386.exe (本人使用的是3.3.3

三、环境部署(第一步,先别管其它的,先把数据库装好,调试好,和其它的没有关系,在这之后,不要出错,因为是一步错,步步错。)

1.安装MySQL

(1) 安装软件

进入 D:\Server_Tools 文件夹,双击 MySQL-essential-5.0.45-win32.msi ;如下图所示:

选择 Custom 自定义安装,如下图所示:

点击"Change"更改 MySQL 安装目录,如下图所示:

待文件复制安装完毕后,进行 MySQL 设置界面,单击 Finish 。如下图所示:

选择 Detailed Configuration 进行详细配置,如下图所示:

选择 MySQL 运行模式:Server Machine 如下图所示:

选择 MySQL 数据库默认存储方式:Non-Trans Only ( MYISAM) 如下图所示:

设定 MySQL 最大连接数:一般设置为 128 - 512 之间的整数。如下图所示:

设定 MySQL 网络参数,注意:不要启用 Strict Mode 如下图所示:

设定 MySQL 默认字符集:以用户站点语言为准这里选择的gbk。如下图所示:

Windows 环境设定,如下图所示:

修改设定 root 用户密码,注意:不要启动远程连接模式! 如下图所示:

这里是设置密码的地方,一定要记住,后面要用的,默认的用户为root,所以你就不用管了,比如说密码是123456,当然,实际用的时候要注意密码的复杂性和长度,密码下面的打钩的是问你是不是开启mysql的远程访问,如果要开启的话,就打上勾,但是密码一定要够复杂才可以。最下面的是创建其它用户,基本上不用创建,如果有多个管理员操作mysql,就创建一下。

完成 MySQL 的安装,并启动 MySQL 服务。如下图所示:

这里显示的结果是mysql已经正常启动了。如果不是这样的话,可能就出问题了,需要重新配置,mysql现在的版本有一个配置向导,不用重新安装,只用运行配置向导就可以重新配置了。

如果和上述的有不一样的地方,要绝对注意,因为有可能你的SQl 服务不能启动哦,注意,我的版本有一个地方需要打钩,是关于防火墙的,打上就可以了。

(2) 测试 MySQL 工作是否正常。

打开 cmd 命令提示符窗口,输入命令:MySQL –u root –p

输入密码后,就可以看到sql的提示信息,然后输入status 或者 \s ,就可以看到mysql的运行状态。如果能够正常进入 MySQL 控制台则说明 MySQL 安装正常。

(3) 更改 MySQL 数据库目录(必须先停止mysql服务,才能对mysql的数据库文件转移)

a) 打开 cmd 命令提示符窗口,输入命令:net stop MySQL 停止 MySQL 服务运行;

b) 打开D:\Server_Core\MySQL\my.ini

找到:

Datadir = "D:\Server_Core\MySQL\data"

修改为:

Datadir = "D:\Database"

c) D:\Server_Core\MySQL\data 文件夹复制到 D:\ ,并重命名为D:\Database

如果开始你在D盘下建立了Database文件夹,只需要把Data下的数据剪切至Database,然后删除Data文件夹即可。

d) 打开 cmd 命令提示符窗口,输入命令:net start MySQL 启动 MySQL 服务。

e) 重新测试 MySQL 是否工作正常。

(4) 准备 LibMySQL 动态链接库

D:\Server_Core\MySQL\bin\libMySQL.dll 文件复制到 C:\Windows\System32

这一步很重要,切忌!文件名称不要搞错了。

2. 安装 PHP

(1) 解压缩下载的 php-5.2.4-Win32.zip 文件,并将其复制到:D:\Server_Core\PHP

(2) 进入 D:\Server_Core\PHP 文件夹,将 php.ini-dist 重命名为 php.ini

(3) 打开 php.ini 文件,找到:extension_dir = "./"

将其改为;

extension_dir = "D:\Server_Core\PHP\ext" 注意:windows下面的路径用的是“\”,而且最后没有”\”

(4) 找到:Windows Extensions

Windows Extensions 下方的动态模块配置中,需要打开以下模块支持:(去掉模块配置每行前面的;号即可)

extension=php_mbstring.dll

extension=php_gd2.dll

extension=php_MySQL.dll

(5) 找到:

disable_functions =

改为:

disable_functions = phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

注意:先不要把第一个函数 phpinfo 的函数加上,因为后面要进行PHPinfo的测试,如果这里加上了这个函数,后面的测试就被禁止了,等环境完全调试完了以后再加上这个函数。

改完上述参数后,这里还有要改的,此文档没有说明在php.ini的文件中修改关于如何关联mysql的修改,在这里我列出来:

[MySQL]

; Allow or prevent persistent links.

mysql.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.

mysql.max_persistent = -1

; Maximum number of links (persistent + non-persistent). -1 means no limit.

mysql.max_links = -1

; Default port number for mysql_connect(). If unset, mysql_connect() will use

; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the

; compile-time value defined MYSQL_PORT (in that order). Win32 will only look

; at MYSQL_PORT.

mysql.default_port =3306

; Default socket name for local MySQL connects. If empty, uses the built-in

; MySQL defaults.

mysql.default_socket =

; Default host for mysql_connect() (doesn't apply in safe mode).

mysql.default_host =localhost (这个值一般是这个,如果不确定可以查看mysql的运行状态,看上面的命令方式)

; Default user for mysql_connect() (doesn't apply in safe mode).

mysql.default_user =root

; Default password for mysql_connect() (doesn't apply in safe mode).

; Note that this is generally a *bad* idea to store passwords in this file.

; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password")

; and reveal this password! And of course, any users with read access to this

; file will be able to reveal the password as well.

mysql.default_password =123465

; Maximum time (in seconds) for connect timeout. -1 means no limit

mysql.connect_timeout = 60

; Trace mode. When trace_mode is active (=On), warnings for table/index scans and

; SQL-Errors will be displayed.

mysql.trace_mode = Off

(6) 保存 php.ini 文件,并将其复制到 C:\Windows\

(本人认为应该是剪切过去,也就是说在PHP文件夹下不用再保留一份php.ini的备份。还有文件夹的位置一定是c:\windows下,而不是:c:\windows\system32 ,具体原因我也不知道!但是经过测试,放到system32下面是不行的。红色部分是需要改变的地方!然后停止mysql,再启动mysql,这样才能让PHPmysql 正常关联。命令: net stop mysql net start mysql

3. IIS PHP 的整合配置 新建一个网站

(1) 启动 IIS 管理器,并新建一个网站(虚拟主机);如下图所示:

说明:关于默认网站建议不使用,直接删除掉,将应用程序池的内容全部删除干净,全部配置新的,删除干净后,先在应用程序池建立一个默认应用程序,名称比如叫“discuz“。然后在网站下面建立新的网站,开始如下所示:(www.hicode.cn)

(2) 输入网站名称,改名称仅为 IIS 中的标识,可任意输入。如下图所示:

(3) 网站IP地址不用填写,端口如没有特殊要求则保持 80 即可,最后正确输入网站域名。如下图所示:

这里的网站IP地址不要指定,系统会自动匹配所有符合本机的地址,如果是用花生壳的朋友就更不要指定这个IP,因为你的域名解析出来是动态的IP,会变的。主机头建议不要写,留空。

(4) 在网站分区中建立 wwwroot 以及下级站点文件夹 bbs。如下图所示:

提前应将BBS下面的所有程序拷贝至\wwwroot\bbs\*.* ,建立网站完成后会自动刷新出来网站的内容。

(5) 对于 PHP 应用,需要给予该站点"读取""运行脚本"的权限。如下图所示:

注意:强烈注意:这里的第三项,一定要勾选,否则安装discuz会失败,因为权限不够的问题,其它东西不要乱改。一步一步来。

(6) 至此,已经成功的新建了一个站点。如下图所示:

4. IIS PHP 的整合配置 使站点支持 PHP

(1) 打开刚刚建立的网站属性,如下图所示:

这里需要打开网站的属性窗口,提示:刚才我们说如果删除了默认网站和默认的应用程序池,进入到属性页面的主目录选项卡,就会弹出来无可用的应用程序池的错误提示,不要紧只要你选择一下就可以了,刚才我们不是建立了一个默认的应用程序池名称叫“discuz“,下拉菜单里面只有这一个,选则一下就可以了。

(2) 在站点属性窗口中,单击"主目录"页签,单击"配置"按钮,在新弹出的"应用程序配置"对话框中,单击"添加"按钮,加入 PHP ISAPI 支持,选择可执行文件:D:\Server_Core\PHP\php5isapi.dll 、扩展名为 .php 、限制动作为:GET,POST 。单击"确定"添加,并在"应用程序配置"窗口中查看 .php 扩展是否加载成功。若成功,则单击"确定"关闭配置窗口,回到站点属性主窗口。如下图所示:

这是很重要的一步,不能出错:必须这样设置,限制里面填写的内容 “GET,POST”,千万不要写错了,中间的逗号是英文的,不要弄错了,我就是因为将POST写成了PORT了,导致最后的网站安装出现莫名的错误。切忌啊!

(3) 单击"文档"页签,在默认内容文档中添加 index.htmindex.htmlindex.php 三个文件,并将所有默认文档排序,顺序按照下图所示。完成后,单击"确定",关闭站点属性配置窗口,回到 IIS 管理器主界面。如下图所示:(注意顺序) 1index.htm 2index.html 3index.php

(4) 右键单击"Web 服务扩展",添加 PHP 扩展支持。如下图所示:

这个很重要,IIS+PHP合成就靠这一步了:

(5) 在如下图所示的"新建WEB服务扩展"对话框中,"扩展名"填写PHP"文件"选择 D:\Server_Core\PHP\php5isapi.dll ,并设置该PHP扩展默认为允许。如下图所示:

(6) 重启 IIS 服务,如下图所示:

5、测试 PHP 支持是否正常

IISPHP的整合已经完毕,下面需要测试 PHP 支持是否正常。

(1) 进入 D:\wwwroot\bbs\ 目录,新建一个 phpinfo.php 文件,内容为:

Phpinfo();

?>

实际上就是建立一个txt的文件,然后把这段代码写进去,最后命名成PHPinfo.php

不要告诉我你连扩展名称都不知道怎么改。

(2) 打开IE浏览器,输入:http://www.domain.com/phpinfo.php

这里的www.domain.com就是刚才填写主机头的名称,实际上没有必要,我们在本机测试只需要输入http://localhost/phpinfo.php 就可以了 ,或者是http://127.0.0.1/phpinfo.php

(3) 如果能够正常显示PHP支持信息则表明配置整合是成功的。

这里一定要成功,这一步出了问题,环境还是有问题,后面还是有莫名的错误,所以在这之上一定要绝对没问题才可以,如果有问题,就不要往下安装了,检查前面的错误。

6、安装 Zend Optimizer

进入 D:\Server_Tools 文件夹,双击下载的 ZendOptimizer-3.2.6-Windows-i386.exe 文件,安装过程非常友好,也比较简单,因而此处不再进行截图说明。但需注意以下几点:

(1) Zend Optimzer 的安装目录要指定为 D:\Server_Core\Zend

提前建立好zend文件夹,前面好像我说过了。

(2) 在安装过程中提示 php.ini 的位置是,注意观察是否为 C:\Windows ,如果不是必须手动指定为 C:\Windows

(3) 安装过程中提示 IIS 网站根目录的位置,指定为: D:\wwwroot

这一步别搞错了,是 wwwroot ,而不是wwwroot/bbs,看清楚再点下一步:

Zend Optimizer 安装完成后会自动重启 IIS 服务,重启完成后需要再次打开IE浏览器窗口,查看 phpinfo.php 支持信息,观察是否包含了 Zend Optimizer 支持信息,如果没有,则说明 Zend Optimizer 没有安装成功!

最后,修改 php.ini 文件,将 phpinfo 函数加入到 disable_functions 中。

安全第一,祝大家安装成功!如果有什么问题,请发Email给我,共同研究学习,欢迎联系。

下面附上本人的php.ini ,和 my.ini 的文件配置,供参考。

Php.ini:红色部分是我修改过的,黑色的部分是原版,注意版本,版本不一样位置可能不一样。

[PHP]

;;;;;;;;;;;

; WARNING ;

;;;;;;;;;;;

; This is the default settings file for new PHP installations.

; By default, PHP installs itself with a configuration suitable for

; development purposes, and *NOT* for production purposes.

; For several security-oriented considerations that should be taken

; before going online with your site, please consult php.ini-recommended

; and http://php.net/manual/en/security.php.

;;;;;;;;;;;;;;;;;;;

; About php.ini ;

;;;;;;;;;;;;;;;;;;;

; This file controls many aspects of PHP's behavior. In order for PHP to

; read it, it must be named 'php.ini'. PHP looks for it in the current

; working directory, in the path designated by the environment variable

; PHPRC, and in the path that was defined in compile time (in that order).

; Under Windows, the compile-time path is the Windows directory. The

; path in which the php.ini file is looked for can be overridden using

; the -c argument in command line mode.

;

; The syntax of the file is extremely simple. Whitespace and Lines

; beginning with a semicolon are silently ignored (as you probably guessed).

; Section headers (e.g. [Foo]) are also silently ignored, even though

; they might mean something in the future.

;

; Directives are specified using the following syntax:

; directive = value

; Directive names are *case sensitive* - foo=bar is different from FOO=bar.

;

; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one

; of the INI constants (On, Off, True, False, Yes, No and None) or an expression

; (e.g. E_ALL & ~E_NOTICE), or a quoted string ("foo").

;

; Expressions in the INI file are limited to bitwise operators and parentheses:

; | bitwise OR

; & bitwise AND

; ~ bitwise NOT

; ! boolean NOT

;

; Boolean flags can be turned on using the values 1, On, True or Yes.

; They can be turned off using the values 0, Off, False or No.

;

; An empty string can be denoted by simply not writing anything after the equal

; sign, or by using the None keyword:

;

; foo = ; sets foo to an empty string

; foo = none ; sets foo to an empty string

; foo = "none" ; sets foo to the string 'none'

;

; If you use constants in your value, and these constants belong to a

; dynamically loaded extension (either a PHP extension or a Zend extension),

; you may only use these constants *after* the line that loads the extension.

;

;

;;;;;;;;;;;;;;;;;;;

; About this file ;

;;;;;;;;;;;;;;;;;;;

; All the values in the php.ini-dist file correspond to the builtin

; defaults (that is, if no php.ini is used, or if you delete these lines,

; the builtin defaults will be identical).

;;;;;;;;;;;;;;;;;;;;

; Language Options ;

;;;;;;;;;;;;;;;;;;;;

; Enable the PHP scripting language engine under Apache.

engine = On

; Enable compatibility mode with Zend Engine 1 (PHP 4.x)

zend.ze1_compatibility_mode = Off

; Allow the tags are recognized.

; NOTE: Using short tags should be avoided when developing applications or

; libraries that are meant for redistribution, or deployment on PHP

; servers which are not under your control, because short tags may not

; be supported on the target server. For portable, redistributable code,

; be sure not to use short tags.

short_open_tag = On

; Allow ASP-style <% %> tags.

asp_tags = Off

; The number of significant digits displayed in floating point numbers.

precision = 12

; Enforce year 2000 compliance (will cause problems with non-compliant browsers)

y2k_compliance = On

; Output buffering allows you to send header lines (including cookies) even

; after you send body content, at the price of slowing PHP's output layer a

; bit. You can enable output buffering during runtime by calling the output

; buffering functions. You can also enable output buffering for all files by

; setting this directive to On. If you wish to limit the size of the buffer

; to a certain size - you can use a maximum number of bytes instead of 'On', as

; a value for this directive (e.g., output_buffering=4096).

output_buffering = Off

; You can redirect all of the output of your scripts to a function. For

; example, if you set output_handler to "mb_output_handler", character

; encoding will be transparently converted to the specified encoding.

; Setting any output handler automatically turns on output buffering.

; Note: People who wrote portable scripts should not depend on this ini

; directive. Instead, explicitly set the output handler using ob_start().

; Using this ini directive may cause problems unless you know what script

; is doing.

; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler"

; and you cannot use both "ob_gzhandler" and "zlib.output_compression".

; Note: output_handler must be empty if this is set 'On' !!!!

; Instead you must use zlib.output_handler.

;output_handler =

; Transparent output compression using the zlib library

; Valid values for this option are 'off', 'on', or a specific buffer size

; to be used for compression (default is 4KB)

; Note: Resulting chunk size may vary due to nature of compression. PHP

; outputs chunks that are few hundreds bytes each as a result of

; compression. If you prefer a larger chunk size for better

; performance, enable output_buffering in addition.

; Note: You need to use zlib.output_handler instead of the standard

; output_handler, or otherwise the output will be corrupted.

zlib.output_compression = Off

;zlib.output_compression_level = -1

; You cannot specify additional output handlers if zlib.output_compression

; is activated here. This setting does the same as output_handler but in

; a different order.

;zlib.output_handler =

; Implicit flush tells PHP to tell the output layer to flush itself

; automatically after every output block. This is equivalent to calling the

; PHP function flush() after each and every call to print() or echo() and each

; and every HTML block. Turning this option on has serious performance

; implications and is generally recommended for debugging purposes only.

implicit_flush = Off

; The unserialize callback function will be called (with the undefined class'

; name as parameter), if the unserializer finds an undefined class

; which should be instantiated.

; A warning appears if the specified function is not defined, or if the

; function doesn't include/implement the missing class.

; So only set this entry, if you really want to implement such a

; callback-function.

unserialize_callback_func=

; When floats & doubles are serialized store serialize_precision significant

; digits after the floating point. The default value ensures that when floats

; are decoded with unserialize, the data will remain the same.

serialize_precision = 100

; Whether to enable the ability to force arguments to be passed by reference

; at function call time. This method is deprecated and is likely to be

; unsupported in future versions of PHP/Zend. The encouraged method of

; specifying which arguments should be passed by reference is in the function

; declaration. You're encouraged to try and turn this option Off and make

; sure your scripts work properly with it in order to ensure they will work

; with future versions of the language (you will receive a warning each time

; you use this feature, and the argument will be passed by value instead of by

; reference).

allow_call_time_pass_reference = On

;

; Safe Mode

;

safe_mode = Off

; By default, Safe Mode does a UID compare check when

; opening files. If you want to relax this to a GID compare,

; then turn on safe_mode_gid.

safe_mode_gid = Off

; When safe_mode is on, UID/GID checks are bypassed when

; including files from this directory and its subdirectories.

; (directory must also be in include_path or full path must

; be used when including)

safe_mode_include_dir =

; When safe_mode is on, only executables located in the safe_mode_exec_dir

; will be allowed to be executed via the exec family of functions.

safe_mode_exec_dir =

; Setting certain environment variables may be a potential security breach.

; This directive contains a comma-delimited list of prefixes. In Safe Mode,

; the user may only alter environment variables whose names begin with the

; prefixes supplied here. By default, users will only be able to set

; environment variables that begin with PHP_ (e.g. PHP_FOO=BAR).

;

; Note: If this directive is empty, PHP will let the user modify ANY

; environment variable!

safe_mode_allowed_env_vars = PHP_

; This directive contains a comma-delimited list of environment variables that

; the end user won't be able to change using putenv(). These variables will be

; protected even if safe_mode_allowed_env_vars is set to allow to change them.

safe_mode_protected_env_vars = LD_LIBRARY_PATH

; open_basedir, if set, limits all file operations to the defined directory

; and below. This directive makes most sense if used in a per-directory

; or per-virtualhost web server configuration file. This directive is

; *NOT* affected by whether Safe Mode is turned On or Off.

;open_basedir =

; This directive allows you to disable certain functions for security reasons.

; It receives a comma-delimited list of function names. This directive is

; *NOT* affected by whether Safe Mode is turned On or Off.

disable_functions =phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore

; This directive allows you to disable certain classes for security reasons.

; It receives a comma-delimited list of class names. This directive is

; *NOT* affected by whether Safe Mode is turned On or Off.

disable_classes =

; Colors for Syntax Highlighting mode. Anything that's acceptable in

; would work.

;highlight.string = #DD0000

;highlight.comment = #FF9900

;highlight.keyword = #007700

;highlight.bg = #FFFFFF

;highlight.default = #0000BB

;highlight.html = #000000

; If enabled, the request will be allowed to complete even if the user aborts

; the request. Consider enabling it if executing long request, which may end up

; being interrupted by the user or a browser timing out.

; ignore_user_abort = On

; Determines the size of the realpath cache to be used by PHP. This value should

; be increased on systems where PHP opens many files to reflect the quantity of

; the file operations performed.

; realpath_cache_size=16k

; Duration of time, in seconds for which to cache realpath information for a given

; file or directory. For systems with rarely changing files, consider increasing this

; value.

; realpath_cache_ttl=120

;

; Misc

;

; Decides whether PHP may expose the fact that it is installed on the server

; (e.g. by adding its signature to the Web server header). It is no security

; threat in any way, but it makes it possible to determine whether you use PHP

; on your server or not.

expose_php = On

;;;;;;;;;;;;;;;;;;;

; Resource Limits ;

;;;;;;;;;;;;;;;;;;;

max_execution_time = 30 ; Maximum execution time of each script, in seconds

max_input_time = 60 ; Maximum amount of time each script may spend parsing request data

;max_input_nesting_level = 64 ; Maximum input variable nesting level

memory_limit = 128M ; Maximum amount of memory a script may consume (128MB)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Error handling and logging ;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; error_reporting is a bit-field. Or each number up to get desired error

; reporting level

; E_ALL - All errors and warnings (doesn't include E_STRICT)

; E_ERROR - fatal run-time errors

; E_RECOVERABLE_ERROR - almost fatal run-time errors

; E_WARNING - run-time warnings (non-fatal errors)

; E_PARSE - compile-time parse errors

; E_NOTICE - run-time notices (these are warnings which often result

; from a bug in your code, but it's possible that it was

; intentional (e.g., using an uninitialized variable and

; relying on the fact it's automatically initialized to an

; empty string)

; E_STRICT - run-time notices, enable to have PHP suggest changes

; to your code which will ensure the best interoperability

; and forward compatibility of your code

; E_CORE_ERROR - fatal errors that occur during PHP's initial startup

; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's

; initial startup

; E_COMPILE_ERROR - fatal compile-time errors

; E_COMPILE_WARNING - compile-time warnings (non-fatal errors)

; E_USER_ERROR - user-generated error message

; E_USER_WARNING - user-generated warning message

; E_USER_NOTICE - user-generated notice message

;

; Examples:

;

; - Show all errors, except for notices and coding standards warnings

;

;error_reporting = E_ALL & ~E_NOTICE

;

; - Show all errors, except for notices

;

;error_reporting = E_ALL & ~E_NOTICE | E_STRICT

;

; - Show only errors

;

;error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR

;

; - Show all errors except for notices and coding standards warnings

;

error_reporting = E_ALL

; Print out errors (as a part of the output). For production web sites,

; you're strongly encouraged to turn this feature off, and use error logging

; instead (see below). Keeping display_errors enabled on a production web site

; may reveal security information to end users, such as file paths on your Web

; server, your database schema or other information.

;

; possible values for display_errors:

;

; Off - Do not display any errors

; stderr - Display errors to STDERR (affects only CGI/CLI binaries!)

;

;display_errors = "stderr"

;

; stdout (On) - Display errors to STDOUT

;

display_errors = On

; Even when display_errors is on, errors that occur during PHP's startup

; sequence are not displayed. It's strongly recommended to keep

; display_startup_errors off, except for when debugging.

display_startup_errors = Off

; Log errors into a log file (server-specific log, stderr, or error_log (below))

; As stated above, you're strongly advised to use error logging in place of

; error displaying on production web sites.

log_errors = on

; Set maximum length of log_errors. In error_log information about the source is

; added. The default is 1024 and 0 allows to not apply any maximum length at all.

log_errors_max_len = 1024

; Do not log repeated messages. Repeated errors must occur in same file on same

; line until ignore_repeated_source is set true.

ignore_repeated_errors = Off

; Ignore source of message when ignoring repeated messages. When this setting

; is On you will not log errors with repeated messages from different files or

; source lines.

ignore_repeated_source = Off

; If this parameter is set to Off, then memory leaks will not be shown (on

; stdout or in the log). This has only effect in a debug compile, and if

; error reporting includes E_WARNING in the allowed list

report_memleaks = On

;report_zend_debug = 0

; Store the last error/warning message in $php_errormsg (boolean).

track_errors = Off

; Disable the inclusion of HTML tags in error messages.

; Note: Never use this feature for production boxes.

;html_errors = Off

; If html_errors is set On PHP produces clickable error messages that direct

; to a page describing the error or function causing the error in detail.

; You can download a copy of the PHP manual from http://www.php.net/docs.php

; and change docref_root to the base URL of your local copy including the

; leading '/'. You must also specify the file extension being used including

; the dot.

; Note: Never use this feature for production boxes.

;docref_root = "/phpmanual/"

;docref_ext = .html

; String to output before an error message.

;error_prepend_string = ""

; String to output after an error message.

;error_append_string = ""

; Log errors to specified file.

error_log = "D:/server_core/php/error.log"

; Log errors to syslog (Event Log on NT, not valid in Windows 95).

;error_log = syslog

;;;;;;;;;;;;;;;;;

; Data Handling ;

;;;;;;;;;;;;;;;;;

;

; Note - track_vars is ALWAYS enabled as of PHP 4.0.3

; The separator used in PHP generated URLs to separate arguments.

; Default is "&".

;arg_separator.output = "&"

; List of separator(s) used by PHP to parse input URLs into variables.

; Default is "&".

; NOTE: Every character in this directive is considered as separator!

;arg_separator.input = ";&"

; This directive describes the order in which PHP registers GET, POST, Cookie,

; Environment and Built-in variables (G, P, C, E & S respectively, often

; referred to as EGPCS or GPC). Registration is done from left to right, newer

; values override older values.

variables_order = "EGPCS"

; Whether or not to register the EGPCS variables as global variables. You may

; want to turn this off if you don't want to clutter your scripts' global scope

; with user data. This makes most sense when coupled with track_vars - in which

; case you can access all of the GPC variables through the $HTTP_*_VARS[],

; variables.

;

; You should do your best to write your scripts so that they do not require

; register_globals to be on; Using form variables as globals can easily lead

; to possible security problems, if the code is not very well thought of.

register_globals = Off

; Whether or not to register the old-style input arrays, HTTP_GET_VARS

; and friends. If you're not using them, it's recommended to turn them off,

; for performance reasons.

register_long_arrays = On

; This directive tells PHP whether to declare the argv&argc variables (that

; would contain the GET information). If you don't use these variables, you

; should turn it off for increased performance.

register_argc_argv = On

; When enabled, the SERVER and ENV variables are created when they're first

; used (Just In Time) instead of when the script starts. If these variables

; are not used within a script, having this directive on will result in a

; performance gain. The PHP directives register_globals, register_long_arrays,

; and register_argc_argv must be disabled for this directive to have any affect.

auto_globals_jit = On

; Maximum size of POST data that PHP will accept.

post_max_size = 8M

; Magic quotes

;

; Magic quotes for incoming GET/POST/Cookie data.

magic_quotes_gpc = On

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.

magic_quotes_runtime = Off

; Use Sybase-style magic quotes (escape ' with '' instead of \').

magic_quotes_sybase = Off

; Automatically add files before or after any PHP document.

auto_prepend_file =

auto_append_file =

; As of 4.0b4, PHP always outputs a character encoding by default in

; the Content-type: header. To disable sending of the charset, simply

; set it to be empty.

;

; PHP's built-in default is text/html

default_mimetype = "text/html"

;default_charset = "iso-8859-1"

; Always populate the $HTTP_RAW_POST_DATA variable.

;always_populate_raw_post_data = On

;;;;;;;;;;;;;;;;;;;;;;;;;

; Paths and Directories ;

;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"

;include_path = ".:/php/includes"

;

; Windows: "\path1;\path2"

;include_path = ".;c:\php\includes"

; The root of the PHP pages, used only if nonempty.

; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root

; if you are running php as a CGI under any web server (other than IIS)

; see documentation for security issues. The alternate is to use the

; cgi.force_redirect configuration below

doc_root =

; The directory under which PHP opens the script using /~username used only

; if nonempty.

user_dir =

; Directory in which the loadable extensions (modules) reside.

extension_dir = "d:\Server_Core\PHP\ext"

; Whether or not to enable the dl() function. The dl() function does NOT work

; properly in multithreaded servers, such as IIS or Zeus, and is automatically

; disabled on them.

enable_dl = On

; cgi.force_redirect is necessary to provide security running PHP as a CGI under

; most web servers. Left undefined, PHP turns this on by default. You can

; turn it off here AT YOUR OWN RISK

; **You CAN safely turn this off for IIS, in fact, you MUST.**

; cgi.force_redirect = 1

; if cgi.nph is enabled it will force cgi to always sent Status: 200 with

; every request.

; cgi.nph = 1

; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape

; (iPlanet) web servers, you MAY need to set an environment variable name that PHP

; will look for to know it is OK to continue execution. Setting this variable MAY

; cause security issues, KNOW WHAT YOU ARE DOING FIRST.

; cgi.redirect_status_env = ;

; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's

; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok

; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting

; this to 1 will cause PHP CGI to fix it's paths to conform to the spec. A setting

; of zero causes PHP to behave as before. Default is 1. You should fix your scripts

; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.

; cgi.fix_pathinfo=0

; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate

; security tokens of the calling client. This allows IIS to define the

; security context that the request runs under. mod_fastcgi under Apache

; does not currently support this feature (03/17/2002)

; Set to 1 if running under IIS. Default is zero.

; fastcgi.impersonate = 1;

; Disable logging through FastCGI connection

; fastcgi.logging = 0

; cgi.rfc2616_headers configuration option tells PHP what type of headers to

; use when sending HTTP response code. If it's set 0 PHP sends Status: header that

; is supported by Apache. When this option is set to 1 PHP will send

; RFC2616 compliant header.

; Default is zero.

;cgi.rfc2616_headers = 0

;;;;;;;;;;;;;;;;

; File Uploads ;

;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.

file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not

; specified).

;upload_tmp_dir =

; Maximum allowed size for uploaded files.

upload_max_filesize = 8M

;;;;;;;;;;;;;;;;;;

; Fopen wrappers ;

;;;;;;;;;;;;;;;;;;

; Whether to allow the treatment of URLs (like http:// or ftp://) as files.

allow_url_fopen = On

; Whether to allow include/require to open URLs (like http:// or ftp://) as files.

allow_url_include = Off

; Define the anonymous ftp password (your email address)

;from="john@doe.com"

; Define the User-Agent string

; user_agent="PHP"

; Default timeout for socket based streams (seconds)

default_socket_timeout = 60

; If your scripts have to deal with files from Macintosh systems,

; or you are running on a Mac and need to deal with files from

; unix or win32 systems, setting this flag will cause PHP to

; automatically detect the EOL character in those files so that

; fgets() and file() will work regardless of the source of the file.

; auto_detect_line_endings = Off

;;;;;;;;;;;;;;;;;;;;;;

; Dynamic Extensions ;

;;;;;;;;;;;;;;;;;;;;;;

;

; If you wish to have an extension loaded automatically, use the following

; syntax:

;

; extension=modulename.extension

;

; For example, on Windows:

;

; extension=msql.dll

;

; ... or under UNIX:

;

; extension=msql.so

;

; Note that it should be the name of the module only; no directory information

; needs to go here. Specify the location of the extension with the

; extension_dir directive above.

; Windows Extensions

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

; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)

; extension folders as well as the separate PECL DLL download (PHP 5).

; Be sure to appropriately set the extension_dir directive.

;extension=php_bz2.dll

;extension=php_curl.dll

;extension=php_dba.dll

;extension=php_dbase.dll

;extension=php_exif.dll

;extension=php_fdf.dll

extension=php_gd2.dll

;extension=php_gettext.dll

;extension=php_gmp.dll

;extension=php_ifx.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_msql.dll

;extension=php_mssql.dll

extension=php_mysql.dll

;extension=php_mysqli.dll

;extension=php_oci8.dll

;extension=php_openssl.dll

;extension=php_pdo.dll

;extension=php_pdo_firebird.dll

;extension=php_pdo_mssql.dll

;extension=php_pdo_mysql.dll

;extension=php_pdo_oci.dll

;extension=php_pdo_oci8.dll

;extension=php_pdo_odbc.dll

;extension=php_pdo_pgsql.dll

;extension=php_pdo_sqlite.dll

;extension=php_pgsql.dll

;extension=php_pspell.dll

;extension=php_shmop.dll

;extension=php_snmp.dll

;extension=php_soap.dll

;extension=php_sockets.dll

;extension=php_sqlite.dll

;extension=php_sybase_ct.dll

;extension=php_tidy.dll

;extension=php_xmlrpc.dll

;extension=php_xsl.dll

;extension=php_zip.dll

;;;;;;;;;;;;;;;;;;;

; Module Settings ;

;;;;;;;;;;;;;;;;;;;

[Date]

; Defines the default timezone used by the date functions

;date.timezone =

;date.default_latitude = 31.7667

;date.default_longitude = 35.2333

;date.sunrise_zenith = 90.583333

;date.sunset_zenith = 90.583333

[filter]

;filter.default = unsafe_raw

;filter.default_flags =

[iconv]

;iconv.input_encoding = ISO-8859-1

;iconv.internal_encoding = ISO-8859-1

;iconv.output_encoding = ISO-8859-1

[sqlite]

;sqlite.assoc_case = 0

[xmlrpc]

;xmlrpc_error_number = 0

;xmlrpc_errors = 0

[Pcre]

;PCRE library backtracking limit.

;pcre.backtrack_limit=100000

;PCRE library recursion limit.

;Please note that if you set this value to a high number you may consume all

;the available process stack and eventually crash PHP (due to reaching the

;stack size limit imposed by the Operating System).

;pcre.recursion_limit=100000

[Syslog]

; Whether or not to define the various syslog variables (e.g. $LOG_PID,

; $LOG_CRON, etc.). Turning it off is a good idea performance-wise. In

; runtime, you can define these variables by calling define_syslog_variables().

define_syslog_variables = Off

[mail function]

; For Win32 only.

SMTP = localhost

smtp_port = 25

; For Win32 only.

;sendmail_from = me@example.com

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").

;sendmail_path =

; Force the addition of the specified parameters to be passed as extra parameters

; to the sendmail binary. These parameters will always replace the value of

; the 5th parameter to mail(), even in safe mode.

;mail.force_extra_parameters =

[SQL]

sql.safe_mode = Off

[ODBC]

;odbc.default_db = Not yet implemented

;odbc.default_user = Not yet implemented

;odbc.default_pw = Not yet implemented

; Allow or prevent persistent links.

odbc.allow_persistent = On

; Check that a connection is still valid before reuse.

odbc.check_persistent = On

; Maximum number of persistent links. -1 means no limit.

odbc.max_persistent = -1

; Maximum number of links (persistent + non-persistent). -1 means no limit.

odbc.max_links = -1

; Handling of LONG fields. Returns number of bytes to variables. 0 means

; passthru.

odbc.defaultlrl = 4096

; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char.

; See the documentation on odbc_binmode and odbc_longreadlen for an explanation

; of uodbc.defaultlrl and uodbc.defaultbinmode

odbc.defaultbinmode = 1

[MySQL]

; Allow or prevent persistent links.

mysql.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.

mysql.max_persistent = -1

; Maximum number of links (persistent + non-persistent). -1 means no limit.

mysql.max_links = -1

; Default port number for mysql_connect(). If unset, mysql_connect() will use

; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the

; compile-time value defined MYSQL_PORT (in that order). Win32 will only look

; at MYSQL_PORT.

mysql.default_port =3306

; Default socket name for local MySQL connects. If empty, uses the built-in

; MySQL defaults.

mysql.default_socket =

; Default host for mysql_connect() (doesn't apply in safe mode).

mysql.default_host =localhost

; Default user for mysql_connect() (doesn't apply in safe mode).

mysql.default_user =root

; Default password for mysql_connect() (doesn't apply in safe mode).

; Note that this is generally a *bad* idea to store passwords in this file.

; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password")

; and reveal this password! And of course, any users with read access to this

; file will be able to reveal the password as well.

mysql.default_password =123456

; Maximum time (in seconds) for connect timeout. -1 means no limit

mysql.connect_timeout = 60

; Trace mode. When trace_mode is active (=On), warnings for table/index scans and

; SQL-Errors will be displayed.

mysql.trace_mode = Off

[MySQLi]

; Maximum number of links. -1 means no limit.

mysqli.max_links = -1

; Default port number for mysqli_connect(). If unset, mysqli_connect() will use

; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the

; compile-time value defined MYSQL_PORT (in that order). Win32 will only look

; at MYSQL_PORT.

mysqli.default_port = 3306

; Default socket name for local MySQL connects. If empty, uses the built-in

; MySQL defaults.

mysqli.default_socket =

; Default host for mysql_connect() (doesn't apply in safe mode).

mysqli.default_host =

; Default user for mysql_connect() (doesn't apply in safe mode).

mysqli.default_user =

; Default password for mysqli_connect() (doesn't apply in safe mode).

; Note that this is generally a *bad* idea to store passwords in this file.

; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")

; and reveal this password! And of course, any users with read access to this

; file will be able to reveal the password as well.

mysqli.default_pw =

; Allow or prevent reconnect

mysqli.reconnect = Off

[mSQL]

; Allow or prevent persistent links.

msql.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.

msql.max_persistent = -1

; Maximum number of links (persistent+non persistent). -1 means no limit.

msql.max_links = -1

[OCI8]

; enables privileged connections using external credentials (OCI_SYSOPER, OCI_SYSDBA)

;oci8.privileged_connect = Off

; Connection: The maximum number of persistent OCI8 connections per

; process. Using -1 means no limit.

;oci8.max_persistent = -1

; Connection: The maximum number of seconds a process is allowed to

; maintain an idle persistent connection. Using -1 means idle

; persistent connections will be maintained forever.

;oci8.persistent_timeout = -1

; Connection: The number of seconds that must pass before issuing a

; ping during oci_pconnect() to check the connection validity. When

; set to 0, each oci_pconnect() will cause a ping. Using -1 disables

; pings completely.

;oci8.ping_interval = 60

; Tuning: This option enables statement caching, and specifies how

; many statements to cache. Using 0 disables statement caching.

;oci8.statement_cache_size = 20

; Tuning: Enables statement prefetching and sets the default number of

; rows that will be fetched automatically after statement execution.

;oci8.default_prefetch = 10

; Compatibility. Using On means oci_close() will not close

; oci_connect() and oci_new_connect() connections.

;oci8.old_oci_close_semantics = Off

[PostgresSQL]

; Allow or prevent persistent links.

pgsql.allow_persistent = On

; Detect broken persistent links always with pg_pconnect().

; Auto reset feature requires a little overheads.

pgsql.auto_reset_persistent = Off

; Maximum number of persistent links. -1 means no limit.

pgsql.max_persistent = -1

; Maximum number of links (persistent+non persistent). -1 means no limit.

pgsql.max_links = -1

; Ignore PostgreSQL backends Notice message or not.

; Notice message logging require a little overheads.

pgsql.ignore_notice = 0

; Log PostgreSQL backends Noitce message or not.

; Unless pgsql.ignore_notice=0, module cannot log notice message.

pgsql.log_notice = 0

[Sybase]

; Allow or prevent persistent links.

sybase.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.

sybase.max_persistent = -1

; Maximum number of links (persistent + non-persistent). -1 means no limit.

sybase.max_links = -1

;sybase.interface_file = "/usr/sybase/interfaces"

; Minimum error severity to display.

sybase.min_error_severity = 10

; Minimum message severity to display.

sybase.min_message_severity = 10

; Compatibility mode with old versions of PHP 3.0.

; If on, this will cause PHP to automatically assign types to results according

; to their Sybase type, instead of treating them all as strings. This

; compatibility mode will probably not stay around forever, so try applying

; whatever necessary changes to your code, and turn it off.

sybase.compatability_mode = Off

[Sybase-CT]

; Allow or prevent persistent links.

sybct.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.

sybct.max_persistent = -1

; Maximum number of links (persistent + non-persistent). -1 means no limit.

sybct.max_links = -1

; Minimum server message severity to display.

sybct.min_server_severity = 10

; Minimum client message severity to display.

sybct.min_client_severity = 10

[bcmath]

; Number of decimal digits for all bcmath functions.

bcmath.scale = 0

[browscap]

;browscap = extra/browscap.ini

[Informix]

; Default host for ifx_connect() (doesn't apply in safe mode).

ifx.default_host =

; Default user for ifx_connect() (doesn't apply in safe mode).

ifx.default_user =

; Default password for ifx_connect() (doesn't apply in safe mode).

ifx.default_password =

; Allow or prevent persistent links.

ifx.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.

ifx.max_persistent = -1

; Maximum number of links (persistent + non-persistent). -1 means no limit.

ifx.max_links = -1

; If on, select statements return the contents of a text blob instead of its id.

ifx.textasvarchar = 0

; If on, select statements return the contents of a byte blob instead of its id.

ifx.byteasvarchar = 0

; Trailing blanks are stripped from fixed-length char columns. May help the

; life of Informix SE users.

ifx.charasvarchar = 0

; If on, the contents of text and byte blobs are dumped to a file instead of

; keeping them in memory.

ifx.blobinfile = 0

; NULL's are returned as empty strings, unless this is set to 1. In that case,

; NULL's are returned as string 'NULL'.

ifx.nullformat = 0

[Session]

; Handler used to store/retrieve data.

session.save_handler = files

; Argument passed to save_handler. In the case of files, this is the path

; where data files are stored. Note: Windows users have to change this

; variable in order to use PHP's session functions.

;

; As of PHP 4.0.1, you can define the path as:

;

; session.save_path = "N;/path"

;

; where N is an integer. Instead of storing all the session files in

; /path, what this will do is use subdirectories N-levels deep, and

; store the session data in those directories. This is useful if you

; or your OS have problems with lots of files in one directory, and is

; a more efficient layout for servers that handle lots of sessions.

;

; NOTE 1: PHP will not create this directory structure automatically.

; You can use the script in the ext/session dir for that purpose.

; NOTE 2: See the section on garbage collection below if you choose to

; use subdirectories for session storage

;

; The file storage module creates files using mode 600 by default.

; You can change that by using

;

; session.save_path = "N;MODE;/path"

;

; where MODE is the octal representation of the mode. Note that this

; does not overwrite the process's umask.

;session.save_path = "/tmp"

; Whether to use cookies.

session.use_cookies = 1

;session.cookie_secure =

; This option enables administrators to make their users invulnerable to

; attacks which involve passing session ids in URLs; defaults to 0.

; session.use_only_cookies = 1

; Name of the session (used as cookie name).

session.name = PHPSESSID

; Initialize session on request startup.

session.auto_start = 0

; Lifetime in seconds of cookie or, if 0, until browser is restarted.

session.cookie_lifetime = 0

; The path for which the cookie is valid.

session.cookie_path = /

; The domain for which the cookie is valid.

session.cookie_domain =

; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript.

session.cookie_httponly =

; Handler used to serialize data. php is the standard serializer of PHP.

session.serialize_handler = php

; Define the probability that the 'garbage collection' process is started

; on every session initialization.

; The probability is calculated by using gc_probability/gc_divisor,

; e.g. 1/100 means there is a 1% chance that the GC process starts

; on each request.

session.gc_probability = 1

session.gc_divisor = 100

; After this number of seconds, stored data will be seen as 'garbage' and

; cleaned up by the garbage collection process.

session.gc_maxlifetime = 1440

; NOTE: If you are using the subdirectory option for storing session files

; (see session.save_path above), then garbage collection does *not*

; happen automatically. You will need to do your own garbage

; collection through a shell script, cron entry, or some other method.

; For example, the following script would is the equivalent of

; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):

; cd /path/to/sessions; find -cmin +24 | xargs rm

; PHP 4.2 and less have an undocumented feature/bug that allows you to

; to initialize a session variable in the global scope, albeit register_globals

; is disabled. PHP 4.3 and later will warn you, if this feature is used.

; You can disable the feature and the warning separately. At this time,

; the warning is only displayed, if bug_compat_42 is enabled.

session.bug_compat_42 = 1

session.bug_compat_warn = 1

; Check HTTP Referer to invalidate externally stored URLs containing ids.

; HTTP_REFERER has to contain this substring for the session to be

; considered as valid.

session.referer_check =

; How many bytes to read from the file.

session.entropy_length = 0

; Specified here to create the session id.

session.entropy_file =

;session.entropy_length = 16

;session.entropy_file = /dev/urandom

; Set to {nocache,private,public,} to determine HTTP caching aspects

; or leave this empty to avoid sending anti-caching headers.

session.cache_limiter = nocache

; Document expires after n minutes.

session.cache_expire = 180

; trans sid support is disabled by default.

; Use of trans sid may risk your users security.

; Use this option with caution.

; - User may send URL contains active session ID

; to other person via. email/irc/etc.

; - URL that contains active session ID may be stored

; in publically accessible computer.

; - User may access your site with the same session ID

; always using URL stored in browser's history or bookmarks.

session.use_trans_sid = 0

; Select a hash function

; 0: MD5 (128 bits)

; 1: SHA-1 (160 bits)

session.hash_function = 0

; Define how many bits are stored in each character when converting

; the binary hash data to something readable.

;

; 4 bits: 0-9, a-f

; 5 bits: 0-9, a-v

; 6 bits: 0-9, a-z, A-Z, "-", ","

session.hash_bits_per_character = 4

; The URL rewriter will look for URLs in a defined set of HTML tags.

; form/fieldset are special; if you include them here, the rewriter will

; add a hidden field with the info which is otherwise appended

; to URLs. If you want XHTML conformity, remove the form entry.

; Note that all valid entries require a "=", even if no value follows.

url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="

[MSSQL]

; Allow or prevent persistent links.

mssql.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.

mssql.max_persistent = -1

; Maximum number of links (persistent+non persistent). -1 means no limit.

mssql.max_links = -1

; Minimum error severity to display.

mssql.min_error_severity = 10

; Minimum message severity to display.

mssql.min_message_severity = 10

; Compatibility mode with old versions of PHP 3.0.

mssql.compatability_mode = Off

; Connect timeout

;mssql.connect_timeout = 5

; Query timeout

;mssql.timeout = 60

; Valid range 0 - 2147483647. Default = 4096.

;mssql.textlimit = 4096

; Valid range 0 - 2147483647. Default = 4096.

;mssql.textsize = 4096

; Limits the number of records in each batch. 0 = all records in one batch.

;mssql.batchsize = 0

; Specify how datetime and datetim4 columns are returned

; On => Returns data converted to SQL server settings

; Off => Returns values as YYYY-MM-DD hh:mm:ss

;mssql.datetimeconvert = On

; Use NT authentication when connecting to the server

mssql.secure_connection = Off

; Specify max number of processes. -1 = library default

; msdlib defaults to 25

; FreeTDS defaults to 4096

;mssql.max_procs = -1

; Specify client character set.

; If empty or not set the client charset from freetds.comf is used

; This is only used when compiled with FreeTDS

;mssql.charset = "ISO-8859-1"

[Assertion]

; Assert(expr); active by default.

;assert.active = On

; Issue a PHP warning for each failed assertion.

;assert.warning = On

; Don't bail out by default.

;assert.bail = Off

; User-function to be called if an assertion fails.

;assert.callback = 0

; Eval the expression with current error_reporting(). Set to true if you want

; error_reporting(0) around the eval().

;assert.quiet_eval = 0

[COM]

; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs

;com.typelib_file =

; allow Distributed-COM calls

;com.allow_dcom = true

; autoregister constants of a components typlib on com_load()

;com.autoregister_typelib = true

; register constants casesensitive

;com.autoregister_casesensitive = false

; show warnings on duplicate constant registrations

;com.autoregister_verbose = true

[mbstring]

; language for internal character representation.

;mbstring.language = Japanese

; internal/script encoding.

; Some encoding cannot work as internal encoding.

; (e.g. SJIS, BIG5, ISO-2022-*)

;mbstring.internal_encoding = EUC-JP

; http input encoding.

;mbstring.http_input = auto

; http output encoding. mb_output_handler must be

; registered as output buffer to function

;mbstring.http_output = SJIS

; enable automatic encoding translation according to

; mbstring.internal_encoding setting. Input chars are

; converted to internal encoding by setting this to On.

; Note: Do _not_ use automatic encoding translation for

; portable libs/applications.

;mbstring.encoding_translation = Off

; automatic encoding detection order.

; auto means

;mbstring.detect_order = auto

; substitute_character used when character cannot be converted

; one from another

;mbstring.substitute_character = none;

; overload(replace) single byte functions by mbstring functions.

; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),

; etc. Possible values are 0,1,2,4 or combination of them.

; For example, 7 for overload everything.

; 0: No overload

; 1: Overload mail() function

; 2: Overload str*() functions

; 4: Overload ereg*() functions

;mbstring.func_overload = 0

[FrontBase]

;fbsql.allow_persistent = On

;fbsql.autocommit = On

;fbsql.show_timestamp_decimals = Off

;fbsql.default_database =

;fbsql.default_database_password =

;fbsql.default_host =

;fbsql.default_password =

;fbsql.default_user = "_SYSTEM"

;fbsql.generate_warnings = Off

;fbsql.max_connections = 128

;fbsql.max_links = 128

;fbsql.max_persistent = -1

;fbsql.max_results = 128

[gd]

; Tell the jpeg decode to libjpeg warnings and try to create

; a gd image. The warning will then be displayed as notices

; disabled by default

;gd.jpeg_ignore_warning = 0

[exif]

; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS.

; With mbstring support this will automatically be converted into the encoding

; given by corresponding encode setting. When empty mbstring.internal_encoding

; is used. For the decode settings you can distinguish between motorola and

; intel byte order. A decode setting cannot be empty.

;exif.encode_unicode = ISO-8859-15

;exif.decode_unicode_motorola = UCS-2BE

;exif.decode_unicode_intel = UCS-2LE

;exif.encode_jis =

;exif.decode_jis_motorola = JIS

;exif.decode_jis_intel = JIS

[Tidy]

; The path to a default tidy configuration file to use when using tidy

;tidy.default_config = /usr/local/lib/php/default.tcfg

; Should tidy clean and repair output automatically?

; WARNING: Do not use this option if you are generating non-html content

; such as dynamic images

tidy.clean_output = Off

[soap]

; Enables or disables WSDL caching feature.

soap.wsdl_cache_enabled=1

; Sets the directory name where SOAP extension will put cache files.

soap.wsdl_cache_dir="/tmp"

; (time to live) Sets the number of second while cached file will be used

; instead of original one.

soap.wsdl_cache_ttl=86400

; Local Variables:

; tab-width: 4

; End:

[Zend]

zend_extension_manager.optimizer_ts="D:\server_tools\zend\lib\Optimizer-3.3.0"

zend_extension_ts="D:\server_tools\zend\lib\ZendExtensionManager.dll"

Zend 的部分是 安装配置完 Zend 系统自己加上的,不用手动加,如果安装完Zend,系统没有加上这两行,说明,你在指定php.ini文件的时候路径不对,检查后可以重新安装Zend

My.ini

# MySQL Server Instance Configuration File

# ----------------------------------------------------------------------

# Generated by the MySQL Server Instance Configuration Wizard

#

#

# Installation Instructions

# ----------------------------------------------------------------------

#

# On Linux you can copy this file to /etc/my.cnf to set global options,

# mysql-data-dir/my.cnf to set server-specific options

# (@localstatedir@ for this installation) or to

# ~/.my.cnf to set user-specific options.

#

# On Windows you should keep this file in the installation directory

# of your server (e.g. C:\Program Files\MySQL\MySQL Server X.Y). To

# make sure the server reads the config file use the startup option

# "--defaults-file".

#

# To run run the server from the command line, execute this in a

# command line shell, e.g.

# mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini"

#

# To install the server as a Windows service manually, execute this in a

# command line shell, e.g.

# mysqld --install MySQLXY --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini"

#

# And then execute this in a command line shell to start the server, e.g.

# net start MySQLXY

#

#

# Guildlines for editing this file

# ----------------------------------------------------------------------

#

# In this file, you can use all long options that the program supports.

# If you want to know the options a program supports, start the program

# with the "--help" option.

#

# More detailed information about the individual options can also be

# found in the manual.

#

#

# CLIENT SECTION

# ----------------------------------------------------------------------

#

# The following options will be read by MySQL client applications.

# Note that only client applications shipped by MySQL are guaranteed

# to read this section. If you want your own MySQL client program to

# honor these values, you need to specify it as an option during the

# MySQL client library initialization.

#

[client]

port=3306

[mysql]

default-character-set=gbk

# SERVER SECTION

# ----------------------------------------------------------------------

#

# The following options will be read by the MySQL Server. Make sure that

# you have installed the server correctly (see above) so it reads this

# file.

#

[mysqld]

# The TCP/IP Port the MySQL Server will listen on

port=3306

#Path to installation directory. All paths are usually resolved relative to this.

basedir="D:/server_core/mysql/"

#Path to the database root

datadir="D:/Database/"

# The default character set that will be used when a new schema or table is

# created and no character set is defined

default-character-set=gbk

# The default storage engine that will be used when create new tables when

default-storage-engine=MYISAM

# The maximum amount of concurrent sessions the MySQL server will

# allow. One of these connections will be reserved for a user with

# SUPER privileges to allow the administrator to login even if the

# connection limit has been reached.

max_connections=310

# Query cache is used to cache SELECT results and later return them

# without actual executing the same query once again. Having the query

# cache enabled may result in significant speed improvements, if your

# have a lot of identical queries and rarely changing tables. See the

# "Qcache_lowmem_prunes" status variable to check if the current value

# is high enough for your load.

# Note: In case your tables change very often or if your queries are

# textually different every time, the query cache may result in a

# slowdown instead of a performance improvement.

query_cache_size=15M

# The number of open tables for all threads. Increasing this value

# increases the number of file descriptors that mysqld requires.

# Therefore you have to make sure to set the amount of open files

# allowed to at least 4096 in the variable "open-files-limit" in

# section [mysqld_safe]

table_cache=620

# Maximum size for internal (in-memory) temporary tables. If a table

# grows larger than this value, it is automatically converted to disk

# based table This limitation is for a single table. There can be many

# of them.

tmp_table_size=16M

# How many threads we should keep in a cache for reuse. When a client

# disconnects, the client's threads are put in the cache if there aren't

# more than thread_cache_size threads from before. This greatly reduces

# the amount of thread creations needed if you have a lot of new

# connections. (Normally this doesn't give a notable performance

# improvement if you have a good thread implementation.)

thread_cache_size=15

#*** MyISAM Specific options

# The maximum size of the temporary file MySQL is allowed to use while

# recreating the index (during REPAIR, ALTER TABLE or LOAD DATA INFILE.

# If the file-size would be bigger than this, the index will be created

# through the key cache (which is slower).

myisam_max_sort_file_size=100G

# If the temporary file used for fast index creation would be bigger

# than using the key cache by the amount specified here, then prefer the

# key cache method. This is mainly used to force long character keys in

# large tables to use the slower key cache method to create the index.

myisam_sort_buffer_size=13M

# Size of the Key Buffer, used to cache index blocks for MyISAM tables.

# Do not set it larger than 30% of your available memory, as some memory

# is also required by the OS to cache rows. Even if you're not using

# MyISAM tables, you should still set it to 8-64M as it will also be

# used for internal temporary disk tables.

key_buffer_size=44M

# Size of the buffer used for doing full table scans of MyISAM tables.

# Allocated per thread, if a full scan is needed.

read_buffer_size=64K

read_rnd_buffer_size=256K

# This buffer is allocated when MySQL needs to rebuild the index in

# REPAIR, OPTIMZE, ALTER table statements as well as in LOAD DATA INFILE

# into an empty table. It is allocated per thread so be careful with

# large settings.

sort_buffer_size=256K

#*** INNODB Specific options ***

# Use this option if you have a MySQL server with InnoDB support enabled

# but you do not plan to use it. This will save memory and disk space

# and speed up some things.

skip-innodb

# Additional memory pool that is used by InnoDB to store metadata

# information. If InnoDB requires more memory for this purpose it will

# start to allocate it from the OS. As this is fast enough on most

# recent operating systems, you normally do not need to change this

# value. SHOW INNODB STATUS will display the current amount used.

innodb_additional_mem_pool_size=2M

# If set to 1, InnoDB will flush (fsync) the transaction logs to the

# disk at each commit, which offers full ACID behavior. If you are

# willing to compromise this safety, and you are running small

# transactions, you may set this to 0 or 2 to reduce disk I/O to the

# logs. Value 0 means that the log is only written to the log file and

# the log file flushed to disk approximately once per second. Value 2

# means the log is written to the log file at each commit, but the log

# file is only flushed to disk approximately once per second.

innodb_flush_log_at_trx_commit=1

# The size of the buffer InnoDB uses for buffering log data. As soon as

# it is full, InnoDB will have to flush it to disk. As it is flushed

# once per second anyway, it does not make sense to have it very large

# (even with long transactions).

innodb_log_buffer_size=1M

# InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and

# row data. The bigger you set this the less disk I/O is needed to

# access data in tables. On a dedicated database server you may set this

# parameter up to 80% of the machine physical memory size. Do not set it

# too large, though, because competition of the physical memory may

# cause paging in the operating system. Note that on 32bit systems you

# might be limited to 2-3.5G of user level memory per process, so do not

# set it too high.

innodb_buffer_pool_size=8M

# Size of each log file in a log group. You should set the combined size

# of log files to about 25%-100% of your buffer pool size to avoid

# unneeded buffer pool flush activity on log file overwrite. However,

# note that a larger logfile size will increase the time needed for the

# recovery process.

innodb_log_file_size=10M

# Number of threads allowed inside the InnoDB kernel. The optimal value

# depends highly on the application, hardware as well as the OS

# scheduler properties. A too high value may lead to thread thrashing.

innodb_thread_concurrency=8

所有的问题应该都可以解决了,还要补充说明的问题:

1、 注意如果更改了php.ini 的配置,最好是重启系统,所以尽量做到一次配置全面和成功。

2、 My.ini 如果配置变了,需要重启mysql

3、 网站的属性有些配置变了,最好是重启IIS,才能看出来效果。

Win2003+IIS+Mysql+PHP+Zend - 环境调试技术

相关推荐