Archive for ‘ 4月, 2010

php.ini配置

php.ini配置
把php.ini里的 display_errors = On 打开才可以显示语法的错误提示。
php.ini配置文件中文详细解释

;;;;;;;;;;;
; 警告 ;
;;;;;;;;;;;
; 此配置文件是对于新安装的PHP的默认设置.
;
; 此配置针对开发目的,并且*不是*针对生产环境
; 基于一些安全方面的考虑,在你的网站上线之前,请考虑使用php.ini-recommended
; 以及在线文档 http://php.net/manual/en/security.php.

;;;;;;;;;;;;;;;;;;;
; 关于 php.ini   ;
;;;;;;;;;;;;;;;;;;;
; 此文件控制了PHP行为的很多方面.  为了让PHP能够读取它
; 必须命名为 ‘php.ini’.  PHP 在其当前工作目录,由PHPRC环境变量指定目录
; 以及由编译时指定的目录(按此顺序)查找此文件
; 在Windows环境下, 编译时目录是Windows目录.
; 在命令行模式下查找php.ini的目录可以被-c参数覆盖.
;
; 此文件的语法非常简单.
; 空行和由分号开始的行会被忽略(你可能已经猜到了).
; 段的开头(例如 [Foo]) 同样会被悄悄忽略
; 即使在将来他们可能会有其他作用.
;
; 使用以下语法来设定指令:
; directive = value
; 指令 = 值
; 指令名称是 *大小写敏感* – foo=bar 和 FOO=bar 是不同的.
;
; 值可以是字符串,数值,PHP常量 (例如 E_ALL 和 M_PI),
; INI 常量 (On, Off, True, False, Yes, No 和 None) 或者一个表达式
; (例如 E_ALL & ~E_NOTICE), 或者带引号的字串 (“foo”).
;
; 在INI文件中的表达式只能使用逻辑运算和圆括号:
; |        逻辑或
; &       逻辑与
; ~       逻辑非
; !        取反
;
; 逻辑标志可以使用1,On,True或者Yes来打开.
; 也可以使用0, Off, False 或者 No来关闭.
;
; 在等号后面不写任何内容代表了一个空字符串
; 或者使用 None 关键词:
;
;  foo =         ; 将foo设置成一个空字串
;  foo = none    ; 将foo设置成一个空字串
;  foo = “none”  ; 将foo设置成字串 ‘none’
;
; 如果你在值中使用了常量, 并且这个常量属于一个动态加载的扩展模块
; (不论是PHP扩展还是Zend扩展),
; 那你只能在加载这些扩展 *之后* 使用这些常量.
;
;
;;;;;;;;;;;;;;;;;;;
; 关于这个文件  ;
;;;;;;;;;;;;;;;;;;;
; 在php.ini-dist 文件中所有的值都相当于内建的默认值
; (就是如果没有使用php.ini, 或者如果你删除了这些行,
; 就和内建的默认值一样).

;;;;;;;;;;;;;;;;;;;;
; 语言选项 ;
;;;;;;;;;;;;;;;;;;;;

; 打开在Apache下的PHP脚本语言引擎
engine = On

; 打开Zend Engine兼容模式(PHP 4.x)
zend.ze1_compatibility_mode = Off

; 允许 <? 标签.  否则,只有 <?php 和 <script> 标签被认为是PHP脚本.
; 注意: 尽可能避免在开发可重新发布的程序或者库的时候使用简略标签,或者在不受你控制的服务器下发布,
; 因为简略标签可能不被目标服务器支持.为了可移植性, 可重新发布的代码, 请不要使用简略标签
short_open_tag = On

; 使用ASP风格 <% %> 标签.
asp_tags = Off

; 浮点数中数值的有效位数(浮点数精度).
precision    =  12

; 强制2000年兼容 (可能引起不兼容浏览器的问题)
y2k_compliance = On

; 输出缓冲允许在你发送了body内容之后发送header(包括 cookies)
; 代价是稍稍减缓了PHP输出层
; 你可以在运行时调用 output buffering 函数来打开此功能
; 你也可以将此指令设置为On来对所有文件打开输出缓冲
; 如果你想将这个缓冲区限制到特定大小 – 你可以使用最大的字节数来代替’On’,来作为这个指令的参数 (例如 output_buffering=4096).
output_buffering = Off

; 你可以将所有你脚本输出的内容重定向到指定函数.
; 例如, 如果你设置 output_handler 到 “mb_output_handler”,
; 字符编码会被转换成为指定的编码..
; 设置任何的输出处理句柄会自动打开输出缓冲.
; 注意: 如果想编写可移植脚本就不要依赖此INI配置
;       取而代之的是, 明确的使用 ob_start() 来设置输出处理句柄.
;       使用此ini指令可能引起问题,除非你很清楚的理解脚本正在做什么.
; 注意: 你不能同时使用 “mb_output_handler” 和 “ob_iconv_handler”
;       并且你不能同时使用 “ob_gzhandler” 和 “zlib.output_compression”.
; 注意: 如果使用zlib.output_handler指令开启zlib输出压缩, 该指令必须为空.
;output_handler =

; 使用zlib库对输出进行压缩
; 对此选项的有效值是 ‘off’, ‘on’, 或者字节数 (用来压缩的缓冲大小 , 默认是 4KB)
; 注意: 结果的chunk大小可能由于压缩对象的大小而不同.
;       PHP输出块的大小一般压缩之后每个大小时几百个字节.
;       如果你希望藉由一个大块的堆大小来获取更好的性能, 需要额外的打开 output_buffering 选项.
; 注意: 你必须使用 zlib.output_handler 来替代标准的
;       output_handler, 否则输出可能会有问题.
zlib.output_compression = Off
;zlib.output_compression_level = -1

; 这里激活 zlib.output_compression 之后,你无法再指定额外的输出处理.
; 这个设置和 output_handler 一样,但是处理顺序不同.
;zlib.output_handler =

; 立即刷新告知 PHP 让输出层在每次输出块之后立刻自动刷新.
; 这和每次调用print()或者echo()函数以及任何一种HTML块后调用flush()一样.
; 打开此选项会严重导致性能下降,一般只有用于调试情况下才建议打开.
implicit_flush = Off

; 如果反序列器找到一个可以作为示例的未定义类.未序列化的回调函数会被调用(使用未定义的类名作为参数),
; 如果特定的函数未被定义或者如果此函数没有包含/实现丢失的类,则会发生一个警告.
; 如果只有你真想要实现类似的回调函数,才设定此入口.
unserialize_callback_func=

; 当浮点和双精度被序列化后,浮点号后由 serialize_precision 指定存储精确度的有效位数.
; 默认值是当浮点数被反序列解码后,数值仍旧相同.
serialize_precision = 100

; 是否打开强制通过引用传递参数给函数
; 此方法被反对并且很有可能在未来版本的PHP/Zend中不再被支持.
; 被孤立的指定的方法是参数应该在函数被声明的时候按照引用传入.
; 你被鼓励来尝试上述方法并关闭此选项来确保你脚本在今后的新版本中仍旧可以正常工作 ( 每次你使用此特性的时候会受到一个警告
; 并且参数会传值而不是传引用).
allow_call_time_pass_reference = On

;
; 安全模式
;
safe_mode = Off

; 默认情况下,安全模式在打开文件时,使用UID来比对检测.
; 如果你只想使用GID做宽松的比对,
; 打开 safe_mode_gid.
safe_mode_gid = Off

; 当 safe_mode 被打开, 此目录下包含的文件和子文件夹的UID/GID 检测会被绕过.
; (目录必须在 include_path 中存在或者必须在包含时使用全路径)
safe_mode_include_dir =

; 当 safe_mode 被打开, 只有在 safe_mode_exec_dir 中定义的可执行文件能够通过exec函数组打开执行.
safe_mode_exec_dir =

; 设定某些的环境变量可能成为潜在的安全隐患.
; 此指令包含一个逗号分隔的前导列表.
; 在安全模式中, 用户可能只能改变符合这里所给出前导字符的变量.
; 默认情况下,用户只能改变以PHP_开头的变量(例如. PHP_FOO=BAR).
;
; 注意:  如果此指令为空, PHP会允许用户修改任何环境变量!
safe_mode_allowed_env_vars = PHP_

; 此指令包含了一个用逗号分隔的环境变量列表, 用户无法通过 putenv() 函数来修改列表中的环境变量.
; 这些变量即便已经在 safe_mode_allowed_env_vars 所设定的列表中,也会被被保护不允许修改.
safe_mode_protected_env_vars = LD_LIBRARY_PATH

; 如果设置了open_basedir, 将会限制文件操作只能是此指令下的目录和子目录.
; 此指令对于每目录或者每虚拟主机配置文件最有意义. 此指令* 不会 *受安全模式开或者关的影响.
;open_basedir =

; 此指令允许你为了安全原因关闭指定的函数.
; 它接受以逗号分隔的函数名的列表.
; 此指令* 不会 *受安全模式开或者关的影响.
disable_functions =

; 此指令允许你由于安全原因关闭指定的类.
; 它接受以逗号分隔的类名的列表.
; 此指令* 不会 *受安全模式开或者关的影响.
disable_classes =

; 语法高亮模式的色彩. 任何在 <span style=”color: ???????”> 中可接受的值都可以使用.
;highlight.string  = #DD0000
;highlight.comment = #FF9900
;highlight.keyword = #007700
;highlight.bg      = #FFFFFF
;highlight.default = #0000BB
;highlight.html    = #000000

; 如果打开, 即便用户放弃了的请求也会被执行完成.
; 在执行可能被用户打断或者浏览器超时所中断的请求时打开此选项.
; ignore_user_abort = On

; 指定PHP使用的实际路径的缓冲. 对于PHP打开很多文件来处理很多文件操作的系统上,应该增加此值.
; realpath_cache_size=16k

; 对于给定文件或者目录的缓冲真实路径信息的缓冲保留秒数. 对于很少修改文件的系统可以考虑增加此值.
; realpath_cache_ttl=120

;
; 其他
;
; 考虑到PHP可能被其所安装的服务器上暴露的事实(例如. 被web服务器作为头部信息的签名).
; 任何情况下这虽然不是安全威胁, 仍有可能暴露在你的服务器上是否正在使用PHP.
expose_php = On

;;;;;;;;;;;;;;;;;;;
; 资源限制 ;
;;;;;;;;;;;;;;;;;;;

; 每个脚本最大执行秒数
max_execution_time = 30
; 每个脚本用来分析请求数据的最大时间
max_input_time = 60
; 最大输入变量的嵌套级别
;max_input_nesting_level = 64
; 每个脚本能够使用的最大内存数量 (128MB)
memory_limit = 128M

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 错误处理和记录 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; 错误报告时一个位. 对每一个数值取或可以得到最终的报告级别
; E_ALL             – 所有错误和警告 (不包含 E_STRICT)
; E_ERROR           – 致命的运行时错误
; E_RECOVERABLE_ERROR  – 几乎致命的运行时错误
; E_WARNING         – 运行时警告 (非致命错误)
; E_PARSE           – 编译时语法错误
; E_NOTICE          – 运行时提醒 (这些警告常常由你代码中的bug导致, 但是也有可能是有意的行为 (例如, 使用一个未初始化的变量并依赖于其会被自动初始化成为一个空字符串的事实)
; E_STRICT          – 运行时提醒, 打开后PHP会给出针对你代码的最易移植和最好向后兼容性的建议
; E_CORE_ERROR      – PHP初始化启动时的致命错误
; E_CORE_WARNING    – 在PHP初始化时发生的警告 (非致命错误)
; E_COMPILE_ERROR   – 致命的编译时错误
; E_COMPILE_WARNING – 编译时警告 (非致命)
; E_USER_ERROR      – 用户产生的错误信息
; E_USER_WARNING    – 用户产生的警告信息
; E_USER_NOTICE     – 用户产生的提示信息
;
;例子:
;
;   – 显示所有错误, 除了提示以及代码标准警告以外
;
;error_reporting = E_ALL & ~E_NOTICE
;
;   – 显示所有错误,除了提示以外
;
;error_reporting = E_ALL & ~E_NOTICE | E_STRICT
;
;   – 只显示错误
;
;error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
;
;   – 显示出了提示以及代码标准警告之外的错误
;
error_reporting  =  E_ALL & ~E_NOTICE

; 打印输出错误 (作为输出的一部分).  对于生产环境的网站来说,
; 强烈建议你关闭此选项, 使用错误日志来替代 (详情参考下面内容).
; 在一个生产环境下的web站点打开display_errors可能泄漏安全信息给最终用户, 例如web服务器的文件路径,你数据库的结构或者其他信息.
;
; display_errors可用的值:
;
; Off        – 不显示任何错误信息
; stderr     – 将错误信息输出到STDERR (只有 CGI/CLI 格式下有效!)
;
;display_errors = “stderr”
;
; stdout (On) – 输出错误信息到STDOUT上
;
display_errors = On

; 即使 display_errors 打开后,PHP启动序列中发生的错误也不会显示.
; 强烈建议你保持 display_startup_errors 关闭状态, 除非在排错
display_startup_errors = Off

; 将错误输入到日志文件 (服务器指定的log,stderr或者error_log (以下指定))
; 和上面提到的一样, 强烈建议你在生产环境的web站点下使用错误日志来代替错误显示.
log_errors = Off

; 设定log_errors的最大长度. 在 error_log 关于源的信息也计算在内.
; 默认是1024, 设置为0可以不限制任何最大长度.
log_errors_max_len = 1024

; 不要记录重复的信息.必须出现在同样文件的相同行之中的才被认为是重复信息,除非 ignore_repeated_source 被设为 true.
ignore_repeated_errors = Off

; 当忽略重复消息时忽略消息的来源. 当此设置打开后,不再记录来自不同文件或者不同行的相同消息.
ignore_repeated_source = Off

; 如果此选项被设置为 Off, 那么内存泄漏不会被显示 (不论在stdout还是在日志中).
; 此项仅在debug编译模式下有效, 并且错误报告需要包含 E_WARNING
report_memleaks = On

;report_zend_debug = 0

; 在$php_errormsg中保存最后一次错误/警告消息 (逻辑值).
track_errors = Off

; 关闭在错误信息中所包含的HTML标签.
; 注意: 永远不要再生产环境中使用此特性.
;html_errors = Off

; 如果html_errors 设置为On, 则PHP产生可点击的错误信息,点击后会跳转到描述此错误或者引起此错误的函数具体信息的页面.
; 你可以从 http://www.php.net/docs.php 下载一份PHP手册的副本
; 并且将 docref_root指向你放置本地拷贝的以’/'开头的.
; 你同时必须指定文件文件的包含点的扩展名.
; 注意: 永远不要再生产环境中使用此特性.
;docref_root = “/phpmanual/”
;docref_ext = .html

; 在输出的错误信息前加上的字符串.
;error_prepend_string = “<font color=#ff0000>”

; 在输出的错误信息之后加上的字符串.
;error_append_string = “</font>”

; 将错误记录到指定文件.
;error_log = filename

; 将错误记录到 syslog (NT系统上的Event Log在Windows 95下不可用).
;error_log = syslog

;;;;;;;;;;;;;;;;;
; 文件处理 ;
;;;;;;;;;;;;;;;;;
;
; 注意 – track_vars 在PHP 4.0.3 中总是打开的

; 在PHP产生的URL中用来分隔参数的符号.
; 默认是 “&”.
;arg_separator.output = “&”

; PHP用来将URL分割输入到变量中的分隔符.
; 默认是 “&”.
; 注意: 所有包含在指令内的字符都会被认为是分隔符!
;arg_separator.input = “;&”

; 此指令描述了PHP注册GET, POST, Cookie, 环境 和 内置变量的顺序  (各自使用G, P, C, E 和 S , 一般使用 EGPCS 或 GPC).  注册使用从左往右的顺序, 新的值会覆盖旧的值.
variables_order = “EGPCS”

; 是否将EGPCS变量注册成为全局变量.
; 如果你不希望由于用户数据而导致你脚本的全局变量变得凌乱,你需要关闭此选项
; 这个一般随着 track_vars 打开 – 在这种情况下你能够通过$HTTP_*_VARS[]存取所有的GPC变量.
;
; 你应该努力写好脚本这样就不必打开register_globals
; 如果代码不是经过详细的斟酌,那将变量作为全局使用可能很容易导致潜在的安全漏洞.
register_globals = Off

; 是否注册老形式的输入数组, HTTP_GET_VARS 和相关数组
; 如果你不使用他们,建议为了提高性能关闭他们.
register_long_arrays = On

; 此指令让PHP确认是否申明 argv&argc 变量 (这些变量会包含GET信息).
; 如果你不使用这些变量,为了提升性能应该关闭此选项.
register_argc_argv = On

; 当打开此项, SERVER 和 ENV 变量将在第一次被使用时而不是脚本一开始时创建(运行时)
; 如果这些变量在脚本中没有被使用过, 打开此项会增加一点性能.
; 为了使此指令有效,PHP指令 register_globals, register_long_arrays,
; 以及 register_argc_argv 必须被关闭.
auto_globals_jit = On

; PHP可以接受的最大的POST数据大小.
post_max_size = 8M

; Magic quotes
;

; 针对GET/POST/Cookie数据打开Magic quotes.
magic_quotes_gpc = On

; 针对实时产生的数据打开Magic quotes, 例如从SQL获取的数据, 从exec()返回的数据等等.
magic_quotes_runtime = Off

; 使用 Sybase 风格的 magic quotes (使用”来引导’替代\’).
magic_quotes_sybase = Off

; 在任何PHP文档之前或之后自动增加文件.
auto_prepend_file =
auto_append_file =

; 和 4.0b4一样, PHP 总是使用默认在头 Content-type: 的编码输出字符.
; 将其设置为空可以禁用发送字符集.
;
; PHP内建默认为text/html
default_mimetype = “text/html”
;default_charset = “iso-8859-1″

; 总是填充 $HTTP_RAW_POST_DATA 变量.
;always_populate_raw_post_data = On

;;;;;;;;;;;;;;;;;;;;;;;;;
; 路径和目录 ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: “/path1:/path2″
;include_path = “.:/php/includes”
;
; Windows: “\path1;\path2″
;include_path = “.;c:\php\includes”

; PHP页面的根路径, 只有非空时有效.
; 如果PHP没有使用FORCE_REDIRECT来编译, 如果你将php作为CGI运行在任何web服务器下(除了IIS)的话,你必须设置doc_root
; 针对安全问题查看文档.  一种替代方案是使用下面的cgi.force_redirect
doc_root =

; PHP使用/~username打开脚本的目录,非空时才有效.
user_dir =

; 可加载的扩展(模块)的目录位置.
extension_dir = “./”

; 是否启用 dl() 函数.  dl() 函数无法正常的在多线程服务下运行, 例如IIS或者Zeus, 并在在这些服务软件下会自动禁用.
enable_dl = On

; 在绝大多数web服务器下,cgi.force_redirect 对于提供安全执行PHP作为CGI来说是很有必要的.
; 没有配置的情况下,PHP会默认打开此项.
; 你可以在这里关闭此项并且自己承担风险
; **你可以在IIS安全的关闭此项,事实上,你必须关闭此项.**
; cgi.force_redirect = 1

; 如果 cgi.nph 被打开,就会强制CGI在每个请求时发送Status: 200.
; cgi.nph = 1

; 如果cgi.force_redirect被打开,并且你没有在Apache或者Netscape(iPlanet) web服务器下运行,
; 你也许需要设置一个环境变量名让PHP来查找让其可以获取后继续执行. 设置此变量可能引起安全问题, 在设置之前请先了解可能引起的后果.
; cgi.redirect_status_env = ;

; cgi.fix_pathinfo 为CGI提供 *真实* PATH_INFO/PATH_TRANSLATED 支持.
; PHP的预处理行为是设置 PATH_TRANSLATED 到 SCRIPT_FILENAME, 并且不去猜测 PATH_INFO 是什么.
; 想获取关于 PATH_INFO 更多的信息, 查看 cgi 规范.
; 将此值设置为1会引起PHP CGI修正它的路径来符合规范.
; 设置为0会引起PHP类似前面的行为. 默认是1. 你应该修正你的脚本来使用 SCRIPT_FILENAME 而不是 PATH_TRANSLATED.
; cgi.fix_pathinfo=0

; 在IIS下的FastCGI (在基于 WINNT 的操作系统下) 支持莫让呼叫客户端的安全令牌的能力.
; 这使得IIS能够定义其下运行的安全上下文.
; 在Apache下的mod_fastcgi 目前不支持此特性 (03/17/2002)
; 如果运行在IIS下设置为1. 默认是0.
; fastcgi.impersonate = 1;

; 关闭通过 FastCGI 连接的日志
; fastcgi.logging = 0

; cgi.rfc2616_headers 配置选项告知 PHP 当发送HTTP响应代码时使用什么类型的头
; 如果设置为0,PHP发送被Apache支持的 Status: 头信息.
; 当设置为1, PHP会发送 RFC2616 兼容的头信息.
; 默认为0.
; cgi.rfc2616_headers = 0

;;;;;;;;;;;;;;;;
; 文件上传 ;
;;;;;;;;;;;;;;;;

; 是否允许HTTP文件上传.
file_uploads = On

; 对于HTTP上传文件的临时文件目录 (如果没有指定则会使用系统默认).
;upload_tmp_dir =

; 允许上传的最大文件大小.
upload_max_filesize = 2M

;;;;;;;;;;;;;;;;;;
; Fopen 包装 ;
;;;;;;;;;;;;;;;;;;

; 是否允许将URL作为文件 (例如 http:// 或者 ftp://) .
allow_url_fopen = On

; 是否允许 include/require 将URL作为文件 (例如 http:// 或者 ftp://) .
allow_url_include = Off

; 定义匿名ftp密码 (你的电子邮件地址)
;from=”john@doe.com”

; 定义 User-Agent 字符串
; user_agent=”PHP”

; 定义基于流的socket接口的超时时间 (秒)
default_socket_timeout = 60

; 如果你的脚本必须处理从 Macintosh 系统来的文件,
; 或者你运行在一台Mac并且需要从unix或者win32系统上处理文件,
; 设置此标志会引起PHP自动检测这些文件的EOL字符,这样fgets() 和 file() 就可以不用管文件的来源而直接处理了.
; auto_detect_line_endings = Off

;;;;;;;;;;;;;;;;;;;;;;
; 动态扩展 ;
;;;;;;;;;;;;;;;;;;;;;;
;
; 如果你希望扩展自动加载, 使用下列语法:
;
;   extension=modulename.extension
;
; 例如,在Windows系统上:
;
;   extension=msql.dll
;
; … 或者在 UNIX 下:
;
;   extension=msql.so
;
; 注意: 这里应该只是模块的名字;
; 这里不需要模块的目录信息.
; 使用上面的 extension_dir 指令来指定扩展的位置.

; Windows Extensions
; 注意:已经内建了ODBC支持,所以不需要针对ODBC的dll.
; 注意:许多DLL文件位于 extensions/ (PHP 4) 或者 ext/ (PHP 5)目录中,和分割的PECL DLL下载在一起 (PHP 5).
; 确定设置了正确的 extension_dir 指令.

;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

;;;;;;;;;;;;;;;;;;;
; 模块设置 ;
;;;;;;;;;;;;;;;;;;;

[Date]
; 定义date函数使用的默认时区
;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 库反响追踪限制.
;pcre.backtrack_limit=100000

;PCRE 库递归限制.
;请注意如果你设置此项到一个很高的值, 你可能耗尽所有的可用的进程堆并且最终弄宕PHP(由于到达了操作系统强制的堆大小的限制).
;pcre.recursion_limit=100000

[Syslog]
; 是否定义不同的syslog变量 (例如. $LOG_PID,
; $LOG_CRON, 等等.).  关闭此选项对性能有益.
; 在运行时, 你可以调用 define_syslog_variables() 函数来定义这些变量.
define_syslog_variables  = Off

[mail function]
; 针对Win32.
SMTP = localhost
smtp_port = 25

; 针对Win32.
;sendmail_from = me@example.com

; 针对Unix.  可以支持参数 (默认: “sendmail -t -i”).
;sendmail_path =

; 强制额外的指定的参数被作为扩展参数传送给sendmail执行文件.
; 这些参数总是替代mail()函数的第五个参数值, 甚至是在安全模式内.
;mail.force_extra_parameters =

[SQL]
sql.safe_mode = Off

[ODBC]
;odbc.default_db    =  目前无效
;odbc.default_user  =  目前无效
;odbc.default_pw    =  目前无效

; 允许或阻止持久连接.
odbc.allow_persistent = On

; 在重用前检查连接是否可用.
odbc.check_persistent = On

; 持久连接的最大数目.  -1 意味着没有限制.
odbc.max_persistent = -1

; 最大连接数 (持久 + 非持久).  -1 意味着没有限制.
odbc.max_links = -1

; 长字段处理.  返回变量的字节数.  0 意味着略过.
odbc.defaultlrl = 4096

; 二进制数据处理. 0 意味着略过, 1按照实际返回, 2 转换到字符.
; 查看 odbc_binmode 和 odbc_longreadlen 的文档来获取针对 uodbc.defaultlrl 和 uodbc.defaultbinmode的解释
odbc.defaultbinmode = 1

[MySQL]
; 允许或阻止持久连接.
mysql.allow_persistent = On

; 持久连接的最大数目.  -1 意味着没有限制.
mysql.max_persistent = -1

; 最大连接数 (持久 + 非持久).  -1 意味着没有限制.
mysql.max_links = -1

; mysql_connect()默认的端口号.  如果没有设置, mysql_connect() 会使用 $MYSQL_TCP_PORT
; 或者 位于/etc/services的 mysql-tcp 入口或者编译时定义的MYSQL_PORT 值(按照此顺序查找).
; Win32 只会查找MYSQL_PORT值.
mysql.default_port =

; 对于本地MySQL连接的默认socket名称. 如果为空, 则使用MySQL内建默认值.
mysql.default_socket =

; mysql_connect() 的默认host值(在安全模式中不会生效).
mysql.default_host =

; mysql_connect() 的默认user值(在安全模式中不会生效).
mysql.default_user =

; mysql_connect() 的默认password值(在安全模式中不会生效).
; 注意在此文件中保存密码一般来说是 *糟糕* 的主义.
; *任何* 使用PHP的用户可以执行 ‘echo get_cfg_var(“mysql.default_password”)
; 并且获取到此密码! 而且理所当然, 任何有对此文件读权限的用户都可以获取到此密码.
mysql.default_password =

; 连接超时的最大时间 (秒) , -1 意味着没有限制.
mysql.connect_timeout = 60

; 追踪模式. 当 trace_mode 被打开 (=On), table/index 扫描的警告和SQL错误会被显示出来.
mysql.trace_mode = Off

[MySQLi]

; 最大连接数.  -1 意味着没有限制.
mysqli.max_links = -1

; mysqli_connect()默认的端口号.  如果没有设置, mysql_connect() 会使用 $MYSQL_TCP_PORT
; 或者 位于/etc/services的 mysql-tcp 入口或者编译时定义的MYSQL_PORT 值(按照此顺序查找).
; Win32 只会查找MYSQL_PORT值.
mysqli.default_port = 3306

; 对于本地MySQL连接的默认socket名称. 如果为空, 则使用MySQL内建默认值.
mysqli.default_socket =

; mysqli_connect() 的默认host值(在安全模式中不会生效).
mysqli.default_host =

; mysqli_connect() 的默认user值(在安全模式中不会生效).
mysqli.default_user =

; mysqli_connect() 的默认password值(在安全模式中不会生效).
; 注意在此文件中保存密码一般来说是 *糟糕* 的主义.
; *任何* 使用PHP的用户可以执行 ‘echo get_cfg_var(“mysqli.default_password”)
; 并且获取到此密码! 而且理所当然, 任何有对此文件读权限的用户都可以获取到此密码.
mysqli.default_pw =

; 允许或阻止持久连接.
mysqli.reconnect = Off

[mSQL]
; 允许或阻止持久连接.
msql.allow_persistent = On

; 持久连接的最大数目.  -1 意味着没有限制.
msql.max_persistent = -1

; 最大连接数 (持久 + 非持久).  -1 意味着没有限制.
msql.max_links = -1

[OCI8]
; 打开使用外部认证的授权连接 (OCI_SYSOPER, OCI_SYSDBA)
;oci8.privileged_connect = Off

; 连接: 每个进程的持久OCI8连接的最大数, -1 意味着没有限制.
;oci8.max_persistent = -1

; 连接: 一个进程允许保持一个空闲持久连接的最大秒数.
; -1意味着空闲持久连接会永远被保持.
;oci8.persistent_timeout = -1

; 连接: 当oci_pconnect() 检测一个连接是否有效时每次发起ping之间必须通过的秒数.
; 当设置为0后, 每个oci_pconnect() 会发起一个ping. Using -1 完全关闭ping.
;oci8.ping_interval = 60

; 调优: 此选项打开声明缓冲(statement cache), 并且指定缓冲多少声明. 使用0关闭声明缓冲.
;oci8.statement_cache_size = 20

; 调优: 打开声明预取(statement prefetch) 并且设置自动在声明执行后被取到行的数量.
;oci8.default_prefetch = 10

; 兼容性: 设置为On 意味着 oci_close() 不会关闭 oci_connect() 和 oci_new_connect() 的连接.
;oci8.old_oci_close_semantics = Off

[PostgresSQL]
; 允许或阻止持久连接.
pgsql.allow_persistent = On

; 总是在 pg_pconnect() 时检测断开的持久连接.
; 自动重置特性会引起一点开销.
pgsql.auto_reset_persistent = Off

; 持久连接的最大数目.  -1 意味着没有限制.
pgsql.max_persistent = -1

; 最大连接数 (持久 + 非持久).  -1 意味着没有限制.
pgsql.max_links = -1

; 是否忽略 PostgreSQL 后端通告消息.
; 通告消息记录会需要一点开销.
pgsql.ignore_notice = 0

; 是否记录 PostgreSQL 后端通告消息.
; 除非 pgsql.ignore_notice=0, 否则模块无法记录通告消息
pgsql.log_notice = 0

[Sybase]
; 允许或阻止持久连接.
sybase.allow_persistent = On

; 持久连接的最大数目.  -1 意味着没有限制.
sybase.max_persistent = -1

; 最大连接数 (持久 + 非持久).  -1 意味着没有限制.
sybase.max_links = -1

;sybase.interface_file = “/usr/sybase/interfaces”

; 显示出的消息最小严重程度.
sybase.min_error_severity = 10

; 显示出的消息最小严重程度.
sybase.min_message_severity = 10

; 兼容老版本PHP 3.0的模式.
; 如果设为 on, 会引起 PHP 自动绑定结果记录的类型到Sybase的类型,而不是将他们全部按照字符串处理.
; 此兼容模式可能不会永久存在, 所以最好尝试在你代码中需要的地方作出必要的修改, 然后关闭此选项.
sybase.compatability_mode = Off

[Sybase-CT]
; 允许或阻止持久连接.
sybct.allow_persistent = On

; 持久连接的最大数目.  -1 意味着没有限制.
sybct.max_persistent = -1

; 最大连接数 (持久 + 非持久).  -1 意味着没有限制.
sybct.max_links = -1

; 显示出的错误最小严重程度.
sybct.min_server_severity = 10

; 显示出的消息最小严重程度.
sybct.min_client_severity = 10

[bcmath]
; 所有bcmath函数的小数位数
bcmath.scale = 0

[browscap]
;browscap = extra/browscap.ini

[Informix]
; 对于 ifx_connect() 的默认host (不会在安全模式被应用).
ifx.default_host =

; 对于 ifx_connect() 的默认user (不会在安全模式被应用).
ifx.default_user =

; 对于 ifx_connect() 的默认password (不会在安全模式被应用).
ifx.default_password =

; 允许或阻止持久连接.
ifx.allow_persistent = On

; 持久连接的最大数目.  -1 意味着没有限制.
ifx.max_persistent = -1

; 最大连接数 (持久 + 非持久).  -1 意味着没有限制.
ifx.max_links = -1

; 如果设为 on, select 声明返回 text 段的内容而不是它的id.
ifx.textasvarchar = 0

; 如果设为 on, select 声明返回 byte 段的内容而不是它的id.
ifx.byteasvarchar = 0

; 固定长度字符列的尾部空格会被截去.  可能对 Informix SE 用户有帮助.
ifx.charasvarchar = 0

; 如果设为 on, text 和 byte 段会被dump到一个文件而不是在内存中保留它们.
ifx.blobinfile = 0

; NULL会被作为一个空字符串返回, 除非被设为1. 如果设为1, NULL会被作为字符串’NULL’返回.
ifx.nullformat = 0

[Session]
; 用来存储/获取数据的处理方法.
session.save_handler = files

; 传送到save_handler的参数.  在使用文件的情况下, 这里是数据文件被保存的路径.
; 注意: Windows 用户必须改变此值来使用PHP的会话函数.
;
; 和在 4.0.1一样, 你可以定义如下路径:
;
;     session.save_path = “N;/path”
;
; 这里的 N 是一个整数.  使用此参数会在目录内建立一个N层深度的子目录用来保存session文件,
; 而不是将所有session文件保存在同一个/path目录内.
; 这对你或当你的操作系统在一个目录内保存太多文件时出现问题很有帮助.
; 并且对于处理大量session的服务器提供更高的效率.
;
; 注意 1: PHP不会自动创建目录结构. 你可以使用在ext/session目录内的脚本来创建目录结构.
; 注意 2: 如果你选择使用子目录来保存session,请检查下面关于垃圾回收的配置段
;
; 文件存储模块默认使用600模式来创建文件,在使用中你可以改变此选项
;
;     session.save_path = “N;MODE;/path”
;
; 这里的MODE由8进制来表示. 注意这里不会覆盖进程的umask.
;session.save_path = “/tmp”

; 是否使用cookie.
session.use_cookies = 1

;session.cookie_secure =

; 这个选项允许管理员去保护那些在URL中传送session id的用户免于被攻击
; 默认是 0.
; session.use_only_cookies = 1

; session的名称 (作为cookie名称来使用).
session.name = PHPSESSID

; 在请求开始的时候初始化session.
session.auto_start = 0

; cookie的生存秒数,或者如果为0就直到浏览器重启.
session.cookie_lifetime = 0

; cookie有效的路径.
session.cookie_path = /

; cookie有效的域名.
session.cookie_domain =

; 是否将httpOnly标志增加到cookie上, 增加后则cookie无法被浏览器的脚本语言(例如JavaScript)存取.
session.cookie_httponly =

; 用于序列化数据的处理器. php是标准的PHP序列化器.
session.serialize_handler = php

; 定义’垃圾回收’进程在每次session初始化时开始的比例.
; 比例由 gc_probability/gc_divisor来得出,
; 例如. 1/100 意味着在每次请求时有1%的机会启动’垃圾回收’进程.

session.gc_probability = 1
session.gc_divisor     = 100

; 在经过以下秒数之后, 存储的数据会被认为是’垃圾’并且被垃圾回收进程清理掉.
session.gc_maxlifetime = 1440

; 注意: 如果你使用子目录选项来保存session文件
;       (查看在上面的session.save_path), 那么垃圾回收就 *不会* 自动发生.
;       你需要通过一个shell脚本,cron或者其他方法来自行处理垃圾回收.
;       例如, 下面的脚本相当于将session.gc_maxlifetime设置为 1440 (1440 秒 = 24 分钟):
;          cd /path/to/sessions; find -cmin +24 | xargs rm

; PHP 4.2 和更早版本有一个未公开的 特性/bug , 此特性允许你在全局初始化一个session变量,即便 register_globals 已经被关闭.
; 如果此特性被使用,PHP 4.3 和更早版本会警告你.
; 你可以关闭此特性并且隔离此警告. 这时候,如果打开bug_compat_42,那此警告只是被显示出来.

session.bug_compat_42 = 1
session.bug_compat_warn = 1

; 检查HTTP Referer来防止带有id的外部URL.
; HTTP_REFERER 必须包含从session来的这个字段才会被认为是合法的.
session.referer_check =

; 从此文件读取多少字节.
session.entropy_length = 0

; 在这里指定创建session id.
session.entropy_file =

;session.entropy_length = 16

;session.entropy_file = /dev/urandom

; 设置为 {nocache,private,public,} 来决定HTTP缓冲的类型
; 留空则防止发送 anti-caching 头.
session.cache_limiter = nocache

; 文档在n分钟之后过期.
session.cache_expire = 180

; trans sid 支持默认关闭.
; 使用 trans sid 可能让你的用户承担安全风险.
; 使用此项必须小心.
; – 用户也许通过email/irc/其他途径发送包含有效的session ID的URL给其他人.
; – 包含有效session ID的URL可能被存放在容易被公共存取的电脑上.
; – 用户可能通过在浏览器历史记录或者收藏夹里面的包含相同的session ID的URL来访问你的站点.
session.use_trans_sid = 0

; 选择hash方法
; 0: MD5   (128 bits)
; 1: SHA-1 (160 bits)
session.hash_function = 0

; 当转换二进制hash数据到可读形式时,每个字符保存时有几位.
;
; 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

; URL rewriter会在已经定义的一组HTML标签内查找URL.
; form/fieldset 是特殊字符; 如果你在这里包含他们, rewriter会增加一个包含信息的隐藏<input>字段否则就是在URL中附加信息.
; 如果你你想遵守XHTML, 删除form的入口.
; 注意 所有合法的入口都需要一个”=”符号, 甚至是没有任何值的.
url_rewriter.tags = “a=href,area=href,frame=src,input=src,form=,fieldset=”

[MSSQL]
; 允许或阻止持久连接.
mssql.allow_persistent = On

; 持久连接的最大数目.  -1 意味着没有限制.
mssql.max_persistent = -1

; 最大连接数 (持久 + 非持久).  -1 意味着没有限制.
mssql.max_links = -1

; 显示出的错误最小严重程度.
mssql.min_error_severity = 10

; 显示出的消息最小严重程度.
mssql.min_message_severity = 10

; PHP 3.0 老版本的兼容模式.
mssql.compatability_mode = Off

; 连接超时
;mssql.connect_timeout = 5

; 查询超时
;mssql.timeout = 60

; 有效范围 0 – 2147483647.  默认 = 4096.
;mssql.textlimit = 4096

; 有效范围 0 – 2147483647.  默认 = 4096.
;mssql.textsize = 4096

; 每批记录的数量限制.  0 = 所有记录在一批内.
;mssql.batchsize = 0

; 指定 datetime 和 datetim4 栏如何返回
; On => 返回数据转换到SQL服务器设置的格式
; Off => 使用 YYYY-MM-DD hh:mm:ss 返回
;mssql.datetimeconvert = On

; 当连接到服务器时使用NT验证
mssql.secure_connection = Off

; 指定最大进程数. -1 = 库默认
; msdlib 默认 25
; FreeTDS 默认 4096
;mssql.max_procs = -1

; 指定客户端字符集.
; 如果为空或者没有指定,客户端字符集将会使用freetds.conf的配置
; 只有和FreeTDS编译时会被使用
;mssql.charset = “ISO-8859-1″

[Assertion]
; 断言(expr); 默认打开.
;assert.active = On

; 对于每个失败断言发起一个PHP警告.
;assert.warning = On

; 默认不要保释.
;assert.bail = Off

; 如果断言失败则调用用户自定义函数.
;assert.callback = 0

; 使用当前 error_reporting() Eval一个表达式.  如果你想要在eval()附近error_reporting(0) ,那设置为true.
;assert.quiet_eval = 0

[COM]
; 包含GUID,IID或者TypeLibs的文件的文件名的文件的路径
;com.typelib_file =
; 允许 Distributed-COM 调用
;com.allow_dcom = true
; 自动注册位于com_load()函数的组件typlib的常量
;com.autoregister_typelib = true
; 注册常量大小写敏感
;com.autoregister_casesensitive = false
; 当有重复常量注册时显示警告
;com.autoregister_verbose = true

[mbstring]
; 内部字符表示的语言.
;mbstring.language = Japanese

; 内部/脚本编码.
; 部分编码无法作为内部编码使用.
; (例如. SJIS, BIG5, ISO-2022-*)
;mbstring.internal_encoding = EUC-JP

; http 输入编码.
;mbstring.http_input = auto

; http 输出编码. mb_output_handler 必须作为函数被注册为输出缓冲
;mbstring.http_output = SJIS

; 按照mbstring.internal_encoding的设置打开自动编码转换
; 当设置为On时,输入字符被转换为内部编码.
; 注意: 不要针对可移植库/应用使用自动编码转换.
;mbstring.encoding_translation = Off

; 自动编码检测序列
; 自动意味着
;mbstring.detect_order = auto

; 当无法将字符从一种转换到另一种时使用的置换符号
;mbstring.substitute_character = none;

; 使用mbstring函数 覆盖(替换) 单字节函数.
; mail(), ereg(), 等等都会被 mb_send_mail(), mb_ereg() 等等覆盖,
; 可以取的值是 0,1,2,4 或者他们的组合.
; 例如, 7 就是覆盖所有函数.
; 0: 不覆盖
; 1: 覆盖 mail() 函数
; 2: 覆盖 str*() 函数
; 4: 覆盖 ereg*() 函数
;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]
; 告知jpeg解码器libjpeg警告并且尝试创建一个gd图像. 此警告会被作为一个通告显示
; 默认为关闭
;gd.jpeg_ignore_warning = 0

[exif]
; Exif UNICODE 用户注释会被作为UCS-2BE/UCS-2LE 和 JIS 来进行 JIS处理.
; 当 mbstring.internal_encoding 设置为空,如果有 mbstring 支持,则会自动转换到给出的对应编码设置的编码.
; 对于解码设置你可以在motorola和intel字符序列上进行选择. 解码设置不能设置为空.
;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]
; 当调用tidy时,默认指向tidy配置文件的路径
;tidy.default_config = /usr/local/lib/php/default.tcfg

; tidy是否自动清除和修复输出?
; 警告: 不要在你产生非html内容时使用此项,例如产生动态图片时
tidy.clean_output = Off

[soap]
; 打开或关闭WSDL缓冲特性.
soap.wsdl_cache_enabled=1
; 设置SOAP扩展存放缓冲文件的目录.
soap.wsdl_cache_dir=”/tmp”
; (存活时间) 设置当缓冲文件被用来替换原有缓冲文件的秒数.
soap.wsdl_cache_ttl=86400
; Local Variables:
; tab-width: 4
; End:

php学习

蝶恋花 ·柳永

蝶恋花 ·柳永
伫倚危楼风细细,望极春愁,黯黯生天际。草色烟光残照里,无言谁会凭阑意。
拟把疏狂图一醉,对酒当歌,强乐还无味。衣带渐宽终不悔,为伊消得人憔悴。

[译文]
他久立在高楼上微风拂面一丝丝一细细,望不尽的春日离愁,黯黯然地升起从遥远无边的天际。碧绿的草色,迷蒙的烟光掩映在落日余晖里,默默无言什么人会理解他独自凭栏的深沉含义?
打算让这疏懒放纵的心情喝得醉醉,可是对着美酒要纵情高歌,勉强取得欢乐反而觉得毫无意味。衣衫丝带渐渐觉得松宽了,可他始终不感到懊悔,宁愿为她消瘦得精神萎靡颜色憔悴

工作不认真的结果

刚才知道了上个月的关键字统计结果。成绩不理想,虽然之前有过这方面的心理准备,没想到它真的到来的时候我会如此失落。说起来这一切都是我的错,我不认真工作的结果,感觉这样的时间很久了,现在才来结果我都觉得有点晚了。

不知道怎么回事,一直不能认真工作。不得不承认我自制力太差了。说这个就有点扯远了。我还是决定要好好的认真工作,怎么着也要补回来吧,不然的话工资少点事小,同事都合格就我不合格在心理上也不好过不是。不多想了,还是认真工作吧!

IE收藏夹位置

收藏夹位置
怎样知道IE收藏夹所在的位置?
IE收藏夹默认位置:C:\Documents and Settings\你的账户名\Favorites
简单的说,就是在系统分区找到以你账户名命名的文件夹,收藏夹文件就在里面!
IE收藏夹位置可以修改:
在”运行”栏里输入”regedit”进入注册表编辑器,找到:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folder\ 单击这个,将%USERPROFILE%\Favorites改成D:\Favorites,便把收藏夹路径改到D盘了!

点绛唇——李清照

点绛唇
【宋】李清照

寂寞深闺,柔肠一寸愁千缕。
惜春春去,几点催花雨。

倚遍栏干,只是无情绪!人何处?
连天衰草,望断归来路。

PPTP连接远程VPN网络时,本地主机无法上网的问题

PPTP连接远程VPN网络时,本地主机无法上网的问题

由于现在的笔记本电脑或个人电脑多数默认预装了Windows XP系统,我们经常会发现XP系统借助VPN网络连接接入到专用网络后,时常会遭遇下面的一些“后遗症”:一是VPN接入成功后电脑不能正常访问 Internet网络,二是VPN接入成功后电脑不能正常访问本地的局域网,三是访问Internet网络中的某些站点内容时速度有时变得非常缓慢。面对 这些“后遗症”,我们该如何处理这些所谓的后遗证呢?
这几个问题我曾经在福建一家企业当网管做总分公司ERP系统的应用上碰到过,这种问题很常见,下面的文章是一些原因分析及故障解决方法。(文章内容部分引 自中国IT认证实验室,我做了一理整合并归纳在一起,方便大家不用发大多时间去找相应的文章,关于ERP部分问题在VPN上的应用,例如像速达5000系 列ERP软件“本地程序无法连接远程IP”的解决方案会在后续相应文章添加,大家有碰到类似的像速达ERP这类的问题可以参考下)

“后遗症”引发之谜

XP系统之所以会出现上述“后遗症”,主要原因就是电脑通过VPN网络连接成功拨入局域网中的VPN服务器后,XP系统自动改变了本地系统的缺省网关设 置,在缺省状态下,XP系统会自动电脑使用的缺省网关地址修改为了VPN服务器所在网络的IP地址,要是局域网中的目标VPN服务器恰好也没有设置指向 Internet网络的网关地址时,那么电脑就不能通过VPN服务器访问Internet网络了;有的时候局域网中的目标VPN服务器虽然已经设置好了指 向Internet网络的网关地址,但是目标VPN服务器的路由参数或负载参数如果设置不合理的话,那就容易出现访问Internet网络中的某些站点内 容时速度变得非常缓慢的“后遗症”。

“后遗症”解决思路

既然VPN接入“后遗症”是由于XP系统自动修改本地计算机的默认网关地址引起的,那么我们只要想办法让电脑成功拨入局域网的VPN服务器后,继续使用以 前一直使用的默认网关地址,而不会使用VPN服务器所在网络的IP地址,之后再采用手工添加的方法,将访问VPN服务器所在网络的路由记录添加到笔记本电 脑的本地路由表中,如此一来就可以确保XP系统在成功拨入局域网中的VPN服务器后,既能快速访问本地网络中的内容,又能访问VPN服务器所在网络的内 容,并能通过VPN服务器访问Internet网络中的目标站点内容。

解决方法:
1、 更改本地电脑VPN远程连接设置,使用原来的默认网关
桌面“网上邻居”,右点“属性”,在弹出的网络连接列表窗口中,找到目标VPN连接,并用鼠标右键单击该连接图标,从弹出的快捷菜单中执行“属性”命令, 打开目标VPN连接的属性设置窗口,单击其中的“网络”选项卡,并将该选项设置页面中的“Internet协议(TCP/IP)”选项选中,同时单击“属 性”按钮,进入目标VPN连接的TCP/IP属性界面,在该属性界面中继续单击“高级”按钮,在弹出的高级设置页面中单击“常规”选项卡,进入如图1所示 的选项设置页面,默认情况“在远程网络上使用默认网关”选项是被选中了,将勾去掉,这样一来本地电脑就不会在连到VPN服务器以后使用VPN服务器所在的 网关地址,而使用本地电脑原来设置的默认网关, 从而达到正常上网的目的。

2、对于使用Windows RAS(路由远程服务)搭建的VPN服务器而言,可能会有读者会发现另外一个故障现象,那就是VPN客户端只能访问公司的RAS服务器一台主机了,而不能 同时访问局域网中的其他普通工作站了,这是因为RAS服务器在默认状态下并没有访问公司局域网的路由记录。为了解决这个故障现象,需要进入RAS服务器所 在的主机系统,依次单击“开始”/“运行”命令,在弹出的系统运行对话框中执行字符串命令“cmd”,将系统切换到DOS命令行工作窗口;在该窗口的 DOS命令行提示符下,笔者通过Windows服务器系统自带的“route add”命令,手工增加了通往公司内部网络的路由记录,假设公司局域网采用“192.168.10.0”网络地址,并且局域网默认使用 “192.168.10.254”网关地址,那么笔者只要在DOS命令行提示符下执行字符串命令“route add 192.168.10.0 mask 255.255.255.0 192.168.10.254”,经过这样的设置VPN客户端果然可以同时访问公司内部的局域网以及Internet网络了。

大家应该看到了一点,VPN在基于Windows系统上的配置还是相当繁琐的,PPTP的应用还好,没有涉及到CA的应用,倘若需要应用到 L2TP(集成IPSEC)或者使用IPSEC来做VPN的时候,企业内部一定需要一个CA系统,倘若又刚好贵公司部署了ISA 2004或都2006防火墙,还需要将相应的CA服务器发布到Internet上去,同时还需要自己在公网上DNS域名或者固定IP地址。

PR今天更新了!

今天到公司之后习惯性的打开公司网站和自己的博客看了下,PR值都更新了。不过公司的首页没有更新PR值。只是大家所管理的专柜页面有了变动。基本上都是上升,但也有一些是PR降没了。总体还是上升的。

而且我这个博客的PR也升到了1了。

感觉这次谷歌更新PR有些太随便和轻浮了。好像很容易就升PR了似的,也不知道大家是不是这样,会不会升的这么容易最后导致PR值的因素被人们忽略?

父亲是个流氓—–于建嵘

父亲是个流氓—–于建嵘
 

父亲要死了。

我是从雪姨发来的电报知道的。我向学校请了假,乘火车往老家赶。一下火车,就看见二弟高阳傲视天下般地立在站台边。他见我走来,只是点了点头,提过我的包就往停车场走。直到跨上他那辆白色的宝马,才说了一句:“老爷子真是的,死都死了几次了。”

我跟着二弟来到父亲的病房。病房里有许多人。雪姨和我大弟都在病床边,用哀伤的眼神看着我。病床上的父亲已经失去知觉,双目紧闭,那两条粗黑的剑眉还是那样显得威风凛凛,只是浮肿的面部给人一种有点夸张的感觉。医务人员在忙碌,他们应该比谁都明白这些忙碌并没有多少意义,只不过以各种无效的抢救来等待那必然的最后结果。

雪姨将我们兄弟三人叫到病房外的陪护间,对我说父亲得到了本市最好的治疗。我绝对相信雪姨的这种有点表功意味的说明。这不仅由于父亲曾是这里的最高领导人,更主要是他有一个现为常务副市长的二儿子高兵及一个号称千万富翁的三儿子高阳。而作为书生的大儿子我,绝不是能让父亲享受这种待遇的理由。

雪姨很有主见地安排着父亲的后事。尽管她比我还小一岁,但作为父亲的第三任夫人,我们还是愿意听她调遣。雪姨叫高兵与市委领导商量父亲的悼词和追悼会的规格,要高阳负责通知亲朋好友并主管日常事务,要我准备一份家属发言稿,表示亲人们的崇敬、悲哀及感激之情。

为完成雪姨交给的任务,我不得不回顾父亲即将结束的一生,思考亲人们心目中的父亲。这是几十年来我最不愿意想的问题了。然而,当我象平时从事科学研究一样分析父亲那久远的历史后,我发现,尽管父亲的一生复杂而富有传奇,但大体上可分为三个阶段,而且这些阶段具有里程碑意义的是三个女人。这三个女人就是父亲的老婆我妈、父亲的爱人高姨以及父亲现在的夫人雪姨。有了这一发现,我竟然兴奋起来。

父亲和我妈的故事发生在我的老家,也就是湖南南部的永州市远郊一个名叫黄沙塘于家的小村子里。永州这个地方,由于一位很有名气的文人写过一篇《捕蛇者说》而闻名于世。事实上,我在这里生活过十二年,却很少看到蛇,更不要说专事捕蛇的人了。

父亲大约生于一九二一年五月,具体哪一年我是没有办法搞清楚的。因为,父亲的各种人事表格有关出生年月变化较多。在讲究资格的年代,父亲将其出生年月定在一九一六年五月;在领导干部年轻化的时候,报上公布父亲的出生年月却是一九二六年五月。两者相差有十年。如果取中间数,也就是一九二一年比较合宜。

据说,我父亲的父亲,也就是我爷爷,曾到省城长沙读过书,后来成为了当地较富有而深得乡邻尊敬的绅士。父亲是爷爷的独子,爷爷又是老爷爷的独子,也就是父亲一家是三代单传。奶奶在三十多岁才有我父亲,就更视为掌上明珠。但在父亲十六岁那年,我父亲的父亲以及父亲的母亲相继去世了,父亲也就成为了孤儿。

本来父亲对家里事是从来不关心的。因为是家中的独苗,所以在十岁前一直跟随在他母亲身旁,到十岁才开始进村里的学堂。成了孤儿后,他不得不理会家里的四十多亩土地和近二十间房子。当然,具体的事情都是由长工做的。如果,后来父亲不因赌博而输掉了全部家产,解放后父亲肯定是个地主,而且是一个从十六岁就开始剥削劳动人民的吸血鬼。

父亲成为赌徒是在他父母去世半年后的事。也就是在他快十七岁的那年冬天。最初是他远房堂兄于朝龙带他去玩一种当地很流行的押大小的游戏,赌吃喝,慢慢地就直接玩起钱来了。从小到大,越玩越想玩。大约二年光景,父亲就将祖传的四十多亩良田和二十多间房子全玩完了。其中有一半成为了他堂兄于朝龙家的产业。当于朝龙一家搬进我家祖屋时,父亲哭着住进了于朝龙家废弃的牛栏房。从此以后,读过六年书的父亲开始成为了村里最不受欢迎的人。谁家少了东西首先想到的就是我父亲。村里人开始忘记了他的姓名,都叫他收账鬼。他就在东摸西拿中度过那艰难困苦的日日夜夜。好在当时日本鬼子也经常进村,人们对收账鬼的作为也就不太计较。

在父亲二十三岁那年,他还是单身一人。那时都习惯早婚,二十三岁尚未婚配很能说明这个人的品行和家境。可人的青春期生理要求并不因没有金钱而丧失。没有钱上赌场时,他就象个发春的公牛,在村子里四处游荡。特别是夜深人静之际,青春分泌物使他象夜游神一样听过许多家的墙根。这就成了村里人的心病。他们总是叫女儿媳妇们千万注意,切不要答理收账鬼,最好是看到他就远远地避开,不然可能有危险。事实上,父亲从没当面对什么女人有什么过份的举动。但村里人在夜间行夫妻之事时,再也不敢象原来那样放荡了。据说,有人还因害怕收账鬼听墙,成为了阳萎。若干年后,我作为学者,曾对那几年村里人口变化进行过调查分析,我发现,在父亲二十岁到二十三岁那几年,是于家村人口出生率最低的年份。由于没有发现其它原因,我就认定与父亲听墙有直接的关连。

可见,父亲的行为已经严重地影响到于家村的生存和发展了。最要命的是,村里人也意识到了这种危机的存在,而且,随着日月的推移,这种危机感也就越来越压抑人心地在村中弥漫。终于有一天,村人不约而同地找到已是村中首富的于朝龙,商量如何解决收账鬼的问题,尽管有人主张送官法办,但苦于没有可以送官定罪的事情和证据。最后,村人们只得同意,给收账鬼找个女人并租二亩村里的公田给他养家立命。

于是,村里人就行动起来,到处访那些难寻婆家的女子或死了老公的寡妇。可想而知,方圆十里是不可能有收获的。有人大骂了那些提亲的人还扬言,就是死也不将自己女儿嫁给收账鬼。

正在村里人万分为难之时,村里来了二位从河南过来讨饭的母女。事情也巧,母女俩刚踏进我们村,母亲就倒下了。村里人循着那女孩的哭声,才知道那老要饭的死了。于是,村里人叫来了于朝龙。于朝龙没有看那已经死去的母亲,而对那个正在伤心但已无力哭泣、可能有十五六岁但骨瘦如柴、相貌极为普通甚至可以说有点丑的姑娘看了好一会。他和蔼且富有同情心地问了姑娘一些问题,当知道姑娘的父亲和兄弟已在早几年走日本时就死了,唯一相依为命的母亲也饿死在这千里之外的他乡时,于朝龙就高兴起来。他叫人立即将我父亲从赌桌旁揪了过来,本来因没有赌资只能当观察员而气恼的父亲,一听将这个姑娘送给他做老婆,也高兴地叫起了朝龙哥。于朝龙就让村里人将姑娘的母亲埋在后山的野地里,叫家人拿点高梁饼就将姑娘送进了我父亲借住的牛栏房。这个于家人连姓名也懒得知道的女人,就是我妈。

父亲是在我妈用眼泪吞食高梁饼时将她变成女人的。可以想象,一个刚死了母亲、自己又快饿死的少女,对食物渴望和对性的需要,态度应该是完全不一样的。可对一个二十三岁还没有亲近女人的健康男人来说,有了属于自己的女人还要等待那也是要命的。于是,在我妈用黑黑的手扼住那块高梁饼拼命往肚子里送时,我父亲用力剥下了她少得可怜的裤子,象猛虎下山一样顺势长入。也许是想起了刚死的母亲或是由于父亲的粗暴给她刚因有了食物而恢复知觉的肉体带来的痛苦,在父亲没完没了的动作中,我妈小声地哭泣起来。我妈的哭声使已心满意足的父亲大为恼火,他动作很大地穿上裤子,对着我妈血淋淋的下身就是一脚,大声地说“妈巴子的,饭也吃了,娘也埋了,让老子快乐一下就哭,哭个屁。”说完转身就走,不用说肯定是到赌桌边观战去了。

自从有了自己的女人,村前村后就再不见父亲深夜四处游荡的身影了。父亲有钱时一定是在牌桌上,没有钱就折磨那个属于他的女人。因此,在他借住的牛栏里,经常传出打骂声和女人悲凄的哭泣声。还算善良的村人,每当看到被打得面目全非的我妈在租种的二亩地里劳作时,也会生出一些内疚。“唉,真是个命苦的女人。”当然,只是说说而已,心中更多的还是为自己家的女人不用再担心那发春的公牛而暗暗地窃喜。

村里人最终发现,他们的如意算盘还是打错了。父亲虽然再不会因雄性分泌物去侵害他们的女人,但并不是说父亲因需要赌资而放过他们的财物。就在父亲将我妈的肚子搞大,也就是怀上我的第七个月,终于发生了于家村自有文字记载以来最大、最严重的事件。

事情的经过很简单。父亲在邻村赌博欠了钱,在深夜很不情愿被赶下了牌桌,只能回去将女人折腾一番。在经过原属于他家而现在成了他远房堂兄于朝龙家产业的院子时,一股恨意油然而生。胆因怒生,他熟悉地翻过院墙,潜进了书房,就象在自己家里取物一样拿过几件值钱的器皿,正要离开时,被他堂兄的小老婆发现了。这个娇小的女人,本来因这晚没有得到应该属于她的春宵而愤愤不平,难以入眠。所以,不顾天寒地冻,决心到另外两个也是小老婆的女人窗下察看一下,她要知道是谁侵占了应属于她的一夜,好明天找老大诉苦。她刚走出房间,就象见到鬼一样发现了我父亲,不由自主地大叫起来。这一叫,就苦了我父亲,他被吓得站在院子中央,不知所措。当于朝龙和家人们用乱棍将他打倒并捆成粽子押到于家祠堂后,他还没有回过神来。就在村人们因将我父亲送官法办还是以族规处置发生争吵时,我妈腆着肚子来了。这个没有姓名而且很少在村人面前说话的女人,还是那样一声不响,跪在地上,对每一个村人磕头。看到这个架势,事主于朝龙就说:“这次算了,放他一马,下次如果再犯,老子要了他这条狗命。”

历史已经证明,地主于朝龙犯了一个致命的错误,他不仅无法要了我父亲的狗命,最终到是让我父亲将他送上了西天。

松了绑的父亲同我妈默默地回到了牛栏房。在我妈用盐水清理他被恶打的伤口后,他默默地呆坐了好一会,眼中显露出一股杀气。他拿了家里唯一的半盒洋火,什么也没有说,甚至连看也没看我妈一眼,就走出了那个借住的牛栏房,溶没在茫茫的黑夜中。不大一会,于朝龙的书房,也就是我父亲的父亲建造的书房发生了冲天大火。

那是一场很大的火。村里人说,自立村安家以来,黄沙塘于家就从来没有这样火红过。那火将于家半边天都烧红了。如果不是村人奋力扑火,就会将整个天都烧没。后来,在父亲成为一位共产党的大官时,村里人传言,在发生火灾时,有一条火龙冲天而上。那条龙就是父亲,这把火将压在他身上的恶运全烧掉了。父亲在自传中却称:主席教导我们说,哪里有压迫哪里就有反抗。为反抗恶霸地主的欺压,我勇敢地烧掉了他的家,义无反顾地参加了革命游击队。事实上,父亲放完火后,就不分方向地拼命跑。天亮才发现,他竟跑到了离家三十里地的大山边了。于是,父亲就潜进山林,用野果充饥。不日遇上了被国民党称为土匪的共产党游击队。带队的看他年青力壮,就叫他跟着一起干,给他饭吃。正处于饥饿而无处可投的父亲一听有饭吃,想都没想就同意了。由于父亲读过几年书,在这支大都由本地赤贫的流浪者组成的队伍里算是有文化的了,不久便成了带队的勤务兵。随着队伍的扩大,带队的从队长成为了司令,父亲也就成为了这支革命队伍一个队的副队长。我读大学时,为研究流氓无产阶级的命运和心理,读过许多著作。我在共产党的创始人那部有名的选集中读到过这样一段话:那些失了土地的农民,是人类生活中最不安定者。处置这一批人,是中国的困难的问题之一。他们很能勇敢奋斗,但有破坏性,如引导得法,可以变成一种革命力量。每读到此,我都会深深地感到共产党领袖们的伟大。只有他们才能这样深刻地认识父亲这些在当时中国普遍存在的群体,而且那样成功地将他们塑造成为伟大的革命战士。

我是在父亲放火亡命天涯后的第三个月出生的。父亲纵火后,我妈并没有离开于家村。一方面她怀着我已有七个月,更主要的是她无处可走。村里人看着她老实本份而且可怜,或许是怕父亲突然回来放火,也就没有太为难我们母子。我妈就种着那二亩公田度日。于朝龙家看在族人的份上,对我们母子还算照顾,有时甚至有意保护我们不受欺负。按照辈份,他让我叫他朝龙大伯。

我第一次见到父亲,是五零年初,那时我已经四岁多了。有一天我们村里来到好多人,直奔朝龙大伯家,一会儿就将朝龙大伯和他的儿子们全部捆绑着押了出来,全村的人都集合到了谷坪中,听一位穿黄军装挎盒子枪的人讲话。那人讲完之后,手一挥,有几个和他一样装扮的人就将朝龙大伯押着往后山走,一会就听到了几声枪声。之后,村里的人有点畏缩地将我和我妈推到那讲话的人面前。那人一改刚才讲话的那气愤的神态,很和蔼地抱起我说,“这就是我儿子?”。村里人连忙讲,“宁子,快叫爹啊”。我看着妈,妈点着头。但我感到要尿尿,于是就叫起来,“快放我下来,我要尿尿。”那个抱着我的人,也就是我父亲,很失望地将我放下来,又大度地打了我屁股一掌说,“妈巴子的,连爹都不会叫。”

那几个押走朝龙大伯的人回来后,父亲就带领他们走了。连他曾住过的,我和我妈现正住着的牛栏房都没有进去过。

父亲走了后,朝龙大伯家里大小都哭了起来。村里人帮着他们将朝龙大伯埋在后山于家的祖坟中。我要跟去看,我妈很紧张地将我拖回家,并在大白天就将门关上,对我说, “宁子,以后别乱走,千万别到朝龙大伯家里去。”我不解地看着妈,她好象做了对不起人的事一样。待了好一会,她流着眼泪又说,“好在你爹当官了,要不了多久就会接我们走,不然,我们在村里如何做人啊。”那以后,村子里面很热闹,先是朝龙大伯一家从那高楼大院搬了出来,住进了我家住的牛栏屋。我和我妈及原来最穷的几家搬进了大火后朝龙大伯重修的我家祖屋里。

对村子里的变化我是能感受到的。事实上我自己也在变化,其中最大的变化就是老到村口去玩,盼着父亲能接我走。有时也等来几个同爹一样着装的人,他们有的也到我家坐一会,或带点吃的穿的东西给我们,并告许我爹已经从部队转到县上工作了,当了什么县公安局长之类的,但就是没有带我们到城里面去的意思。因此,我很失望。

父亲再没有回来。快过年了也没有父亲回家的任何消息。于是,腊月二十九我妈决定到县城里去了一次。本来说好要带我去的,后来妈说,最好能去接你爹回家过年,要当天去当天回,所以让我在家等爹就行了。当天傍晚,妈回来了,是一个人回来的,没有父亲的影子。我问妈,妈什么也不说,只是坐在那里发呆。于是我就吵着要爹,呆坐着的母亲突然将我一把推到在地,狠狠地打着我的屁股,鬼哭般地说,“你哪有爹。你爹早就死了。你爹才是个流氓。”

数年后,我才知道,那天我妈在县城好不容易找到我父亲时,父亲正和几个青年男女在研究工作,其中有个长得很美的女人同父亲坐在一条长椅上。父亲见我妈胆怯地由警卫员领着站在门外时,刚才的笑容一下就没有了。他威严地近似咆哮着说:“谁叫你来的?”将所有在场人都吓住了。警卫员立即揪住我妈就住外拖。将我妈拖进门房后,警卫员厉声地追问我妈:你不是说,是我们局长的老婆,为什么局长一见到你就发火呢?我警告你,假冒局长的老婆就是流氓,流氓是要法办的。我妈早被吓得一句话也不敢说,听说这样来找老公是流氓,是要法办的,就连忙独自往家赶。

不久,就有人从县上来我们家,对我妈说,你与我们局长成为老公老婆是地主于朝龙包办的,现在政府不承认,你就在这张离婚书上押个手印。我妈呆呆地一声不响地押了个手印。好象对父亲休妻早就预料到了一样,平静得很。只是在来人说要将我带回城里去时,我妈哭了起来,她低着头喃喃地说:带走我的宁子我就不想活了,我就死,我就死。县上的人见这样,也就没有说什么走了。我长大后就想,父亲可能根本就不想带我进城,这不只是他那时工作忙,更主要的他正在同他的革命同志恋爱,如果有我在身旁那不大煞风景。

我妈是在一九五八年饿死的。那时,父亲已经是邻县的县委书记,也就是一位七品父母官。由于我一直跟我妈生活在老家,父亲还不时叫人送点吃的东西给我们母子俩。但我从来没有发现我妈吃一口,就是在她因缺食品饿得快不行时,也绝不动父亲送来的食品。她最终同她母亲一样,也饿死在黄沙塘于家这个陌生的村子里。所不同的是,她母亲留下的是一个也快饿死的无依无靠的小女子,而她留下的则是有一个已为父母官的父亲的我。

父亲和高姨的故事,是那个年代最普通最平常的事情,可以说没有半点传奇色彩。刚解放那时,革命队伍的同志们,大都要按电脑程序一样完成人生的一件大事,这就是没有结过婚的要选美定亲,原来有结发夫妻的要按“革命条件”进行重新审查,能换的就尽量换。自古来,就将江山和美人联系在一起的。革命成功了,江山归同志们了,没有美人相伴也就违背了古训。何况革命队伍中美人多得很。高姨就是父亲领导下的革命队伍中的大美人。

高姨出生在大城市天津一个工厂主家庭,其父亲拥有当时天津较有名的纺织厂。高姨是这个资本家最小的女儿,受过很好的教育,是共和国首任总理夫妇的校友。也许正是南开的革命激情的影响,高姨在十八岁那年参加了南下部队来到了湖南,后来就同我父亲一样转到地方从事新政权的建设工作。在我父亲担任县委书记时,高姨就是这个县的妇联主任了。

父亲是在与我妈办完离婚手续不久与高姨结为革命夫妻的。起初是情窦初开的高姨爱上了年轻有为的县委书记的。她感到这个大她许多的男人,是那样优秀的。他出身赤贫,苦大仇深,经过革命的战争洗礼,那样具有革命的理想,有为革命事业献身的精神。就是他表现出来的粗鲁也应该视为革命者的粗犷和豪气。当父亲知道高姨爱上他时,更是欣喜若狂,立即请来了他的老首长,在他的老首长及其新夫人的主持下,举行了婚礼,组建了让多少人眼热的革命家庭。

我在我妈死后的第三天由村里人送到了父亲和高姨家。我妈死了,村里人没有通知我父亲。村里人说,他已经将她休掉了。这么多年他又从来没有回来过,现在又当了那么大的官,还是不要告诉他了吧。于是,我这个孝子作为唯一的亲人,在大家的帮助下将我妈埋葬在她母亲的坟墓旁。但对只有十二岁的我以后如何生活,被饥饿折磨的村里人却一致认为,应该将我送到城里面去。他们说:当了官不要老婆自古以来多着呢,就是做了皇帝也会要儿子的。于是,我和两位算是本家的村里人来到父亲任职的那个县,好不容易找到了县委大院,站岗的却不放我们进去,说先要通报。村里人就说,你告诉他,他原来的老婆死了,我们给他送儿子来了。过了一会父亲的秘书就来了,将我们接到父亲的办公室。父亲很有教养地拉了一下村里人的手,并习惯地将手伸向了我。见我害怕一个劲往后退,父亲就用他那双大手抚摸了一下我的头说,“宁子,几年不见长这么高了,有十二岁吧。”村里人的诉说我妈死了,孩子太小,不是村里人不愿意抚养,而是怕跟着学坏。父亲先是有一些吃惊,然后中气不足地说:死了就没有办法了,宁子是我的儿子,就放在我这里吧。之后就叫秘书陪村里人去食堂吃饭。

这是父亲为官后第一次请村里人吃饭。特别是在那个充满饥饿的年代,请人吃饭是给人很大面子的。这种事对于家村的人来说,更是如此。刚解放后不久,父亲在县城当官后,村里有人来找过他。有的为了找个工作,也有为了各种难事来请求帮助。父亲都拒绝了。只要有人提出此类要求,他就会说,“你认为共产党的江山是我的,我想怎样就怎样。想参加革命,不要说好听的,原先为何只知道在家抱老婆过日子,为什么不象我一样提着脑袋参加游击队?!”慢慢地,就没有人再找他了。这些事让还不是我父亲爱人的高姨知道了,她以无比崇拜的心情写成了文章,在报上说父亲革命性和原则性很强,不利用职权为亲友谋福利。我想,父亲看后会在心里说,“妈巴子的,狗屁亲友,老子落难时谁都欺负我这个孤儿。”然后就会黯然神伤地沉默好一会。对父亲十分明显可以说还有点仇恨的回避,村里人是明白的。也许对原先欺负过这个无依无靠的孤儿感到内疚和后悔,慢慢地村里人就不再找他了,大家闲谈时也尽量不提到他,好象他与于家村没有什么关系。只是在与外村人提起父亲时,那种自豪感就特别明显。这一次,村里人因送我而享受了这难得的一餐,那兴奋之情可想而知。只是让他们感到遗憾的是,父亲没有同他们坐在一起共进午餐。

村里人吃完多日不见的白米饭,心满意足地走了。我坐在父亲的办公室不敢直视这个陌生却十分想念的父亲。父亲用电话叫来了一位女人。他们低声地谈论着什么,父亲是同她用官话加家乡的土话说的,从我能听到的,他妈饿死了,送他到寄宿学校等片言只语中,我知道他们在谈论我。最后,那女的说:“他终究是你儿子啊,就让他和我们生活在一起吧。”说完就走到我身旁,拉着我的手,对我说,“宁子,我们回家,好吗。”我看着父亲,只见他眼含着热泪,用感激的声音对我说:“还不快叫妈。”见我没有开口,那女人就说,“就叫高姨吧,好吗。”

这是我第一次见到高姨。看惯了村妇的我,简直没有办法形容她的美丽和气质。那时的高姨,已经同父亲为革命制造了两个革命接班人,这就是我四岁的大弟高兵和二岁多的二弟高阳。她作为少妇区别于少女的只是那本来圆滚的胸脯和臀部更加圆滚,更加鲜嫩。她的笑是那样灿烂,好看的红晕印着两个令人心醉的酒涡。她全身上下,一举一动都体现出知识女性的矜持和圣洁,善良而贤慧,且充满了温情。当然,这些形容词都是我现在想出来的。当时,我只觉得她好象我们村里供着的观音菩萨一样,高高在上,让人仰视,让人崇拜。更准确地说,我真有点忌妒这个在村里广为流传其劣迹的父亲,不知他前世修了什么福气,竟能占有高姨这样的女人。我多么为刚死去了的我妈抱不平。

父亲和高姨的家在县委会大院的后院里,是一间近二十多平米的平房。房子里除了床和书桌外没有其它东西,比起朝龙大伯原来的家差得远了。高姨是用布帘将房子分成两半。其中的一端就是我和两位弟弟的房间了。那只能挡住视线的布是没有办法隔开那无孔不入的声音的。这样,也就将父亲那曾经严重影响于家人生育的恶习传染给了我。每当夜深人静之际,当我听到用布帘隔开的房子那边传出高姨那压抑的娇喘声时,有一种少年男子的冲动就会折磨我,随着那优美而令人烦躁的声音的结束,我那莫名奇妙的激动就变成了怒气。这时,我甚至想为可怜的我妈做出一些让父亲和高姨难堪的事情来。当然,我总是什么也不敢做,可以说也根本不想做。只有在我娶妻生子了然男女之情之后,我才理解父亲抛弃我妈而追求高姨的合情合理性。无论如何都得承认,我妈无论从那方面来说,都不能与高姨同日而语。任何一个正常的男人,都会为得到象高姨这样的女人而与象我妈那样的无貌无才的村妇离婚的。何况,那还是地主于朝龙包办的婚姻,我父亲也许真的对我妈根本就没有那相依相恋之情,有的最多只不过是青春男女的情欲呢。

特别重要的是,高姨不只是父亲因革命而获得的一个美女。在一定程度上,高姨还是父亲革命事业的得力助手。甚至可以说,如果父亲是在游击队转战城乡中成为一位革命战士的话,那么,在革命成功并掌握了政权后,是高姨用她完美的行为将他培养成为共产党的一位优秀地方领导人的。

高姨是个美丽而有教养的女人,但更是一个革命者,是一个富有理想的革命者。在她的心目中,父亲也是一个有共产主义伟大理想的革命战士。她之所以愿意为父亲献出宝贵的青春和美丽,因为她将父亲当成了革命战士的化身。她是共产党队伍中少有的知识女性,她对共产主义革命事业是那样的坚信不疑,她心地纯洁,真心实意地为共产党的每一个英明决策而欢呼。她充满爱心,热爱革命队伍的战友们。作为妻子、作为母亲,高姨对自己的亲人们倾注了满腔热情。当然,这些亲人也应该是革命者或者将来是革命者,而象高姨的父亲那样的资本家虽然也是亲人,却只能体验那种与亲情和爱心完全相反的东西。

高姨的父亲来投奔高姨是在我投奔我父亲几年后的春天。准确地说,应该是六零年春天的故事了。高姨的父亲是在公私合营之时失去他心爱的工厂的,当然这绝对不能与我父亲在赌博中失去土地和房子相提并论。我父亲和高姨这些革命者,通过一种叫赎卖的办法剥夺了象高姨父亲那样的剥削者,其目的就是要将这些剥削者变成劳动者。那时候,高姨的父亲是不能再掌握工厂的经营管理权了,因为革命者认为,象高姨的父亲这样的剥削者,只有同工人们一起用铁器敲打铁钉才算劳动。于是,这位年过花甲、长期以管人和经营为生活内容的剥削者,想到了他同是革命者的女儿和已在革命队伍中当了官的女婿。于是,他在没有征得女儿女婿同意的情况下,就从那遥远的都市般的天津城,南下来到我们这座小县城。于是,就有他那从小丧父逝母的、现已掌握了政权成为了当地百姓的父母官的女婿,出于内心的热烈欢迎。于是,也就有了他那快十年不见、现也成为了革命者的女儿,大义灭亲之举。

准确说来,高姨之举也不是什么大义灭亲。她看着她的父亲在我父亲欢天喜地的陪同下来到家里时,先是有点吃惊,然后连忙关上门动员那满怀希望的老人回到工厂去劳动。“爸,你这样做是不对的。现在政府是收走了你的工厂,要你劳动,这是在挽救你。你过去靠剥削工人发家,那些财富本来就是工人们的,现在政府只不过代表工人拿回他们自己的东西。何况,你对政府不满就到我这里来,我这里不就变成了剥削者的避难所了。我和我爱人都是共产党员,还是领导干部,我们能这样做吗?!你住在我这里,会影响我爱人进步的。爸,不是女儿不孝,而是你必须服从革命的需要。等你改造好了,我一定接你养老。”那很有教养和风度的老人,听到这些话什么都没有说。他艰难地弯下腰,提起那个还没有打开的包。他的眼角有一点潮湿,也许是风将沙子吹进他那已显昏暗的眼睛。他小心地用那很好看的手帕蒙了一会眼睛,头也没回地踏上了北归之路。正计划如何孝敬这远道而来的岳父大人的我父亲,也被爱人的话惊醒了。他多么佩服爱人的思想觉悟和及时的决定。从此以后,我再没有看见那可敬又可怜的老人。他也没有再与他那女儿女婿通任何消息。据说,前些年,我二弟也就是高姨生的第二个儿子高阳,到过天津,见到了已有九十高龄的外公。老人曾问过这个一身名牌、出手大方的外孙开什么工厂,生产什么产品,如何在短短几年积累了这么多钱。当老人知道我二弟的公司除了倒卖政府批文外什么产品也不生产时,他惊讶中还有点气愤地说:“原来你们就是这样革命的。”不用说,这里的你们,肯定是指他那已黄泉做鬼的女儿和还在阳世为官的原女婿。

但是,我并不认为高姨真正理解了我父亲,特别是我父亲这些为生存而参加革命的人所具有的理想世界。的确,父亲常说的一句名言就是“我们这一代人,为了革命,什么都可以不要,甚至生命。”不管人们如何评价这好象有点口号式的话,我还是相信父亲说的话是真的,是出于内心的。与那些有意识地为穷苦大众的解放而牺牲小家的党的领袖们不同的是,象父亲这些被革命领袖分析过的流氓无产阶级,参加革命最大的原因是有了生存的机会和复仇的希望。我曾经这样假设过,如果在游击队时代,遇到了不离开了游击队就只有死的选择的话,父亲十有八九会选择生,因为他参加游击队本身就是为了生存。正是针对这一点,革命队伍的领导者们就要给这些战士们灌输除了生存之外的理想和道德观。他们告诉自己的部属们,战场上是你死我活的,只有战胜敌人才可最终获得生存的权力。胜利了就会有属于自己的土地、房子和女人。投降或逃跑是没有好下场的。革命成功后,是那能主宰他人生命的权力,才让父亲们真切地体会到革命的崇高和神圣。他们已经认识到,如果革命政权失去了,或者因自己的错误离开了这个掌握政权的革命队伍,那就意味着失去已经拥有的一切。所以,他们有为了革命牺牲自己生命的豪言壮语。也就是说,是生存的需要和共同的既得利益使父亲们具有为维护革命事业而奋不顾身的勇气和精神力量。高姨是没有办法认识到这一点的,就是认识到了,她也决不会承认这种让人痛苦的结论。

高姨和父亲对待革命理想的认识和理解是不同的,这在史无前例的文化大革命中完整地体现出来了。当父亲从受人敬仰的地区专员、高姨从地区党委宣传部长成为革命群众专政的对象时,父亲能够很快地适应了“低头认罪”的大气候,他可以通过各种方式向代表革命和正义的红卫兵及所有的造反派承认自己的错误,他一次又一次地痛改前非的表示,让自己一次又一次逃过了皮肉之苦。而高姨则不同了,她永远坚信自己革命理想崇高而神圣不可侵犯,就是被打断了肋骨也不愿意向造反派承认任何有关革命原则问题的错误。于是,她这个资本家的臭小姐被关进了牛栏,关进了父亲革命前住过的那种吞没人意志的地方。高姨是坚强的,是勇敢的,始终不渝坚信共产党是会还她清白的。

然而,高姨最终还是没有等到那一天。当红卫兵将父亲的认罪书和与死不认罪的资产阶级孝子贤孙的现行反革命脱离夫妻关系的声明书,放在高姨面前时,高姨那漂亮的面孔被伤感和愤怒所扭曲。她不敢相信这是真的,她不相信十多年来崇拜而献身的革命者竟这样否定了革命的原则,她不敢想象那样爱着自己的爱人就这样将她出卖了。她从一个革命斗士很快变成了就象我妈押离婚手印时一样的村妇。她神经质地反复读着那两份材料,终于流下了就是惨遭毒打也没有流下的泪。她喃喃地自语:“怎会是这样呢?怎会是这样呢?”几天后,她找机会投河自杀了。

父亲是在下放到五七干校劳动改造后,由我带着两个弟弟将高姨自杀的消息告诉他的。尽管他没有说什么,但看得出来,他还是很悲伤的。高姨终究是他深爱的女人。他只是为了向党证明自己从没有与党有二心,才写了那份与死不承认错误的爱妻脱离关系的声明。他看着天空,口中念念有词,好象在说:“古言云,识时务者为俊杰,好多比我你地位高得多的老共产党人都为了生存在讲违心话,你又何必那样死心眼呢。”当然,这些话父亲是不会当着我们面说的,可能他心里也不是这样想的。他只是恶狠狠地说了一句“妈巴子。”

记得自从高姨指出“妈巴子”这句话是流氓语言后,常挂在父亲口上的““妈巴子”已有好几年没有说了。

父亲和雪姨成为夫妻,是父亲文革后复出成为这个城市的领导人之后的事情。父亲是七七年平反成为这里市委书记的。那时,距高姨自杀已有九年多,父亲也五十六岁奔六十的人了。

雪姨刚好比父亲小二十六岁,比我小一岁,是个三十岁尚未婚配的老姑娘。雪姨是市物资局机关里的一位普通工作人员,其父母都是我们城市一家街道工厂的工人。雪姨共有五个弟弟和一个妹妹。雪姨中学毕业就到机关里担任打字员工作。开始时,机关里那些未婚青年好象也有人给雪姨写过纸条,送过电影票,但都没有很好地发展。主要原因大多是雪姨强调要与父母一道承担抚养弟妹的义务,慢慢地那些原来怀着热呼呼希望的青年冷却了。开始雪姨并没有当回事,但随着岁月无情的流逝,弟妹长大后,雪姨自己也就急了起来。

这时,父亲文革前的秘书到物资局出任局长。这位新局长在同机关干部谈话时知道了雪姨的情况。于是,他连夜赶到我们家,在书房里与父亲密谈了一会就走了。

第二天,父亲在家里接待了物资局局长和物资局办公室工作人员雪姨。父亲先还是与那位心照不宣的局长谈了几句工作,后就和雪姨谈天说地起来。也许雪姨从来没有和父亲这样大的官面对面谈过话,开始有一些紧张,后看到父亲还很随和,也就能说上几句。他们走时,父亲一改平时不送下属的习惯,很高兴地将他们送到大门口,反反复复说着那话“很好,就这样定了,就这样定了”。

不久,雪姨就入了党,从打字员提升为办公室副主任,后来就和父亲结了婚,成为了我们兄弟三人的继母。

父亲同雪姨结婚前,我们就没有同父亲居住在一起。我和二弟都在父亲平反前就分别在就业的工厂和商店娶妻生子,住在各自单位用厂房和仓库改建的宿舍里,三弟还在农村接受贫下中农再教育。本来,对于已官复原职的父亲,我们这几个在文革中跟着他受过苦的儿子们,曾抱有幻想,希望能得到某种补偿。父亲英明地洞察到了我们的企图,为了粉碎我们的依赖思想,父亲很严肃地将我们兄弟三人叫到他的书房里,讲述了许多革命道理,他要求我们要安心工作,要靠自己立足社会。我们对父亲虽然有一些看法,但从内心上还是崇敬父亲作为一个革命者伟大的品德。但无论如何,我们还是把父亲的住所当成我们公认的家。我们兄弟经常带着妻子儿女回到共同的家一聚,共述父子和兄弟的革命感情。父亲也乐意与我们兄弟和孙子孙女们在一起。雪姨来到这个家后,我们慢慢感觉到了有些变化。

这种感觉起初是朦胧的,最终的明朗还是雪姨的杰作。那是一个深秋的夜晚,我大弟临时休假,闲来无事,就和他的儿子回家看望父亲和爷爷。象往常一样,他用自己的钥匙打开门,只见暗暗的客厅除了电视机的光亮外没有其他的灯光,于是,他五岁的儿子也就是我侄子熟悉地打开了灯。这下,可让我弟弟惊惶失措了。原来只穿着短裤的父亲正抱着差不多没穿什么的雪姨在看电视。父亲开始有一点尴尬,立即就升起了一股怒火,他厉声地对着平时恩爱有加的小孙子吼道:“这样没有礼貌,进房连门也不敲。真没有教养。”我大弟那可爱的孩子被吓哭了,我已过而立之年的弟弟低着头,牵着伤心哭泣的儿子,红着脸边向门外退边小声说“我们不知道,我们就走。”弟弟走出家门后,听到房里父亲怒骂声。“妈巴子的,叫你不要这样,你偏要。妈巴子的。”接着就是雪姨娇泣声。

我是在我自己的家里知道这件事的。大弟怀着万分懊悔和失落的心情回到家后,他那已经不再哭泣的儿子将刚才的遭遇告诉了他母亲,也就是我的大弟媳。这个在我父亲还是政治贱民时、顶着她那领导一切的工人阶级家庭的百般阻挠、爱上并最终嫁给了我弟弟的女子,一听就火冒万丈,她不顾我弟的反对,硬是拖着我弟弟和他们的儿子到了我家。当着我老婆和女儿的面讲述了这一切。最后,我弟媳强调指出:“大哥大嫂,你们说说,那不是我们自己的家吗?!回自己家难道也需要敲门。他们为什么不注意自己的形象呢。老爷子还好意思骂我的儿子。”我发现我的妻子和女儿也一个劲地点头称是,一股钻心的痛苦莫明奇妙地涌上心头。我真不愿意承认,那已经不是我们的家了。

第二天,我和大弟不约而同地来到父亲的办公室,将父亲和雪姨家的钥匙交给了父亲。父亲甚至连看都没有看放在他办公桌上的钥匙,就压低嗓门说:“妈巴子的,你们想造老子的反?”在这庄严的市委书记的办公室里,这粗野的骂声,也充满了权力的威严。自此以后,我和俩个弟弟不时有“宁愿跟着叫化子娘,也不要跟着当官的爹”的感叹。不久,我们三兄弟经过考试,分别到北京和省城上学深造后,父亲家就更难得见到儿子和孙子们的身影了。就是有时父亲发话,想见见孙子孙女,我老婆和弟媳总是有各种理由而让父亲难以如愿。

好在父亲工作忙。他的口号是将四人帮耽误的时间夺回来。于是为了响应英明领袖的伟大号召,他根据中央的十个大庆油田等类似的经济发展目标,绘制了我们城市的宏伟蓝图。革命的事业和革命的理想就象兴奋剂,使父亲充满了活力。他没日没夜地工作,他经常告诫部属们,要为官一任,造福一方。他则要为革命鞠躬尽瘁,死而后已。改革开放后,父亲的自我感觉更是良好。他那花白的头发,在雪姨的“强迫”下染成了乌黑发亮,真如焕发了革命青春。

父亲在岁月的流逝中,在人民群众有肉吃和有电视看而为他们这些掌握权力的革命者歌功颂德时,又一次深刻体会到了一个革命者伟大的人生。他在赞扬声中开始忘记了青年时代在黄沙塘于家和在文化大革命中所受到的欺压和羞辱。他甚至不愿意再去回顾更不想思考那些岁月。然而,那岁月的痕迹象幽灵一般,时不时钻进他的生活。

那时改革开放和引进外资是联系在一起的。有一天,父亲的部属很高兴地向父亲汇报说,终于钓到了一条大鱼,美国某大集团公司董事长原来是我们市某县五十年代出去的。那可是个能人,从讨饭到打工、再到开小店最后办成了有几十亿美元家产的大公司了。他富了不忘乡亲,有意到家乡投资,现在由省里某厅某领导陪同已下榻在我市的某宾馆里,希望书记能前往共同晚餐。父亲哈哈一笑,也没问这外商姓何名谁,就兴高彩烈地前往宾馆。在宾馆的总统房的客厅里父亲见到了那位由省某厅某领导陪同、由大小秘书伺候着的美国大公司的董事长。可双方刚准备握在一起表示友谊和问候的手却在半空中凝固了,一个共产党的市委书记和一个来自美国的大公司董事长都目瞪口呆地盯着对方。最后,还是父亲首先清醒过来,他将原伸过去准备握手的大手变成了挥动的手势,很不礼貌地指着对方而十分威武地说:“你不是五二年叛国的大地主于朝龙的二儿子吧?!”美国公司的董事长也很快从当初的惊惶中解脱出来,他的手很绅士般地将油光发亮的头发整理了一下,扶了扶昂贵的金丝眼镜,很大度地说,“家父是本市某县的黄沙塘于家的于朝龙先生。难道你不认识?!”并回过头来很鄙视地用英语对其秘书说了些什么。

那已准备好的美味佳肴父亲是无缘享用了。尽管省里某厅的领导和父亲的部属想从中调节一下这俩位关键人物因历史造成的紧张而尴尬的气氛,父亲还是气愤地离开了宾馆,并将随之而来的因胆怯脸都变了色的部属狠狠地骂了一通。部属有口难言地不敢作任何解释。

于朝龙的儿子并没有被父亲的粗鲁和权势所吓倒,尽管他明显地感觉到各级官员对他的态度的变化。第二天,他就用美元租了这座城市最好的十部小车,同他的秘书带着各种礼品回到了他当年亡命而别的故土。当他知道那些留在家乡的兄弟和母亲都先后命归九泉时,并没有流下一滴眼泪。他的秘书给全村每家都送去了贵重的礼品,全村人都感激不尽地接受了,并自发地拿着工具同他一道整修着他父母兄弟的坟墓。后来,他向村里人很礼貌地鞠了三躬,留下二十万美元给村里人修水库和建学校就走了。他是直接从老家到省城坐飞机走的,以后再也没有了他的消息。

村里人不管乡和县里的反对,用于朝龙儿子留下的美元,很夸张地为于朝龙夫妻及儿子们修建了一座很大的坟墓,并在坟墓不远处修建了方圆百里最好的学校。村里最有学问的老夫子亲自书写的“朝龙学校”几个大字,立在学校的屋顶,红红的,好远都可以看到。

这些情况父亲是知道的。在公开场合他没有说什么,也没有干预。他只是对几十年没有往来的乡亲们感到不解。他曾私下说,“妈巴子的,共产党对你们还不好。几十万美元就将你们收买了。”尽管父亲表现得那样不屑一顾,但可以看得出,父亲对于朝龙儿子用金钱得到的尊敬在骨子里还是很在意的。

就在于朝龙儿子回于家村后不久,我父亲叫雪姨将大学毕业后回到故乡工作的大弟和二弟找回家。在父亲的书房里,父亲同那俩个日益疏远的儿子很认真地说:我老了,干革命几十年总算明白了一些道理。我知道,你们对我不关心你们的前程有意见,不是我不关心,而是时机不到。你们想想,我在位时,你们在我手中能做多大的官呢,搞得不好还会有人东告西告的。现在我要退了,对你们还是要有个安排的。我想,老二你可以从政,老三你可以从商,你们大哥在外省教书,我就没有办法管了,如果他愿意,可以调回来,从政从商由他选。

可想而知,当我两个一直对父亲抱有成见的弟弟,从革命者的父亲口里听到这些严肃而富有亲情的安排时,真是目瞪口呆不敢相信。他们看着父亲那少有的慈祥而真切的眼光,深深地体会到父爱的伟大。我二弟后来多次对我说起他那时的感受,最后总是感慨地说,无论如何还是血浓于水啊。

父亲是八十年代中期从第一线退下来的。那年父亲年已六十有五。当时,中央在反复强调什么废除领导干部职务终身制。省里领导找父亲谈话时,父亲一再说自己身体还好,可以为党奋斗终生,最后还是同意退居二线。但提了一个要求,就是:“江山是我们这些老家伙打下来的,应该交给我们信得过的人。我们的孩子生活在我们身边,受我们教育多年,是信得过的最可靠的革命事业接班人。比如我家二小子,就是很有觉悟和政治水平的好青年,应该好好培养。”

据说,省里面的领导非常同意父亲的观点,因为,中央就有相当权威的人公开说过类似的话。于是,在父亲从书记成为顾问委员会主任的同时,我大弟就从工厂的工程师成为了市团委书记,后来就成为市委组织部长进了常委班子。在顾问委员会完成其历史使命,父亲最后完全退下来时,大弟已是市政府常务副市长了。

事实又一次证明,我父亲的决定是十分正确的。我大弟的确非常具有政治家的天赋。他不仅继承了我父亲敢说敢干、能够面对一切困难的无产者精神,而且在所有的公众场合,他都能将高姨礼貌和给人信任的修养完整地体现出来,更为重要的,他所受的教育比父亲们能更快地接受新思想和新事物。他在为城市的经济发展做了大量工作的同时,还能用许多非常合理的口号将社会流行的诸如卡拉、桑拿之类披上改革开放的外衣。在他的策划下,我二弟就能从一个工薪人士,迅速地合情合理合法地成为了掌握上千万资产的大老板。

我那很有觉悟和政治水平的大弟,就曾这样对我说过:古时候总是将升官和发财联系在一起说的,共产党的官在表面是不允许个人发财的,只能说为人民服务。但为人民服务,人民是需要付出代价的,这种代价就是交出你作为主人的权利,特别是对社会经济资源和政治资源及文化资源的支配权。共产党的权力在很大程度上就意味着对社会财富的占有。如果没有实际利益,人们也就没有追求权力的兴趣了。天下熙熙,利之所趋。但权力这个东西是有时效性的。因此,对权力的继承从来就是权力掌握者在权力有效期间必须认真考虑的问题。我们家老爷子尽管没有读过政治学,但事实上也精通此道。你想,如果没有我及他培植的接班人掌握着权力的话,他离休后,最好的情况就是按政策享受那些有限的待遇了,而且要看人家的脸色。

对这点,父亲虽然从不在公开场合加以评论,但有一次我探亲回家同完全闲赋在家的父亲小饮,他在几杯茅台下肚后,看看左右无人轻声地对我说:“妈巴子的,你俩个弟弟比你强,为官的如鱼得水,为财的合理合法。你啊,就会读死书。如果想通了,还是回老家来吧,我叫人给你个职务。这里干点什么都方便。”说完就嘿嘿地笑了起来。可以看得出,父亲尽管为自己不能亲自再在官场上拼杀感到有一些失落,但为自己的后人有如此造化也感到心满意足了。但我总感到,那充满父爱的笑声又多么象狡诈的老农骗取了他人财物后的窃笑。

父亲与雪姨的关系还算可以。人们对老夫少妻之间最担心的事情,莫过于年少妻子的青春荡漾如何在已不提当年勇的老爷子那里得到有效的抑制而不决堤外泄。这些问题在父亲那里应该不是问题。雪姨就曾很神秘地对我的老婆、也就是她那和她年龄相近的儿媳说起过老爷子那永不满足的欲望。“真不知道吃错了什么药,越老越行了,离休之后竟然天天需要。我真的受不了了。他的儿子也是这样吗?如果这方面都遗传的话,做于家的儿媳妇可就惨了。”我老婆听到这些话,竟脸红得不知如何回答这位长辈的发问。就是在晚上同我恩爱后向我讲述这些话时,我还能感到她脸在发烧。但凭着我们这些年青体壮的于家后代的亲身体会,雪姨这些话,应该有点夸张,或许是在嗔怪中证明自己选择的正确,也可能还有点对自己能很好地开发老年人的性爱潜能感到骄傲。我的这些想法并没有告诉我老婆,我不愿意与自己的女人讨论长辈的那种事,尤其在没有穿衣服的床上。

尽管父亲宝刀未老,但雪姨还是没有同意与父亲生孩子。其理由是父亲家老大和老二,也就是我和大弟高兵的孩子都有几岁了,雪姨再生孩子有点难为情。尽管这也许不是真正的理由,但我们兄弟还是真心感谢雪姨的,我们都不希望自己的孩子叫比他们小得多的父亲的孩子叫叔叔或者阿姨。雪姨没有为父亲制造革命后代,并不影响父亲对雪姨家事的关照。因为他知道雪姨是为了弟妹们而耽误了婚姻才将处子身献给他的。所以,无论父亲是否在位,凡是有关雪姨家的事,他都要亲自出面办理。在父亲的亲自关怀下,雪姨高中毕业的大弟到党校深造后担任了一个区的副区长,二弟从工厂调到了团市委担任青工部部长,三弟到工会担任办公室副主任,四弟和五弟都保送上了我们市属大学,六妹初中毕业不愿意上学就到了公园担任出纳。仅此一点,雪姨也是感激父亲的。

父亲德高望重,且革命事业后继有人。他心满意足地安度着晚年。但不知为何,当他生命进入倒记时后,他总爱和儿孙们谈论他的父母和几十年没有回过的故乡,有一次在饭后闲谈中,父亲竟然说,他这一生要感谢于朝龙。如果不是于朝龙教他赌博,他可能就会守着那几十亩地而在解放后成为地主。如果不是于朝龙因他拿东西而毒打他,他也不会火烧于朝龙家房子而远走他乡参加革命。如果没有于朝龙包办,他就不会与我妈成亲也就没有我了。看着父亲那忧郁的老脸,弟弟和部属们就建议他到故土看一看,或请老乡亲们来家坐坐。然而,每当这时,他又总是很豪放地说,革命者四海为家,哪有那么多婆婆妈妈的事情。

但我是知道的,他在心里一定在骂,“妈巴子的,于家人从来就没有当我是人呢。”

父亲要死了。

尽管他日益虚胖的身躯,会给人各种错觉。然而,所有了解他的人都知道,他的五脏已全部发生了不可逆转的病变。

我同许多人守候在病房里,在等待着他死亡。

市委办公室送来了为父亲准备的悼词。这篇由父亲原秘书、现市委书记审定的悼词对父亲评价很高。文称,父亲出于贫苦人家,青少年时代因反抗地主的压迫而投身革命,历任游击队队员、副队长,解放后任县公安局长、县委书记,地区专员。文化大革命受冲击,文革后任市委书记,为废除领导干部终身制,主动退居二线,担任顾委会主任,最终享受副军级待遇。是忠诚的共产主义战士,是党卓越的地方领导者,是人民的好儿子。。。。。。

看着这些赞颂之词,我却想起我妈说过的话。

由于本机限制,该操作已被取消,请与管理员联系

这两天同事EXCEL经常提示这个:由于本机限制,该操作已被取消,请与管理员联系。
每次都是因为想打开EXCEL中的超链接,所以会弹出这个提示来。
本来也没在意这个,不过现在用的比较多了觉得还是需要这个功能的。原来以为是OFFICE出问题了,就卸载了重装安装了一次,结果问题依旧,看来不是OFFICE的问题。不得已,上网百度了一下,这时候才发现原来很多人都有这个问题。按照网上说的就是默认浏览器的事。我抱着试试看的心态先把遨游和IE来回设置了几次,还是不行,后来我干脆把IE直接设置成默认的浏览器了,虽然同事平时用的都是遨游。你别说,这么设置一下就好了,不过虽然设置的IE是默认浏览器,但打开的却上遨游。OK了,总之这个问题就是来回多设置几次默认浏览器的事,朋友们有相同问题的话可以多试几次便可。