凌动魅力

Month: 九月 2009

phpmyadmin出现问题,紧急调试中

问题如下:
链接表的额外特性尚未激活。要查出原因,请点击此处。
使用配置文件中定义的控制用户连接失败。
服务器上运行了 Suhosin。请先查看文档中是否有类似的情况。

由于我是使用的apt-get安装的phpmyadmin,检查配置文件发现,/usr/share/phpmyadmin下的config.inc.php实际上映射的是/etc/phpmyadmin/config.inc.php。
打开/etc/phpmyadmin/config.inc.php,根据错误提示,找到控制用户的代码:

$cfg[‘Servers’][$i][‘controluser’] =
$cfg[‘Servers’][$i][‘controlpass’] =

删掉等号后面的东西,改成:

$cfg[‘Servers’][$i][‘controluser’] = ‘root’;
$cfg[‘Servers’][$i][‘controlpass’] = ‘123456’;

123456为你root的密码,保存,刷新phpmyadmin页面 使用配置文件中定义的控制用户连接失败。 问题解决。
网络下下载一个对应你phpmyadmin版本的安装包,我下载的是:phpMyAdmin-3.2.2-all-languages.zip,解压scripts/create_tables.sql文件,登录phpmyadmin,新建一个名叫phpmyadmin的数据库,导入create_tables.sql文件。
然后修改/etc/phpmyadmin/config.inc.php,将:

$cfg[‘Servers’][$i][‘pmadb’] = ‘phpmyadmin’;
$cfg[‘Servers’][$i][‘bookmarktable’] = ‘pma_bookmark’;
$cfg[‘Servers’][$i][‘relation’] = ‘pma_relation’;
$cfg[‘Servers’][$i][‘table_info’] = ‘pma_table_info’;
$cfg[‘Servers’][$i][‘table_coords’] = ‘pma_table_coords’;
$cfg[‘Servers’][$i][‘pdf_pages’] = ‘pma_pdf_pages’;
$cfg[‘Servers’][$i][‘column_info’] = ‘pma_column_info’;
$cfg[‘Servers’][$i][‘history’] = ‘pma_history’;
$cfg[‘Servers’][$i][‘designer_coords’] = ‘pma_designer_coords’;

前的注释去掉,不过,我的本身就这样,我没做任何修改,登出phpmyadmin,再登录,如何?链接表的额外特性尚未激活。要查出原因,请点击此处。 问题解决!
至于 服务器上运行了 Suhosin。请先查看文档中是否有类似的情况。 问题,suhosin本身是加强PHP安全性的脚本,不影响mysql使用,无须理会。

使用OA提升企业效率-协同办公

OA是Office Automation的缩写,指办公室自动化或自动化办公。但是有100个人会说出100种不同层次、不同内容的解说;有100家单位会有100种不同层次、不同内容的应用需求!100个厂商会有100种不同技术类型、不同层次、不同定义的系统!这主要是因为随着计算机技术、通信技术和网络技术的突飞猛进,关于OA的描述也在不断充实,但至今还没有人对OA下过最权威、最科学、最全面、最准确的定义。

本人身在在教育行业,平时守在学校网管中心看着服务器玩。或许是现在教育行业资源浪费的通病,花钱买了服务器,负载却近乎于零,于是乎,我就琢磨着折腾点东西玩。然后才接触了OA。

百度谷歌OA浪费无数时间,国内几乎没有免费开源并且基于PHP+Mysql的OA。

eGroupWare:
eGroupWare是一个多用户,基于PHP开发的协同工作套件。 目前可用的模块包括:电子邮件(IMAP/POP3),通讯录,行事历,备忘录,内容管理,文档管理,论坛,书签,知识库Wiki,聊天室等。

我在debian下apt-get install egroupware 期间安装意外中断,之后再使用apt-get install egroupware结果直接给我使用的服务器重新换了一个环境,擦,岂有此理,卸掉卸掉。

PHProjekt:
PHProjekt是一个模块化的协同办公系统用于共享信息和文档。 它包括的组件有:团队日历,Time Card系统,项目管理,请求跟踪,文档管理,通讯录管理,Email客户端,论坛,聊天,记事本,共享书签,待办事项目列表,投票系统等。 PHProjekt支持多种协议如ldap,xml/soap和webdav并已经被翻译成36种语言。 此外它支持7种数据库包括 MySQL,Postgres,Interbase,Oracle,Informix和MS-SQL。

说真的,PHProjekt给我的感觉就是开上去很美,表面上支持36种语言,第一步在安装的时候就乱码,对照英文介绍安装之后,界面依然乱码……网上找教程,修改文件,修改编码。。。。。chat模块依然无法正常输入汉字,界面也不行,运行速度,偶尔卡顿。

GForge:
GForge是一个基于Web的协同开发平台。 它提供一组帮助你的团队进行协同开发的工具,如论坛,邮件列表等。 用于创建和控制访问源代码管理库(如CVS,Subversion)的工具。 GForge将自动创建一个源代码库并依据项目的角色设置进行访问控制。 其它工具还包括:管理文件发布,文档管理,新闻公告,缺陷跟踪,任务管理等。

这个还在犹豫安不安装,先试试看吧。

Joomla1.5.12整合Discuz 7.0

内容出自:http://blog.treeber.com/20090104/500.html
本文是我在此基础上根据我自己的实际整合经验加以说明。

第一步:
安装joomla1.5.12(joomla.cn下载的中文版) ucenter1.5(gbk) disnuz7.0(gbk)
我分别安装在/www /u /bbs 目录,并分别对应www.domains.com u.domains.com bbs.domains.com 。

第二步:
复制bbs目录下的uc_client到www目录,注意修改文件夹属性,我的修改为775。

第三步:
在www目录下新建configuration_uc.php文件,内容如下:

第四步:
点此下载api文件
上传至www目录,同样注意修改文件夹属性,我这里设置的是775
第五步:
登陆ucenter,添加应用
应用名称: joomla
应用的 URL:www.domains.com
应用 IP:留空
通信密钥:dfjsalkfjslakj32142080dasllkj
应用类型:其他
应用的物理路径:留空
查看个人资料页面地址:留空
应用接口文件名称:uc.php
标签单条显示模板:留空
标签模板标记说明:留空
是否开启同步登录:是
是否接受通知:是
现在查看通信是否成功

第六步:
点此下载插件并在joomla安装

第七步:
修改www目录下的/plugins/authentication/joomla.php文件(修改之前请备份)
在这条代码后面

jimport( ‘joomla.plugin.plugin’ );

添加

//added by afo…
include_once(JPATH_ROOT.DS.”configuration_uc.php”);
include_once(JPATH_ROOT.DS.”uc_client”.DS.”client.php”);
include_once(JPATH_ROOT.DS.”api”.DS.”func_joomla_cb_user.inc.php”);
//added by afo…end

并把

$testcrypt = JUserHelper::getCryptedPassword($credentials[‘password’], $salt);

改为:

if($options[‘checkpassword’]==’skip’)
$testcrypt = $crypt;
else
$testcrypt = JUserHelper::getCryptedPassword($credentials[‘password’], $salt);

修改/components/com_user/controller.php文件,将

// Redirect if the return url is not registration or login
if ( ! $return ) {
$return = ‘index.php?option=com_user’;
}

$mainframe->redirect( $return );

改为:

// Redirect if the return url is not registration or login
if ( ! $return ) {
$return = ‘index.php?option=com_user’;
}

//added by afo…
exit(‘window.alert(“login success”);window.location.href=”‘.$return.'”;’);

$mainframe->redirect( $return );

然后把

// Redirect if the return url is not registration or login
if ( $return && !( strpos( $return, ‘com_user’ )) ) {
$mainframe->redirect( $return );
}

改为:

exit(‘window.alert(“logout success”);window.location.href=”‘.$return.'”;’);
// Redirect if the return url is not registration or login
if ( $return && !( strpos( $return, ‘com_user’ )) ) {
$mainframe->redirect( $return );
}

至此文件步骤修改完毕,请检查整合是否正常。

附整合失败后不能登陆的解决方法:

删掉/plugins/authentication/joomla.php /components/com_user/controller.php以及/plugins/user下的joomla_ucenter.php joomla_ucenter.xml,再重新上传源码包中的/plugins/authentication/joomla.php  /components/com_user/controller.php文件。

作者建议:

从discuz中登录后进入joomla看系统是否登录;

从joomla中登录后进入discuz看系统是否登录;

分别从两个系统登录,在discuz中注销看系统是否完全注销;

分别从两个系统登录,在joomla中注销后看系统是否完全注销。

其他改密、改名等也均请测试。

已知实现和问题:

·可由joomla中注册,ucenter其他应用中(以下简称ucenter)中将同步添加

·可由joomla中登录退出,ucenter将同步登录退出;

·可由joomla中修改/重置密码,ucenter可有新密码;

·可由DZ或其他ucenter应用中(以下简称DZ)注册,登录后joomla中将同时有新用户(不论在何处登录);

·可由DZ登录退了,Joomla将同步登录退出;

·可在DZ/Ucenter中改密码,Joomla将同步更改密码

·可在Joomla中删除和修改用户资料,Ucenter将同步删除或更改资料(Email)

–已知若在DZ中注册后,没有再次登录,则Joomla中若注册同名用户系统会给出提示,但界面过于简单

–已经Ucenter中删除用户后不会通知Joomla,而程序中当时暂无判断Joomla中用户是否被删除

–若在joomla后台设置需要验证,则用户登录时仍然提示成功,实际上未登录,这似乎是1.5.12的bug

–在退出后DZ有时会显示用户仍然在状态,但可能会提示用户“您没有登录”,或者点击后才消除登录状态

为了规避问题,建议如下:

^最好只开启某一个应用的注册链接

^建议Joomla不需用户验证,DZ需要用户验证或采用验证码

^仅在Joomla中删除用户

^需要更多针对DZ的测试和设置

php.ini配置详解

[PHP]
; PHP还是一个不断发展的工具,其功能还在不断地删减
; 而php.ini的设置更改可以反映出相当的变化,
; 在使用新的PHP版本前,研究一下php.ini会有好处的
;;;;;;;;;;;;;;;;;;;
; 关于这个文件 ;
;;;;;;;;;;;;;;;;;;;
; 这个文件控制了PHP许多方面的观点。为了让PHP读取这个文件,它必须被命名为
; 'php.ini'。PHP 将在这些地方依次查找该文件:当前工作目录;环境变量PHPRC
; 指明的路径;编译时指定的路径。
; 在windows下,编译时的路径是Windows安装目录。
; 在命令行模式下,php.ini的查找路径可以用 -c 参数替代。
; 该文件的语法非常简单。空白字符和用分号';'开始的行被简单地忽略(就象你可能
; 猜到的一样)。 章节标题(例如 : [Foo])也被简单地忽略,即使将来它们可能
; 有某种的意义。
;
; 指示被指定使用如下语法:
; 指示标识符 = 值
; directive = value
; 指示标识符 是 *大小写敏感的* - foo=bar 不同于 FOO = bar。
;
; 值可以是一个字符串,一个数字,一个 PHP 常量 (如: E_ALL or M_PI), INI 常量中的
; 一个 (On, Off, True, False, Yes, No and None) ,或是一个表达式
; (如: E_ALL & ~E_NOTICE), 或是用引号括起来的字符串("foo").
;
; INI 文件的表达式被限制于位运算符和括号。
; | bitwise OR
; & bitwise AND
; ~ bitwise NOT
; ! boolean NOT
;
; 布尔标志可用 1, On, True or Yes 这些值置于开的状态。
; 它们可用 0, Off, False or No 这些值置于关的状态。
;
; 一个空字符串可以用在等号后不写任何东西表示,或者用 None 关键字:
;
; foo = ; 将foo置为空字符串
; foo = none ; 将foo置为空字符串
; foo = "none" ; 将foo置为字符串'none'
;
; 如果你值设置中使用常量,而这些常量属于动态调入的扩展库(不是 PHP 的扩展,就是
; Zend 的扩展),你仅可以调入这些扩展的行*之后*使用这些常量。
;
; 所有在 php.ini-dist 文件里设定的值与内建的默认值相同(这是说,如果 php.ini
; 没被使用或者你删掉了这些行,默认值与之相同)。

;;;;;;;;;;;;;;;;;;;;
; 语言选项 ;
;;;;;;;;;;;;;;;;;;;;
engine = On
; 使 PHP scripting language engine(PHP 脚本语言引擎)在 Apache下有效。
short_open_tag = On
; 允许 tags 将被识别。
asp_tags = Off
; 允许ASP-style tags
precision = 14
; 浮点类型数显示时的有效位数
y2k_compliance = Off
; 是否打开 2000年适应 (可能在非Y2K适应的浏览器中导致问题)
output_buffering = Off
; 输出缓存允许你甚至在输出正文内容之后发送 header(标头,包括cookies)行
; 其代价是输出层减慢一点点速度。你可以使用输出缓存在运行时打开输出缓存,
; 或者在这里将指示设为 On 而使得所有文件的输出缓存打开。
output_handler = ; 你可以重定向你的脚本的所有输出到一个函数,
; 那样做可能对处理或以日志记录它有用。
; 例如若你将这个output_handler 设为"ob_gzhandler",
; 则输出会被透明地为支持gzip或deflate编码的浏览器压缩。
; 设一个输出处理器自动地打开输出缓冲。
implicit_flush = Off
; 强制flush(刷新)让PHP 告诉输出层在每个输出块之后自动刷新自身数据。
; 这等效于在每个 print() 或 echo() 调用和每个 HTML 块后调用flush()函数。
; 打开这项设置会导致严重的运行时冲突,建议仅在debug过程中打开。
allow_call_time_pass_reference = On
; 是否让强迫函数调用时按引用传递参数。这一方法遭到抗议,
; 并可能在将来版本的PHP/Zend里不再支持。
; 受到鼓励的指定哪些参数按引用传递的方法是在函数声明里。
; 你被鼓励尝试关闭这一选项并确认你的脚本仍能正常工作,以保证在将来版本的语言里
; 它们仍能工作。(你将在每次使用该特点时得到一个警告,而参数将按值而不是按引用
; 传递)。
; Safe Mode 安全模式
safe_mode = Off
safe_mode_exec_dir =
safe_mode_allowed_env_vars = PHP_
; ?Setting certain environment variables
; ?may be a potential security breach.
; 该指示包含用逗号分隔的前缀列表。安全模式中,用户仅可以替换
; 以在此列出的前缀开头的环境变量的值。
; 默认地,用户将仅能 设定以PHP_开头的环境变量,(如: PHP_FOO=BAR)。
; 注意: 如果这一指示为空,PHP 将让用户更改任意环境变量!
safe_mode_protected_env_vars = LD_LIBRARY_PATH
; 这条指示包含一个用逗号分隔的环境变量列表,那是最终用户将不能用putenv () 更改的。
; 这些变量甚至在safe_mode_allowed_env_vars 设置为允许的情况下得到保护。
disable_functions =
; 这条指示让你可以为了安全的原因让特定函数失效。
; 它接受一个用逗号分隔的函数名列表。
; 这条指示 *不受* 安全模式是否打开的影响。
; 语法高亮模式的色彩。
; 只要能被接受的东西就能工作。
highlight.string = #DD0000
highlight.comment = #FF8000
highlight.keyword = #007700
highlight.bg = #FFFFFF
highlight.default = #0000BB
highlight.html = #000000
; Misc 杂项
expose_php = Off
; 决定 PHP 是否标示它装在服务器上的事实(例如:加在它 —PHP—给Web服务
; 发送的信号上)。
; (我个人的意见,在出现什么power-by的header的时候,把这关掉。)
; 它不会有安全上的威胁, 但它使检查你的服务器上是否安装了PHP成为了可能。

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
max_execution_time = 30 ; 每个脚本的最大执行时间, 按秒计
memory_limit = 8388608 ; 一个脚本最大可使用的内存总量 (这里是8MB)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
; 出错控制和登记 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 错误报告是按位的。或者将数字加起来得到想要的错误报告等级。
; E_ALL - 所有的错误和警告
; E_ERROR - 致命性运行时错
; E_WARNING - 运行时警告(非致命性错)
; E_PARSE - 编译时解析错误
; E_NOTICE - 运行时提醒(这些经常是是你的代码的bug引起的,
;也可能是有意的行为造成的。(如:基于未初始化的变量自动初始化为一个
;空字符串的事实而使用一个未初始化的变量)
; 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_COMPILE_ERROR|E_ERROR|E_CORE_ERROR ; 仅显示错误
error_reporting = E_ALL & ~E_NOTICE ; 显示所有的错误,除了提醒
display_errors = On ; 显示出错误信息(作为输出的一部分)
; 在最终发布的web站点上,强烈建议你关掉这个特性,并使用
; 错误日志代替(参看下面)。
; 在最终发布的web站点继续让 display_errors 有效可能
; 暴露一些有关安全的信息,例如你的web服务上的文件路径、
; 你的数据库规划或别的信息。
display_startup_errors = Off ; 甚至当display_erroes打开了,发生于PHP的启动的步骤中
; 的错误也不会被显示。
; 强烈建议保持使 display_startup_errors 关闭,
; 除了在改错过程中。
log_errors = Off ; 在日志文件里记录错误(服务器指定的日志,stderr标准错误输出,或error_log(下面的))
; 正如上面说明的那样,强烈建议你在最终发布的web站点以日志记录错误
; 取代直接错误输出。
track_errors = Off ; 保存最近一个 错误/警告 消息于变量 $php_errormsg (boolean)
;error_prepend_string = "" ; 于错误信息前输出的字符串
;error_append_string = "" ; 于错误信息后输出的字符串
;error_log = filename ; 记录错误日志于指定文件
;error_log = syslog ; 记录错误日志于系统日志 syslog (NT 下的事件日志, Windows 95下无效)
warn_plus_overloading = Off ; 当将‘+’用于字符串时警告

;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;
variables_order = "EGPCS" ; 这条指示描述了PHP 记录
; GET, POST, Cookie, Environment and Built-in 这些变量的顺序。
; (以 G, P, C, E & S 代表,通常以 EGPCS 或 GPC 的方式引用)。
; 按从左到右记录,新值取代旧值。
register_globals = On ; 是否将这些 EGPCS 变量注册为全局变量。
; 若你不想让用户数据不在全局范围内混乱的话,你可能想关闭它。
; 这和 track_vars 连起来用更有意义 — 这样你可以通过
; $HTTP_*_VARS[] 数组访问所有的GPC变量。
register_argc_argv = On ; 这条指示告诉 PHP 是否声明 argv和argc 变量
; (注:这里argv为数组,argc为变量数)
; (其中包含用GET方法传来的数据)。
; 若你不想用这些变量,你应当关掉它以提高性能。
track_vars = On ; 使$HTTP_*_VARS[]数组有效,这里*在使用时用
; ENV, POST, GET, COOKIE or SERVER替换
post_max_size = 8M ; PHP将接受的POST数据最大大小。

gpc_order = "GPC" ; 这条指示被人反对。用 variables_order 代替。
; Magic quotes
magic_quotes_gpc = On ; 在输入的GET/POST/Cookie数据里使用魔术引用
; (原文就这样,呵呵,所谓magic quotes 应该是指用转义符加在引用性的控制字符上,如 '....)
magic_quotes_runtime= Off ; 对运行时产生的数据使用魔术引用,
; 例如:用SQL查询得到的数据,用exec()函数得到的数据,等等
magic_quotes_sybase = Off ; 采用 Sybase形式的魔术引用(用 '' 脱出 ' 而不用 ')
; 自动在 PHP 文档之前和之后添加文件
auto_prepend_file =
auto_append_file =
; 象4.04b4一样,PHP 默认地总是在 “Content-type:” 头标输出一个字符的编码方式。
; 让输出字符集失效,只要设置为空。
; PHP 的内建默认值是 text/html
default_mimetype = "text/html"
;default_charset = "iso-8859-1"
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
include_path = ; include 路径设置,UNIX: "/path1:/path2" Windows: "path1;path2"
doc_root = ; php 页面的根路径,仅在非空时有效
user_dir = ; 告知 php 在使用 /~username 打开脚本时到哪个目录下去找,仅在非空时有效
;upload_tmp_dir = ; 存放用HTTP协议上载的文件的临时目录(在没指定时使用系统默认的)
upload_max_filesize = 2097152 ; 文件上载默认地限制为2 Meg
extension_dir = c:php ; 存放可加载的扩充库(模块)的目录
enable_dl = On ; 是否使dl()有效。
; 在多线程的服务器上 dl()函数*不能*很好地工作,
; 例如IIS or Zeus,并在其上默认为禁止

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
file_uploads = On ; 是否允许HTTP方式文件上载
;upload_tmp_dir = ; 用于HTTP上载的文件的临时目录(未指定则使用系统默认)
upload_max_filesize = 2M ; 上载文件的最大许可大小
; Fopen wrappers ;
;;;;;;;;;;;;;;;;;;
allow_url_fopen = On ; 是否允许把URLs当作http:.. 或把文件当作ftp:...

;;;;;;;;;;;;;;;;;;;;;;
; 动态扩展 ;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
; 若你希望一个扩展库自动加载,用下面的语法:
; extension=modulename.extension
; 例如,在windows上,
; extension=msql.dll
; or 在UNIX下,
; extension=msql.so
; 注意,这只应当是模块的名字,不需要目录信息放在里面。
; 用上面的 extension_dir 指示指定扩展库的位置。

;Windows 扩展
;extension=php_nsmail.dll
extension=php_calendar.dll
;extension=php_dbase.dll
;extension=php_filepro.dll
extension=php_gd.dll
;extension=php_dbm.dll
;extension=php_mssql.dll
;extension=php_zlib.dll
;extension=php_filepro.dll
;extension=php_imap4r2.dll
;extension=php_ldap.dll
;extension=php_crypt.dll
;extension=php_msql2.dll
;extension=php_odbc.dll
; 注意, MySQL的支持现在是内建的,因此,不需要用它的dll

;;;;;;;;;;;;;;;;;;;
; 模块设定 ;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
[Syslog]
define_syslog_variables = Off ; 是否定义各种的系统日志变量
; 如:$LOG_PID, $LOG_CRON, 等等。
; 关掉它是个提高效率的好主意。
; 运行时,你可以调用函数define_syslog_variables(),来定义这些变量

[mail function]
SMTP = localhost ;仅用于win32系统
sendmail_from = [url=mailto:me@localhost.com]me@localhost.com[/url] ;仅用于win32系统
;sendmail_path = ;仅用于unix, 也可支持参数(默认的是'sendmail -t -i')
[Debugger]
debugger.host = localhost
debugger.port = 7869
debugger.enabled = False
[Logging]
; 这些配置指示用于示例的日志记录机制。
; 看 examples/README.logging 以得到更多的解释
;logging.method = db
;logging.directory = /path/to/log/directory
[Java]
;java.class.path = .php_java.jar
;java.home = c:jdk
;java.library = c:jdkjrebinhotspotjvm.dll
;java.library.path = .
[SQL]
sql.safe_mode = Off
[ODBC]
;uodbc.default_db = Not yet implemented
;uodbc.default_user = Not yet implemented
;uodbc.default_pw = Not yet implemented
uodbc.allow_persistent = On ; 允许或禁止 持久连接
uodbc.check_persistent = On ; 在重用前检查连接是否还可用
uodbc.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
uodbc.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
uodbc.defaultlrl = 4096 ; 控制 LONG 类型的字段。返回变量的字节数,0 代表通过(?)0 means passthru
uodbc.defaultbinmode = 1 ; 控制 二进制数据。0 代表?????Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char
; 见有关 odbc_binmode 和 odbc_longreadlen 的文档以得到 uodbc.defaultlrl 和 uodbc.defaultbinmode 的解释。
[MySQL]
mysql.allow_persistent = On ; 允许或禁止 持久连接
mysql.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
mysql.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
mysql.default_port = ; mysql_connect() 使用的默认端口,如不设置,mysql_connect()
; 将使用变量 $MYSQL_TCP_PORT,或在/etc/services 下的mysql-tcp 条目(unix),
; 或在编译是定义的 MYSQL_PORT(按这样的顺序)
; Win32环境,将仅检查MYSQL_PORT。
mysql.default_socket = ; 用于本地 MySql 连接的默认的套接字名。为空,使用 MYSQL 内建值
mysql.default_host = ; mysql_connect() 默认使用的主机(安全模式下无效)
mysql.default_user = ; mysql_connect() 默认使用的用户名(安全模式下无效)
mysql.default_password = ; mysql_connect() 默认使用的密码(安全模式下无效)
; 注意,在这个文件下保存密码通常是一个*坏*主意
; *任何*可以使用PHP访问的用户可以运行
; 'echo cfg_get_var("mysql.default_password")'来显示那个密码!
; 而且当然地,任何有读该文件权力的用户也能看到那个密码。
[mSQL]
msql.allow_persistent = On ; 允许或禁止 持久连接
msql.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
msql.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
[PostgresSQL]
pgsql.allow_persistent = On ; 允许或禁止 持久连接
pgsql.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
pgsql.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
[Sybase]
sybase.allow_persistent = On ; 允许或禁止 持久连接
sybase.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
sybase.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
;sybase.interface_file = "/usr/sybase/interfaces"
sybase.min_error_severity = 10 ; 显示的错误的最低严重性
sybase.min_message_severity = 10 ; 显示的消息的最低重要性
sybase.compatability_mode = Off ; 与旧版的PHP 3.0 兼容的模式。若打开,这将导致 PHP 自动地
; 把根据结果的 Sybase 类型赋予它们,
; 而不是把它们全当成字符串。
; 这个兼容模式不会永远留着,
; 因此,将你的代码进行需要的修改,
; 并将该项关闭。
[Sybase-CT]
sybct.allow_persistent = On ; 允许或禁止 持久连接
sybct.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
sybct.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
sybct.min_server_severity = 10 ; 显示的错误的最低严重性
sybct.min_client_severity = 10 ; 显示的消息的最低重要性
[bcmath]
bcmath.scale = 0 ; 用于所有bcmath函数的10十进制数数字的个数number of decimal digits for all bcmath functions
[browscap]
;browscap = extra/browscap.ini
browscap = C:WINSYSTEMinetsrvbrowscap.ini
[Informix]
ifx.default_host = ; ifx_connect() 默认使用的主机(安全模式下无效)
ifx.default_user = ; ifx_connect() 默认使用的用户名(安全模式下无效)
ifx.default_password = ; ifx_connect() 默认使用的密码(安全模式下无效)
ifx.allow_persistent = On ; 允许或禁止 持久连接
ifx.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
ifx.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
ifx.textasvarchar = 0 ; 若打开,select 状态符返回一个 ‘text blob’字段的内容,而不是它的id
ifx.byteasvarchar = 0 ; 若打开,select 状态符返回一个 ‘byte blob’字段的内容,而不是它的id
ifx.charasvarchar = 0 ; 追踪从固定长度的字符列里剥离的空格。
; 可能对 Informix SE 用户有效。
ifx.blobinfile = 0 ; 若打开,text和byte blobs 的内容被导出到一个文件
; 而不是保存到内存。
ifx.nullformat = 0 ; NULL(空)被作为空字段返回,除非,这里被设为1。
; 这种情况下(为1),NULL作为字串NULL返回。
[Session]
session.save_handler = files ; 用于保存/取回数据的控制方式
session.save_path = C:wintemp ; 在 save_handler 设为文件时传给控制器的参数,
; 这是数据文件将保存的路径。
session.use_cookies = 1 ; 是否使用cookies
session.name = PHPSESSID
; 用在cookie里的session的名字
session.auto_start = 0 ; 在请求启动时初始化session
session.cookie_lifetime = 0 ; 为按秒记的cookie的保存时间,
; 或为0时,直到浏览器被重启
session.cookie_path = / ; cookie的有效路径
session.cookie_domain = ; cookie的有效域
session.serialize_handler = php ; 用于连接数据的控制器
; php是 PHP 的标准控制器。
session.gc_probability = 1 ; 按百分比的'garbage collection(碎片整理)'进程
; 在每次 session 初始化的时候开始的可能性。
session.gc_maxlifetime = 1440 ; 在这里数字所指的秒数后,保存的数据将被视为
; '碎片(garbage)'并由gc 进程清理掉。
session.referer_check = ; 检查 HTTP引用以使额外包含于URLs中的ids无效
session.entropy_length = 0 ; 从文件中读取多少字节
session.entropy_file = ; 指定这里建立 session id
; session.entropy_length = 16
; session.entropy_file = /dev/urandom
session.cache_limiter = nocache ; 设为{nocache,private,public},以决定 HTTP 的
; 缓存问题
session.cache_expire = 180 ; 文档在 n 分钟后过时
session.use_trans_sid = 1 ; 使用过渡性的 sid 支持,若编译时许可了
; --enable-trans-sid
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
[MSSQL]
;extension=php_mssql.dll
mssql.allow_persistent = On ; 允许或禁止 持久连接
mssql.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
mssql.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
mssql.min_error_severity = 10 ; 显示的错误的最低严重性
mssql.min_message_severity = 10 ; 显示的消息的最低重要性
mssql.compatability_mode = Off ; 与旧版的PHP 3.0 兼容的模式。
[Assertion]
; ?????
;assert.active = On ; ?assert(expr); active by default
;assert.warning = On ; issue a PHP warning for each failed assertion.
;assert.bail = Off ; don't bail out by default.
;assert.callback = 0 ; user-function to be called if an assertion fails.
;assert.quiet_eval = 0 ; eval the expression with current error_reporting(). set to true if you want error_reporting(0) around the eval().
[Ingres II]
ii.allow_persistent = On ; 允许或禁止 持久连接
ii.max_persistent = -1 ; 持久连接的最大数。-1 代表无限制
ii.max_links = -1 ; 连接的最大数目(持久和非持久)。-1 代表无限制
ii.default_database = ; 默认 database (format : [node_id::]dbname[/srv_class]
ii.default_user = ; 默认 user
ii.default_password = ; 默认 password
[Verisign Payflow Pro]
pfpro.defaulthost = "test.signio.com" ; 默认的 Signio 服务器
pfpro.defaultport = 443 ; 连接的默认端口
pfpro.defaulttimeout = 30 ; 按秒计的默认超时时间
; pfpro.proxyaddress = ; 默认的代理的 IP 地址(如果需要)
; pfpro.proxyport = ; 默认的代理的端口
; pfpro.proxylogon = ; 默认的代理的登录(logon 用户名)
; pfpro.proxypassword = ; 默认的代理的密码
[Sockets]
sockets.use_system_read = On ; 使用系统的read() 函数替代 php_read()封装
; Local Variables: (局部变量)
; tab-width: 4
; End

完全实战-从零开始配置服务器

(一)硬件准备
一台HP ProLiant DL160 G5服务器(硬盘拓展到480G)
一台个人电脑(windows操作系统)
一个Lenovo 4G 闪存(fat32格式)
(二)制作引导U盘
网络上有许多制作Linux引导U盘的文章,但真正能用的少之又少,期间尝试多个办法,均以失败告终。下面将直接阐述最可行,也是最简单的方法。
下载U盘boot工具,共三个文件,已经打包,下载地址:http://www.filesavr.com/u-boot
解压syslinux-3.73.tar.gz文件,ctrl+r输入cmd打开命令提示符,然后使用cd命令进入syslinux-3.73目录下的win32文件夹
syslinux.exe -m -a x: x为U盘盘符
命令完成后就已经在U盘中建立了一个可引导文件,当然,这是隐藏的。
在u盘中建立此文件syslinux.cfg(用记事本或写字板编辑,注意,先在控制面板-文件夹选项中选择显示后缀名) ,并在里面加入
default vmlinuz
append initrd=initrd.gz

再将u-boot包中的vmlinuzinitrd.gz转移到U盘中。
最后从http://cdimage.debian.org/debian-cd/5.0.3/i386/iso-cd/下载debian-503-i386-CD-1.iso 镜像并转移到U盘里。
至此,U盘引导盘制作完成。
(三)安装debian
将U盘插入,启动服务器,bios默认从U盘启动,因此在这里我无需设置。
进入字符安装界面,根据提示操作,到检测磁盘的那一步拔掉U盘,待分区完成后再插上,回头按Erc重新选择挂载ISO镜像,安装基本系统,选择软件包(这里只选择桌面环境以及标准系统,装桌面环境是为了配置方便),安装grub,安装debian完成,拔掉U盘重启服务器。
在我重启完成后,经过一个蓝色选择debian模式的界面,直接提示找不到root错误-root (hd1,0)。
不用慌张,接着按Erc退回debian模式选择界面,按c,这是修复grub的界面,移到root (hd1,0)上,按e编辑root,改成
root (hd0,0)
回车,最后按b启动,启动正常。
进入系统,登陆,附件,终端
su 输入root密码后就可以行使root权限
vim /boot/grub/menu.lst
拉到最下面,找到前面没有“#”前缀的
root (hd0,1)
改为
root (hd0,0)
至此安装debian完成。
(四)配置源
安装好之后,发现apt-get install任何软件都失败,查看源配置文件,问题在于只有一个基础源,并没有任何软件源。直接google:debian 源。根据自己网络先随便选择一个,然后在终端输入
apt-get install apt-spy
如果源没有问题,安装完成后即可使用apt-spy。
cp /etc/apt/sources.list /etc/apt/sources.list.bak 备份源
apt-spy -d lenny -a Asia 搜索亚洲境内最快源
扫描生成/etc/apt/sources.list.d/apt-spy.list文件,这个其实就可以作为sources.list文件用了。
cp /etc/apt/sources.list.d/apt-spy.list /etc/apt/sources.list 覆盖掉原有的sources.list文件
(五)快速搭建环境
终端输入:
apt-get install lighttpd php5-cgi php5-mysql mysql-server php5-gd phpmyadmin
之后按照我这篇文章的方法配置lighttpd,地址:http://youling.wordpress.com.cn/debian-lighttpd-php-mysql.html
vsftpd按照这里的资料根据自己的需求配置,地址:http://wiki.ubuntu.org.cn/Vsftpd服务安装设置
如果需要外网访问phpmyadmin,输入如下命令建立软连接:
ln -s /usr/share/phpmyadmin/ /var/www/ root权限模式下才行
最后是ssh安装配置。
apt-get install openssh-server
配置SSH
vim /etc/ssh/sshd_config
这里有相关资料,按自己需求配置,地址:http://www.diybl.com/course/6_system/linux/Linuxjs/20090903/173704.html
至此,服务器配置完成。
(六)测试工作
使用ftp软件上传一个探针到web根目录。
访问http://127.0.0.1查看最终结果。
zend或者其他php加速器可以自己安装,很简单,这里就不再累述。
提示:如果修改某一服务的配置文件,使用 /etc/init.d/服务名 resart即可完成重启,比如:
/etc/init.d/ssh resart
呼呼,终于写完了。谢谢大家支持,有问题可以提问,以后还有深度教程。

使用U盘装debian的经历

我打赌,我一生都没有这么多次失败,连续3天,每次用U盘装debian都是各种各样的问题。
哭死~~~
好了,继续弄,弄好了再来写经验。。。

debian下配置环境的超简单方法

第一步
#apt-get install lighttpd php5-cgi php5-mysql mysql-server php5-gd
第二步
#vi /etc/lighttpd/lighttpd.conf
server.modules项增加一行,内容为:

“mod_fastcgi”

还需要在文件末尾加下面的内容:

fastcgi.server = ( “.php” =>
( “localhost” =>
(
“socket” => “/tmp/php.socket”,
“bin-path” => “/usr/bin/php5-cgi”
)
)
)

第三步
#service lighttpd restart

lighttpd 域名相关问题解决

所需模块:
server.modules = (
"mod_fastcgi",
"mod_access",
"mod_alias",
"mod_accesslog",
"mod_compress",
"mod_rewrite",
"mod_redirect",
"mod_evhost",
)

范例1

$HTTP[“host”] == “www.youling.biz” {
server.name = “youling.biz”
server.document-root = “/home/youling/webroot”
server.errorlog = “/home/youling/webroot/error.log”
accesslog.filename = “/home/youling/webroot/access.log”
}

这是在开启evhost模块后,在同一服务器实现多域名对应各自的目录,范例已经很清楚了,这里也就不再解释。
范例2

$HTTP[“host”] =~ “^youling.biz$” {
url.redirect = ( “^/(.*)” => “http://www.youling.biz/$1” )
}

这几行代码添加在lighttpd.conf是为了不因www.domains.com以及domains.com有相同的页面影响权重,并且实现访问domains.com=www.domains.com的目的。
范例3

$HTTP[“host”] =~ “youling.biz” {
evhost.path-pattern = “/home/youling/webroot/%3”
}

有人很好奇博客网站为每人分配1个二级域名是怎么实现的,添加这几行代码后,即可实现访问example.domains.com=domains.com/example。
注:以上修改皆在/etc/lighttpd/lighttpd.conf中完成。在此之前,请在DNS中解析如下:
A @ 192.168.0.5
CNAME www yourdomain.com
A * 192.168.0.5
192.168.0.5指的是您服务器的IP

Copyright © 2017 凌动魅力

蜀ICP备15003767号-1 Up ↑