MySQL/phpmyadmin问题解决手记:#2002 - 服务器没有响应 (或者本地 MySQL 服务器的套接字没有正确配置)

在fedora 12下使用自己从源代码编译的mysql使用,安装过程很麻烦,但好在运行正常。

之前使用windows下mysql/phpmyadmin,到linux下,当然也少不了,整个phpmyadmin,包括配置文件都是从windows下直接拷贝来的,但连接数据库总是出错:

#2002 - 服务器没有响应 (或者本地 MySQL 服务器的套接字没有正确配置)

连接远程数据库,就是虚拟主机数据库服务器却是没有问题的。使用linux终端连接

mysql -h127.0.0.1 -uroot -p

也没有任何问题。

而ping localhost,返回也是正常的,说明linux知道localhost就是本机的。

[root@localhost www]# ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.062 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.076 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.077 ms
^C
--- localhost ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2697ms
rtt min/avg/max/mdev = 0.062/0.071/0.077/0.011 ms

感觉很怪异,google一下,有这样的解决方案:

要将 config.inc.php 中
$cfg['Servers'][$i]['host'] = ’localhost’;
改成 $cfg['Servers'][$i]['host'] = '127.0.0.1';
还要添加
$cfg['Servers'][$i]['hide_db'] = 'information_schema';//使用登陆后看不见information_schema数据库

于是把配置文件里的host改成127.0.0.1,再连接,好了,连接正常。($cfg['Servers'][$i]['hide_db'] = 'information_schema';这一句加不加都无所谓,不影响连接数据库)

为什么在linux下localhost就是不能连接呢?查mysql官方文档[参看这里],看到有这样的句话:

如果未指定指定主机名或指定了特殊的主机名localhost,将使用Unix套接字。

Unix套接字默认为/tmp/mysql.sock,而本机并没有配置这样的套接字文件,所以自然是连接失败了。

官方文档确实非常重要,比网上的一般的解决方法都更权威有效得多。

是不是PHP可以支持断点上传?

使用phpmyadmin导入数据到数据库服务器上,文件比较大,30多M,导入了老半天,发现一个错误提示:

Script timeout passed, if you want to finish import, please resubmit same file and import will resume.

脚本超时,提示消息里说再次导入同一个文件,导入可以继续进行,试试,又导了老半天,终于完了,是导入成功的消息,查看一下导入的数据,正确的。

看这行提示消息,怀疑是不是php还可以有断点上传的功能,google一下,好像没有相关的资料,有不少人也在提这样的问题,只是没有谁拿解决方案,有人直接回复说“不可能!”,但这个导入确确实实是两次导入并成功导入的。

google这条消息,英文文章很多,没有怎么看,鸟语没学好,看起来太累;只是也好像没有说具体怎么断点续传的。

应该来说,断点续传功能需要服务器端与客户端协同工作才可能的,目前浏览器好像还没听说有这个功能的。

再仔细审视这个导入过程,phpmyadmin提示出现时,页面下面还有提示,说再次导入时会从某一个位置继续。而且这个错误不是跟一般的脚本超时时的显示那样(php错误),而是phpmyadmin的提示,也就是说,php脚本执行是正常的,但错误是出现在sql导入过程中。

怀疑是这样的:这里其实不是断点续传功能,而仅仅是分两次执行的一大段sql导入命令。

SMPlayer - Linux下优秀多媒体播放器前端/mplayer/yum安装

MPlayer 是 Linux 下最受欢迎的影音播放器之一,SMPlayer 是 MPlayer 的一款前端界面,这两者都是免费的开源软件。

安装 SMPlayer 的方法至少有三种:使用 yum,使用 rpm,以及编译源文件。在 Fedora 下安装 SMPlayer,最简单的方式自然是使用 yum 安装。

Fedora 默认的软件包仓库中并不包含 SMPlayer,因此在使用 yum 安装 SMPlayer 之前,需要在系统中配置 RPM Fusion 或其它第三方软件包仓库,不然可能无法找到 SMPlayer 软件包。

有关 RPM Fusion 软件包仓库的配置,可参考rpmfusion.org - RPM 软件包仓库

在系统中安装好 RPM Fusion 或其它软件包仓库之后,可以使用以下命令查询是否可以找到 SMPlayer 软件包

~]$ yum list *smplayer*
已加载插件:presto, refresh-packagekit, security
可安装的软件包
smplayer.i586                    0.6.8-1.fc12                     rpmfusion-free

显示以上信息说明 yum 可以从软件包仓库中找到 smplayer 软件包 (注意软件包信息的最后一列为软件包所属于的软件包仓库的名称,上例中的显示说明 smplayer.i586 软件包来自于 rpmfusion-free 仓库)。

执行 yum install smplayer 命令即可开始安装 smplayer 软件包

~]# yum install smplayer
...
Installed size: 21 M
确定吗?[y/N]:y
...

yum 执行到安装进程时会询问用户是否确定下载并安装,输入 y 回车即可。安装完成之后,可以通过 “应用程序->影音->SMPlayer” ,或者在命令行下输入 smplayer,都可以打开 SMPlayer。

下图为 SMPlayer 的程序界面

SMPlayer 程序界面 [图]

[转]Smarty 学习随记,很不错,值得初学参考

(06年的文章,时间比较老了,但信息还不过时)

源于: http://www.jcwcn.com/html/PHP/09_08_22_827.htm

我的个人建议,下边的文字都是SMARTY里经常用到的一些基础概念的东西! 写的非常细致,而且接近中国人的思维了,都是工作中做的总结. 但是更全的资料到SMARTY的官方论坛上去看吧!!!!!
http://www.phpinsider.com/smarty-forum/
虽然是全英文的,但是只要你能看个大概其,相信收益将会非常大,而且上边的管理员也是非常热情,可是因为是美国时间,所以一般他们活跃的时间是半夜3,4点!!

虽然很简单的东西,但是还是共享一下!!

什么是smarty及其安装

Smarty是一个php模板引擎,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法.

Smarty要求web服务器运行php4.0.6和以上版本.

smarty安装需要smarty库文件。可以去官方网站http://smarty.php.net下载。

网上讲了很多安装的教程,但是我都没有成功,所以直接把整个目录名改为smarty直接复制到了网站所在的目录下,然后打开
http://网站路径/smarty/demo/index.php,显示正常,应该算是安装成功了。

基本语法

所有的smarty标签都被加上了定界符.在smarty里,所有定界符以外的内容都是静态的,当smarty遇到了模板标签,将尝试解释他们,然后再以恰当的方式输出.

默认情况下是 {和},但它们是可定制的.定制方法是:
$smarty->left_delimiter = '<!--{';
$smarty->right_delimiter = '}-->';

1.注释

模板注释被*号包围,例如 {* this is a comment *}
smarty注释将不被输出.它是模板内在的注释.

2.变量
模板变量以$开头,可以包含数字,字母和下划线。
config_file变量是例外要用#变量名#的方法引用

3.函数
smarty标签输出一个变量或者调用某种函数.
在定界符内函数和其属性将被处理和输出.例如:
{funcname attr1="val" attr2="val"}.
funcname为函数的名称比如:include等,attr1,attr2为属性名,val为属性相应的值。

在模板里无论是内建函数还是自定义函数都有相同的语法.
内建函数将在smarty内部工作,例如 {if}, {section} 和{strip}.他们不能被修改.
自定义函数通过插件机制起作用,它们是附加函数,可以随意修改,自行添加.
例如 {html_options} and {html_select_date}

4.属性
静态数值不需要加引号,布尔值(真或假)也不需要引号,可以是true,on,yes或者false,off,no. 但是字符串例外.变量同样被用到了,它们也不能加引号.

5.在字符串中插入变量
只能识别数字,字母,下划线和[]的组合,如果为复杂的形式需要用``将变量隔起来。比如{func var="test $foo.bar test"} 中只能识别变量$foo,要识别$foo.bar,需要写成{func var="test `$foo.bar` test"}的格式。

6.一些保留字的显示方法
在模板中如果要将smarty的一些保留字作为语言的内容显示出来,比如显示分隔符,默认为{}的方法是: {ldelim},{rdelim} 或者{$smarty.ldelim},{$smarty.rdelim} 或者可以把{}放在{literal} .. {/literal} 中间输出。

smarty的保留变量

{$smarty}保留变量可以被用于访问一些特殊的模板变量.
以下是全部.

页面请求变量
以下是访问页面请求变量诸如get,post,cookies,server,enviroment和session变量的例子. 例如{$smarty.server.SERVER_NAME}取得服务器变量,{$smarty.env.PATH}取得系统环境变量path, {$smarty.request.username}取得get/post/cookies/server/env的复合变量。

{$smarty.now}变量用于访问当前时间戳.
可以用 date_format调节器格式化输出. 例如{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}

{$smarty.const}
你可以直接访问PHP常量. 例如{$smarty.const._MY_CONST_VAL}

{$smarty.capture}
可以通过 {capture}..{/capture}结构 截取的输出可以使用{$smarty} 变量访问.

{$smarty.config}
{$smarty}变量 可以访问已经加载的config变量.
例如 {$smarty.config.foo}就可以表示 {#foo#}.

{$smarty.section}, {$smarty.foreach}
{$smarty} 变量可以访问'section'和'foreach'循环的属性.

{$smarty.template}
显示当前被处理的模板的名字.

{$smarty.version}
显示smarty模板的版本

{$smarty.ldelim}
显示左分隔符

{$smarty.rdelim}
显示右分隔符

变量调节器
变量调节器用于变量,自定义函数和字符串.
可以使用'|'符号和调节器名称应用调节器.
变量调节器由赋予的参数值决定其行为.
参数由':'符号分开.
如果你用变量调节器调节数组变量,结果是数组的每个值都被调节.如果你想要调节器调节整个数组,你必须在调节器名字前加上@符号.
例如: {$articleTitle|@count}(这将会在输出 $articleTitle 数组里的数目)

capitalize
将变量里的所有单词首字大写. 参数值boolean型决定带数字的词是否首字大写。默认不大写

count_characters
计算变量值里的字符数.参数值boolean型决定是否计算空格数。默认不计算空格

cat
将cat里的参数值连接到给定的变量后面.默认为空。

count_paragraphs
计算变量里的段落数量

count_sentences
计算变量里句子的数量

count_words
计算变量里的词数

date_format
日期格式

第一个参数控制日期格式.
如果传给date_format的数据是空的,将使用第二个参数作为默认时间

%a - 星期几的简写

%A - 星期几的全写

%b - 月份的简写

%B - 月份的全写

%c - 日期时间06/12/05 11:15:10

%C - 世纪时间

%d - 一个月的第几号(从 01 到 31)

%D - 同 %m/%d/%y

%e - 一个月的第几号,号为单数则前面加一空格 (从 1 到 31)

%g - 世纪

%G - 世纪 [0000,9999]

%h - 同%b

%H - 24小时形式的小时(从00到23)

%I - 12小时形式的小时(从01到 12)

%j - 一年中的第几天(从 001 到 366)

%k - 24小时形式的小时,单数字前面加空格. (从 0 到 23)

%l - 12小时形式的小时,单数字前面加空格.(range 1 to 12)

%m - 月份 (range 01 to 12)

%M - 分

%n - 换行符

%p - 显示早上还是下午`am' 或 `pm'

%r - a.m. 或 p.m.形式的时间

%R - 24小时形式的时间

%S - 秒

%t - tab符号

%T - 同%H:%M:%S

%u - 用 [1,7],表示星期几

%U - 计算是该年的第几个星期,从该年的第一个星期天开始计算

%V - 计算是该年的第几个星期, 从 01 到 53, 第一个星期必须至少有4天在这一年, 星期天作为这个星期的第一天

%w - 用数字的形式表示是星期的第几天, 星期天 为 0

%W - 用数字的形式是该年的第几个星期,从该年的第一个星期一开始计算

%x - 显示日期:月/日/年

%X - 显示时间:小时:分钟:秒

%y - 不包括世纪的年份

%Y - 包括世纪的年份

%Z - 时区

%% - 输出%

其中有些有时不能正常输出。

default
默认
为空变量设置一个默认值.
当变量为空或者未分配的时候,将由给定的默认值替代输出.

escape
转码
参数值为html,htmlall,url,quotes,hex,hexentity,javascript。默认是html转码

indent
缩进
在每行缩进字符串,第一个参数指定缩进多少个字符,默认是4个字符.第二个参数,指定缩进用什么字符代替。

lower
小写
This is used to lowercase a variable.
将变量字符串小写

nl2br
换行符替换成<br />

regex_replace
正则替换
寻找和替换正则表达式.必须有两个参数,参数1是替换正则表达式. 参数2使用什么文本字串来替换

replace
替换
简单的搜索和替换字符串必须有两个参数,参数1是将被替换的字符串. 参数2是用来替换的文本

spacify
spacify是在字符串的每个字符之间插入空格或者其他的字符串. 参数表示将在两个字符之间插入的字符串,默认为一个空格。

string_format 字符串格式化
是一种格式化浮点数的方法.例如十进制数.使用sprintf语法格式化。参数是必须的,规定使用的格式化方式。%d表示显示整数,%.2f表示截取两个浮点数。

strip 去除(多余空格)
替换所有重复的空格,换行和tab为单个或者指定的字符串. 如果有参数则是指定的字符串。

strip_tags 去除所有html标签

truncate 截取
参数1,规定截取的字符数.默认是80个.
第二个参数指定在截取的那段字符串后加上什么字符.默认为...
第三个参数决定是否精确截取,默认情况下为false,则smarty不会分割单词。

upper 将变量改为大写

wordwrap 行宽约束
第一个参数指定段落的宽度(也就是多少个字符一行,超过这个字符数换行).默认80.
第二个参数指定在约束点使用什么字符(默认是换行符\n).
第三个参数决定是否精确截取字符,默认情况下是不精确截取,就是截取时不能分开单词。

内建函数
内建函数不能擅自修改。
capture
capture函数的作用是收集模板输出的数据到一个变量里,而不是把它们输出到页面.例如任何在 {capture name="foo"}和{/capture}之间的数据都被收到了由函数的名称属性指定的变量{$foo}里,或者{$smarty.capture.foo}里。如果函数没有名字属性,将使用"default".每个{capture}都必须对应{/capture},也不能嵌套使用capture函数。

config_load
引用配置文件
file是必须的,说明要包含进来的配置文件名称,section说明要加载的部分的名称,scope被处理的变量的作用域.必须是local,parent或者global.
local的意思是变量将在本模板里被加载.
parent 的意思是变量将在本模板和上级模板被加载.
global的意思是变量将应用到所有的模板.默认为local。变量是否在上级模板可视,默认为no。如果scope属性已经有了,这个值将被忽略.

foreach,foreachelse
foreach循环是选择性的section循环.用于遍历关联数组.foreach的语法比section简单的多,但是作为一个折中它只能用于简单数组.
foreach必须的参数是from和item. from变量表示需要循环的数组的名称,item表示当前元素的变量名,key表示当前关键字的变量名,name表示访问foreach属性的foreach循环名。循环可以互相嵌套,被嵌套的循环之间的名字必须是独立的.foreachelse 在from变量没有值的时候被执行

include
用来引用其他的模板。
file属性是必须的用来表示所引用模板的名字,assign表示include文件将要分配的输出的变量。你可以自行用属性名="属性值"的方式定义任意个局部变量。

include_php
用来在模板中引入php脚本。file是必须的用来表示php脚本的路径,once确定如果在模板中引用了php脚本多次,是否只装载一次。默认为true。

insert
用来包含php脚本中的函数,name是必须的,表示所插入的脚本的名称,注意如果名称是name,则包含的函数则是insert_name(),所以所有要插入的函数要有前缀insert_ 。如果用了assign属性,则insert的输出将会分配给模板变量而不会显示。 script表示要引用的脚本路径。这个程序产生的内容将不会被缓存,在每次调用该页时重新执行,适用于广告,投票,查询结果等互动的地方。

if,elseif,else
if语句和和条件同php差不多,但每个词之间必须用空格分割开。也有一些新的条件语句,列举如下:eq相等,ne、neq不相等,gt大于,lt小于,gte、ge大于等于,lte、le 小于等于,not非,mod求模。is [not] div by是否能被某数整除,is [not] even是否为偶数,$a is [not] even by $b即($a / $b) % 2 == 0,is [not] odd是否为奇,$a is not odd by $b即($a / $b) % 2 != 0

php
php标记可以让模板中能直接使用php语言。

section,sectionelse
section用来循环显示数组的数据,name和loop是必须的参数。name表示嵌套名. section 可以嵌套使用,但是名字必须各不相同。loop表示循环的次数. sectionelse在loop参数为空的输出。start用来规定循环开始的指针,如果值为负则从数组尾部计算开始的指针,默认为0.step表示循环的步数,为负则反向循环,默认为1.max设定循环的最大步数.show决定是否显示section.
section也有自己的变量处理section属性,用{$smarty.section.sectionname.varname} 来显示.

index
index用来显示当前循环的指针,从0开始.

index_prev
用来显示前一次循环的指针,从-1开始

index_next
用来显示后一次循环的指针.

iteration
显示当前循环的次数,从1开始.

first
如果当前循环为第一个循环,则值为true.

last
如果当前循环为最后一个循环,则值为true.

rownum
同iteration.

loop
显示最后一次循环的指针,可以用在section中间的任何地方,也可以用在section之后.

show
show 决定是否显示section.

total
显示总共循环的次数,可以用在section中间的任何地方,也可以用在section之后.

strip
去掉多余的空格

常规函数
assign
assign用来在执行模板时分配变量值.var,value是必须的参数.var为要分配值的变量名,value为分配的值.

counter
counter用来输出一个计数. 可以用多个计数,但是名字必须各不相同.name表示计数器名,默认为default.start表示计数的初始值,默认为1.skip计数的间隔,默认为1.direction表示计数方向,up或down,默认为up.print表示是否打印该值,默认为true.assign定义模板变量,计数器的输出将被分配到assign定义的变量中.

cycle
Cycle用来循环显示一组数值.name表示cycle名,values("值1","值2",...)表示循环显示的一组数值.print表示是否显示.advance决定是否显示下一个数值. delimiter决定value的分隔符,默认为逗号. assign定义模板变量,cycle的输出将被分配到assign定义的变量中.

debug
debug可以显示所有分配了值的变量,但是不显示模板内容,output属性决定显示的格式html或javascript,默认是html.

eval
eval用来在变量里插入变量。var是插入的变量名,assign把输出分配给一个变量。

fetch
用来取得文件内容,并输出文件内容,可以取得本地文件,http文件和ftp文件,file是取得文件的路径, assign把输出分配给一个变量。

html_checkboxes
html_checkbox用来用给定的数据创建checkbox。name表示checkbox的名称,values表示checkbox的值,output表示checkbox的显示,selected表示被选选项的值,options表示一组checkbox的值和显示,separator表示分割每个checkbox的符号,labels表示给输出添加标签,默认为true。

html_image
html_image用来为一个图片创建html标签,如果height和width不分配值将会自动生成。file是图片的路径,height,width,alt同html标签,basedir是图片相对路径开始的目录的路径,默认为服务器根目录。href定义图片的链接。

html_options
输出下拉列表,参数有name,values,output,selected,options。

html_radios
输出单选框,参数同复选框。

html_select_date
prefix定义各个下拉列表名字的前缀,默认为Date_。time决定使用的时间,默认是当前时间。start_year决定下拉列表开始的年份,可以用年份表示,也可以用与当前年份的相对年数来表示。默认是当前年份。end_year决定下拉列表结束的年份,可以用年份表示,也可以用与当前年份的相对年数来表示。默认是当前年份。display_days决定是否显示日期。display_months决定是否显示月份。display_years决定是否显示年份。month_format决定显示月份的格式,默认为%B。day_format决定显示日期的格式,默认为%02d。day_value_format决定日期值的格式,默认为%d。month_value_format决定月份值的格式,默认为%m。year_as_text决定是否将年份按文本格式输出。reverse_years决定是否反向输出各年份。field_array用来取得一组变量,可以用name[Day],name[Month],name[Year]的方式从form取得获得的值。day_size,month_size,year_size添加大小标签。all_extra,day_extra,month_extra,year_extra添加额外的属性到select或input标签。field_order决定年月日下拉列表的顺序,默认为MDY。field_separator不同下拉列表之间的分隔符,默认是\n。year_empty,month_empty,day_empty是在各下拉列表第一栏显示的内容。

html_select_time
prefix定义各个下拉列表名字的前缀,默认为Time_。time决定使用的时间,默认是当前时间。display_hours决定是否显示小时。display_minutes决定是否显示分钟。display_seconds决定是否显示秒数。display_meridian 决定是否显示上午或下午,即显示am/pm。use_24_hours 决定是否24小时制。minute_interval 决定分钟之间的间隔。second_interval 决定秒数之间的间隔。field_array用来取得一组变量,可以用name[Hour],name[Minute],name[Second]的方式从form取得获得的值。all_extra,hour_extra,minute_extra,second_extra ,meridian_extra添加额外的属性到select或input标签。

html_table
loop定义用于循环的一组数据。cols决定列的数目,rows决定行的数目,如果其中一个为空,另一个有值,则根据元素个数和有值的属性来计算另一个的值,两者的默认值为3。inner决定元素的列举方向cols则列跟着列排列,rows则行跟着行排列,默认为cols。table_attr,tr_attr,td_attr分别为table,tr,td增加标签,如果tr_attr,td_attr是数组,将会循环增加标签。trailpad用来填充最后一行没有值的单元格,默认是 。hdir决定每行元素的排列方向,从左到右right或从右到左left,默认为right。vdir决定每列的排列方向,从上到下down或从下到上up,默认为down。

math
进行数字运算操作。equation和var是必须的。equation定义运算式,可以使用的运算符有+, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans and tan。var给运算变量赋值。format确定结果的格式。assign将输出赋给一个参数。

mailto
使用mailto函数能使网络蜘蛛很难获取你的email地址,但是能在网页上正常显示,因为他把email地址进行了加密处理。address是必须的,定义email地址。text是显示在页面上的文本内容,默认是email地址。encode是加密email地址的方式,可以是none,hex或javascript,默认是none。如果要把邮件发给其他的邮箱,可以用cc抄送,email地址之间用,分割。bcc则为密件抄送。subject是邮件主题。newsgroups是发表内容的新闻组,新闻组之间用,隔开。extra添加附加标签。followupto意思不知。

textformat
textformat用来格式化文本,他会去掉空格和特殊字符,和规定行宽和缩进。style规定当前的格式,indent规定缩进的位数。indent_first规定第一行的缩进。indent_char用来缩进的字符,默认是一个空格。wrap规定行宽,即一行的字符数,默认是80。wrap_char规定每行的分隔符,默认是\n。wrap_cut决定是否分割单词。assign将输出分配给变量。

常量
SMARTY_DIR
是到smarty类目录的完全路径,必须以/结束。如果没有定义,将会自动决定路径.

SMARTY_CORE_DIR
是到smarty类core文件目录的完全路径,必须以/结束。如果没有定义,将会自动定义为smarty_dir路径下面的子目录.

变量

$template_dir
默认的模板目录名,默认为"./templates".
$compile_dir
默认的编译模板目录名,默认为"./templates_c"
$config_dir
默认的config文件目录名,默认为"./configs".
$plugins_dir
默认的插件目录名,默认为"plugins".
$debugging
debugging控制台。即一个显示变量的窗口.
$debug_tpl
debug窗口的模板
$debugging_ctrl
另一种控制debugging的方法。
$autoload_filters
对所有的模板使用过滤程序,这个变量是一个数组,其中关键字是过滤的类型,值是过滤的名字。
$compile_check
每次php执行将是否查看模板的内容是否改变。

$caching
决定是否缓存文件执行生成的文件。
$cache_dir
默认的模板缓存目录名,默认为"./cache".
$cache_lifetime
缓存的模板的过期时间,以秒计算. $caching值为-1则缓存的模板永不过期.

最后我放个我用的例子.大家仅做一个参考吧!!!

<?php
error_reporting(7);

$TurnDot  =  substr(PHP_OS, 0, 3) == 'WIN'  ?  ";"  :  ":"  ;

$doc_root=$_SERVER['DOCUMENT_ROOT'];   //默认获取根路径
//$doc_root="E:/Myweb/an-cool.com/Web" ; //这里是指定路径

$lib_root=".".$TurnDot.$doc_root."/shopadmin".$TurnDot.$doc_root."/shopadmin/inc".$TurnDot.$doc_root."/".$TurnDot.$doc_root."/jpgraph/src/".$TurnDot.$doc_root."/Smarty/libs/".$TurnDot.$doc_root."/Smarty";

ini_set("include_path",$lib_root);

include("conf.global.php");  //这里是装载一个全局配置文件.

$Templates_root = $doc_root."/templates";  //定义摸版根目录
define("Templates",$Templates_root);

$templates  = isset($INFO['templates'])  ?  $INFO['templates']  :  'default'  ;

include_once('Smarty.class.php');

$tpl = new Smarty();                                                                   //建立smarty实例对象$tpl
$tpl->debugging = false;
$tpl->template_dir   = Templates."/".$templates  ;                             //设置模板目录
$tpl->compile_dir    = Templates."/".$templates  ."/templates_c";     //设置编译目录
$tpl->cache_dir      = $doc_root."/cache";                                //设置缓存目录
$tpl->cache_lifetime = 60 * 60 * 24;                                         //设置缓存时间
$tpl->cache_lifetime = 0;                                                          //设置缓存时间
$tpl->caching        = false;                                                        //这里是调试时设为false,发布时请使用true
$tpl->left_delimiter = '<{';
$tpl->right_delimiter= '}>';

$tpl->assign("template_dir",  $INFO['site_url']."/templates/".$templates ); //摸板路径
$tpl->assign("Site_Url",      $INFO['site_url']); //主站URL
$tpl->assign("LanguageIs",    $INFO['IS']); //语言包类型
$tpl->assign("HtmlTitle", $INFO['site_title']);     //TITLE内容
$tpl->assign("HtmlMeta",  $INFO['meta_keyword']);  //META内容
?>

google搜索设置,打造个性化的搜索:通过google英文版关闭google“安全搜索” (取消启用了安全搜索功能)

实在不懂google中国跑到香港为图个啥,.cn的搜索转到.hk后,搜索结果页反而直接:

搜索 gecko wine 获得约 456,000 条结果(启用了安全搜索功能),以下是第 1-10 条。 (用时 0.21 秒)

跑到香港搞和谐去了!

或许是原来.cn本来就是“和谐版”的,只是没有在页面上显示出来,大家不知道而已。

网上有人说什么是google是“逻辑的”,于是试图通过google的设置关闭“安全搜索”,在google中文版当然是失败了的,但在英文版里是可以的。

以前没有注意过之前google.com的设置setting里面每一项设置,也修改过“”(在新窗口打开结果页),最近有意比较google中文与英文搜索结果,差别还是有的,有时还很大。于是搜索东西时,会结合两个语言的搜索使用。而且英文版的也可以用中文显示页面,就在setting里设置,如下:

打开google英文(google.com),如果自动跳转到中文站点下的话,点中文首页最下面倒数第2行的

- Google.com in English

随便搜索一个关键词,比如输入

site:path8.net/tn

按回车——别说你不知道搜索引擎里的site:语法啊——

看到搜索结果页,该页最上面一行右边会有

web History | Settings | Sign in

三个链接,点“settings” (如果你已经登录gmail账号,settings将显示为菜单形式,菜单项里的search settings)

[是整个页面最上一行,比logo还靠上]

(1)

Interface Language

界面语言,默认为英文,可以设置成为 chinese simplifield,这样可能更容易阅读。当然也可以不设置,感觉更原汁原味一点。

2)

Search Language

搜索哪些语言的页面,默认当然还是english,建议选上

Chinese (Simplified)

Chinese (Traditional)

两项

3)

SafeSearch Filtering

Google's SafeSearch blocks web pages containing explicit sexual content from appearing in search results.

Lock SafeSearch This will apply strict filtering to all searches from this computer using Firefox. Learn more

看到了吧,所谓的安全搜索就这里,默认选的是第2项,中等安全,赶快改第3项吧

4)

Number of Results

每页显示结果条数。这个维持默认好了,当然你也可以改

5)

Results Window


结果打开窗口,新窗口打开搜索结果,选中吧;本朝网速太慢,这样可以让多个窗口同时慢慢打开着,我们先看其它,或打开更多窗口,然后再回来看之前打开的窗口是不是已经打开完毕。其实这也就是“多线程”的原理。

6)

下面还有几个选项,有兴趣的话,可以自己看看,酌情设置

......

9)

保存设置吧。
点页面右上角,或右下角的“Save Preferences”按钮,完成了。
这个设置是以cookie保存在本机里的,清空cookie后,还要重新设置的。

一个个性化的google搜索已经打造出来,

Advanced Search
有没有注意到搜索框下面下面一行的

,搜索英文关键词时,经常是几乎全部英文结果,可以选中这一项,再点search,就可以看到较多的中文结果了,还是比较方便的。

最后补充一点,其实不用搜索一个关键词,进到google英文首页就可以点右上角的settings进行设置了,ee~~~~

bt(Backtrack)安装教程/登录用户名密码

这里有硬盘安装,U盘安装两种安装方式,推荐U盘安装。因为U盘安装不改变硬盘文件,避免操作失误造成硬盘文件丢失的后悔局面;而且U盘携带方便,这点好处不言而喻。

一.硬盘安装

1.xp vista单系统下硬盘安装:

把光盘里的Boot 和BT3两个文件夹放到任意盘符的根目录下,运行xp_vista_grub4dos.exe(BT3硬盘启动引导)按提示完成安装。

2.win7.xp双系统下安装:

1.首先把xp安装在主引导盘,后安装wing7.

2.用bcdautofix v1.0.5(vista win7 启动修复工具)修复多系统启动。

3.用EasyBCD1.7.2(启动菜单编辑)编辑自定义的启动顺序,启动菜单名,并添加NeoGrub启动项目,具体操作见软件教程。

4.修改bt3 bt4下boots/menu.lst。

BT3 bt4测试版下boots/menu.lst

color black/cyan yellow/cyan
timeout=1
default=0

title BT4
find --set-root /boot/vmlinuz
kernel /boot/vmlinuz root=/dev/ram0 vga=791
initrd /boot/initrd.gz ramdisk_size=128000
boot

title Restart
reboot

title Shutdown
halt

bt4-pre-final版本下boots/menu.lst:

1)把bt4下boot文件夹里的文件复制到引导盘(c)boot文件夹里。

2)把BT4下boot/grub/menu.lst复制替换掉引导盘(C:\NST\menu.lst) EasyBCD1.7.2创建的menu.lst

二.U盘安装

[ad#gad_2]建议将U盘格式化成FAT32,把光盘里的Boot 和BT3两个文件夹放到U盘的根目录,打开BOOT文件夹双击运行" bootinst.bat "批处理文件。U盘里就会多出4个文件." isolinux.boot" "isolinux.cfg" "isolinux.bin " "syslinux.cfg"
安装方法2.

1.输入CMD, 然后回车,进入命令行模式,输入 cd boot 回车 进入boots文件夹,输入 bootinst.bat 回车,就会开始制作BT3

此操作将会重写U盘的MBR(即引导区),如果此分区是您的一个硬盘上的分区,那您的Windows系统将会启动不了,请小心,按X键中止操作,按其他任意键继续制作。

因为是在U盘上运行操作的,所以不用理会,按任意键继续制作。
制作完成,设置引导记录成功,按任意键退出制作。到此为止,此U盘就可以引导系统进去bt3了
bt4-pre-final版本U盘安装:

所需工具软件:

U盘格式化工具(HPUSBFW)
GRUBDOS内置菜单编辑批处理
grubinst_gui.exe安装程序
1.用U盘格式化工具(HPUSBFW)格式化u盘。

2.制作内置菜单grub:把BT4下boot/grub/menu.lst复制到GRUBDOS内置菜单编辑批处理文件夹里,运行GRUBDOS内置菜单编辑批处理,选择 [5] 以外部menu.lst设置内置菜单(勿大于4KB)。把menu.lst设置导入grub引导菜单。

3.制作grldr启动U盘:将编辑好的grldr放入grubinst_gui.exe(grub4dos启动安装程序)的文件夹和U盘根目录。运行grub4dos启动安装程序(grubinst_gui.exe),选中磁盘为U盘,注意空间大小,千万别选错磁盘。点选不保存原来MBR,不引导原来MBR,输出详细信息,和启动时不搜索软盘。可以先测试一下,点击安装完成.

4.将编辑好的grldr和BT4.Iiso文件解压到U盘根目录。大功搞成。

-----------------------------
bt4 (Backtrack)的linux登录用户名密码没有在提示文件里出现,笔者就曾因为不知道登录的用户名密码而非常郁闷

它的登录用户是root

密码为toor

其实用户名是linux根用户root,密码就是把root倒过来写,很好记。

support me[ad#gad_3]

php调试利器 xdebug

php调试利器 xdebug

xdebug官方网站http://xdebug.org/

在Linux下编译安装XDebug

引用
tar -xzf xdebug-2.0.0RC3.gz
cd xdebug-2.0.0RC3
/usr/local/php/bin/phpize
./configure --enable-xdebug
cp modules/xdebug.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20020429/

注:/usr/local/php/lib/php/extensions/no-debug-non-zts-20020429/不同的PHP版本路径不同,也不一定要放在该路径,可以在zend_extension_ts中自行指定xdebug.so所在位置。

Windows安装:
1. 登录www.xdebug.org,在下载您需要的版本,建议下载Windows binaries,免去手工编译,根据你的php版本选择其中的PHP5.2或5.3的,下载php_xdebug-xxxx.dll文件;建议下载稳定版,而不是beta版,当然beta版一般也不会出问题.
2. 将下载的php_xdebug-xxx.dll放到C:\php5\ext目录,重命名为php_xdebug.dll;路径根据您的php安装路经不同可能有所有同.
3. 编辑php.ini,加入下面几行:
extension=php_xdebug.dll
[Xdebug]
xdebug.profiler_enable=on
xdebug.trace_output_dir="J:\php_xdebug_output"
xdebug.profiler_output_dir="J:\php_xdebug_output"
后面的目录“J:\php_xdebug_output”为你想要放置Xdebug输出的数据文件的目录,可自由设置。
4. 重启Apache (或iis);
可以专门写几行有错的代码,看看出错信息显示不何不同。
再用var_dump()输出一个数组,看看显示是不是友好多了,至少不用查看html源文件才能看到清晰的数组结构.

linux下Mysql+php5+apache安装手记

下载官方推荐的稳定版本httpd-2.2.3.tar.gz,下载地址:http://down.itlearner.com/soft/2356.shtml

安装apache2
#./configure --prefix=/usr/local/apache2 --enable-module=alias --enable-module=most \
--enable-module=vhost_alias --enable-shared=vhost_alias --enable-module=so --enable-shared=max
# make;make install

--------------------------------------------------------------

下载目前最新稳定版本mysql-standard-5.0.27-linux-i686-glibc23.tar.gz
无需安装,解压后移至/usr/local/mysql.

# groupadd mysql #建立mysql组
# useradd mysql -g mysql #建立mysql用户并且加入到mysql组中

# cd /usr/local/mysql

然后设置权限

# chown -R root . #设定root能访问/usr/local/mysql
# chown -R mysql data #设定mysql用户能访问/usr/local/mysql/data ,里面存的是mysql的数据库文件
# chown -R mysql data/. #设定mysql用户能访问/usr/local/mysql/data下的所有文件
# chown -R mysql data/mysql/. #设定mysql用户能访问/usr/local/mysql/data/mysql下的所有文件
# chgrp -R mysql . #设定mysql组能够访问/usr/local/mysql

运行mysql:

# /usr/local/mysql/bin/mysqld_safe --user=mysql &

修改root密码,默认为空:

/usr/local/mysql/bin/mysqladmin -u root password 'newpassword'

MYSQL安装完成

----------------------------------------------------------------

下载最新稳定版本php-5.1.6.tar.gz,下载地址:http://down.itlearner.com/soft/2355.shtml

1. 安装zlib (安装libpng和gd前需要先安装zlib),下载地址:http://down.itlearner.com/soft/2359.shtml
# tar zxvf zlib-1.2.3.tar.gz
# cd zlib-1.2.3
# ./configure
# make;make install

2. 安装libpng,下载地址:http://down.itlearner.com/soft/2362.shtml
# tar zxvf libpng-1.2.12.tar.gz
# cd libpng-1.2.12
# ./configure
# make;make install

3. 安装freetype,下载地址:http://down.itlearner.com/soft/2361.shtml
# tar zxvf freetype-2.2.1.tar.gz
# cd freetype-2.1.10
# ./configure --prefix=/usr/local/freetype
# make;make install

4. 安装jpeg,下载地址:http://down.itlearner.com/soft/2360.shtml
# tar zxvf jpegsrc.v6b.tar.gz
# cd jpeg-6b
# mkdir /usr/local/jpeg
# mkdir /usr/local/jpeg/bin
# mkdir /usr/local/jpeg/lib
# mkdir /usr/local/jpeg/include
# mkdir /usr/local/jpeg/man
# mkdir /usr/local/jpeg/man/man1
# ./configure --prefix=/usr/local/jpeg --enable-shared --enable-static
# make;make install

5. 安装gd,下载地址:http://down.itlearner.com/soft/2357.shtml
# tar zxvf gd-2.0.33.tar.gz
# cd gd-2.0.33
# ./configure --prefix=/usr/local/gd --with-jpeg=/usr/local/jpeg --with-freetype=/usr/local/freetype --with-png --with-zlib
//编译过程中会看到如下信息
** Configuration summary for gd 2.0.33:

Support for PNG library: yes
Support for JPEG library: yes
Support for Freetype 2.x library: yes
Support for Fontconfig library: no
Support for Xpm library: no
Support for pthreads: yes
//可以看到png 、 jpeg 、 freetype都已经安装上了
# make
# make install

6. 正式安装php
# tar zxvf php-5.1.6.tar.gz
# cd php-5.1.6
# ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-gd --with-zlib --with-png --with-jpeg --with-freetype --enable-sockets --with-iconv --enable-mbstring --enable-track-vars --enable-force-cgi-redirect --with-config-file-path=/usr/local/php5/etc

7.整合php和apache
cp php.ini-dist /usr/local/php5/etc/php.ini
vi /usr/local/php5/etc/php.ini
将extension=php_mysql.dll前面的#去掉

8. 安装ZendOptimizer,下载地址:http://down.itlearner.com/soft/1023.shtml
# tar zxvf ZendOptimizer-3.0.1-linux-glibc21-i386.tar.gz
# cd ZendOptimizer-3.0.1-linux-glibc21-i386
# ./install.sh
安装操作: [ok] -> [EXIT] -> [YES] -> [/httpd/zend] -> [/httpd/apache/conf] -> [yes] -> [OK] -> [OK] -> [NO]

遇到的一些错误解决:

1.php5在configure时提示:configure: error: mysql configure failed.,只用--with-mysql参数提示:Cannot find MySQL header files under yes,去掉--with-mysql参数可以安装,php5将无法连接mysql,页面提示为:Fatal error: Call to undefined function mysql_connect()。查阅了一下,发现是mysql5对应的版本不对导致的,换个版本就可以了。
我用mysql-standard-5.0.27-linux-i686.tar.gz时会提示,换了mysql-standard-5.0.27-linux-i686-glibc23.tar.gz后就正常了。

2.重装mysql后启动出错,提示:
Starting mysqld daemon with databases from /usr/local/mysql/data
STOPPING server from pid file /usr/local/mysql/data/xmcncn.pid
061103 15:25:32 mysqld ended
请教高手gump,解决方法:
touch /tmp/mysql.sock
killall -9 mysqld
/usr/local/mysql/bin/mysqld_safe -user=mysql &
成功启动

PS:偶是新手,当初找齐这些软件都化了一整天时间,特别是几个小软件比较难找,现在全部列出来了。测试装的时候也遇到了不少问题,在gump同志的帮助下解决了不少。我站上本来转载了好几篇安装的文章,有的版本较旧,有的不太全面,所以把这次安装过程写出来,以后安装也就方便了:)希望也对一些新手有帮助。

Pages: Prev 1 2 3 4 5 6 Next