Thinkpad t400 r400等在Ubuntu下安装ati驱动黑屏无法进系统的解决方法

很多人遇到这种情况,在系统-系统管理-硬件驱动中激活了ati的驱动,结果重启后因为刷新率原因导致黑屏无法进入Ubuntu。


如果你的pc是r400 t400等机型,解决方法就变的相当简单了。因为上述电脑都是双显卡(当然其他双显卡的pc也可以用这种方法),由于ati驱动只对ati显卡起作用,那么切换到到intel显卡问题就解决了。开机按F1进BIOS,选择Config再进入Display,第一项Default primary video device选择internal,第三项Graphics device选择intergrated graphics,F10保存后重启就能看到画面了,系统会提示你上次配置错误,恢复到默认就可以了,再重启就能进系统了,进入后删除ati的驱动,问题就解决了。

xheditor 在firefox 下无法获取$_FILES

最近需要用到xheditor编辑器,看中它的就是上传功能,简单快捷,在使用中发现在firefox下面接收不到上传图片的信息,默认的upload.php可以,在官网论坛发现有跟我一样的问题,解决方法:在ie浏览器下用普通的上传程序即可,在非ie 例如:firefox chrom 等需要用html5 上传才可以。
html5 上传代码:

//html5 上传 应用于非ie 核心的浏览器
if(isset($_SERVER[‘HTTP_CONTENT_DISPOSITION’])&&preg_match(‘/attachment;\s+name=”(.+?)”;\s+filename=”(.+?)”/i’,$_SERVER[‘HTTP_CONTENT_DISPOSITION’],$info)){//HTML5上传
$localName=$info[2]; //上传名称
$ext = mdy::ext_name($localName);
$upload_path = $upload_path_1.$date.’.’.$ext;
file_put_contents($upload_path,file_get_contents(“php://input”));
}else{  //用于ie 浏览器上传

}

定制Apache索引样式

#表示开启了索引模式(也就是目录浏览)
Options Indexes
indexOptions FancyIndexing ScanHTMLTitles NameWidth=128 DescriptionWidth=256 HTMLTable VersionSort FoldersFirst
可用参数,含义如下:
#ScanHTMLTitles:搜索HTML标题
#NameWidth:文件命显示字节数
#DescriptionWidth:描述显示字节数
#HTMLTable:允许HTML格式
#FoldersFirst:目录优先
SuppressLastModified 在目录中禁止显示最近的修改时间
#索引排除语法
IndexIgnore header.html footer.html
header.html footer.html 这两个文件不会在索引(目录浏览)中出现。
#索引头部嵌入文件
HeaderName /data/index/header.html
#索引底部嵌入文件
ReadmeName /data/index/footer.html
ReadmeName: 指定该目录列表的footer模板,指定一个html文件后,Apache会在目录列表的底部加载这个网页。(注意:文件路径是相对于列表目录的根而言的,并不是相对于系统根或者网站根。)
HeaderName: 指定该目录列表的header模板,指定一个html文件后,Apache会用这个网页替换掉默认目录列表上面呆板的Index of …..。(注意:文件路径是相对于列表目录的根而言的,并不是相对于系统根或者网站根。)
#默认索引排序方式
IndexOrderDefault Ascending Date
#关闭服务器标志
ServerSignature Off
Apache一目录索引显示风格定制
在Apache中有目录索引是由mod_autoindex模块负责完成的。它把当前目录结果转换成html页面。在默认情况下,有很多地方让人感觉不爽,比如文件名宽度太窄(只有可怜的23字节),图标太大,有点傻傻的,好多文件类型没有关联。幸好Apache开发人员早就想到这一点,提供了让用户定制的命令。官方详细介绍可以去上面的超链去看看。
索引风格控制命令:
IndexOptions Directive //Dirctive 是命令选项,见下面实例
下面介绍常用的设置(都写在httpd.conf文件中):
修改自动目录索引的宽度
缺省设置下,Apache默认每栏宽度是23字节,对于文件名来说,实在是太短了。一般要求60字节
IndexOptions NameWidth=60
修改图标尺寸
系统默认好像是24,经过试验,发现16的效果比较好。
IndexOptions IconHeight=16
IndexOptions IconWidth=16
目录优先
系统默认是文件优先,和我们平时的习惯不一致。改过来。
IndexOptions FoldersFirst
版本排序
无须多说,加上吧。对于中文来说,是按照拼音顺序排序的。
IndexOptions VersionSort
图标优化
默认的图标有不少比较难看,而且还有很多文件类型就没有图标,由于Solaris不支持Microsoft定义的各种文档类型,显示这些文件时都用问号图标表达,或许代表Sun对Microsoft的态度,不过我可不这么认为,凡事还是清楚点好。
定制文件图标分两步,先用图标工具抓取常用图标,象Word,Excel,Powerpint,Rar,Pdf。另外,默认的目录图标看上去也不爽,干脆把 Window的那套东西都搬过来。完成后,把这些图标(格式为gif或png)全部存到/usr/local/apache2/icons目录下。对于目录图标,我直接用微软的图标替换了那个名字叫folder.gif的文件。
接下来,用AddIcon命令把图标和文件类型关联起来。
AddIcon /icons/word.gif .doc .DOC
AddIcon /icons/excel.gif .xls .XLS
AddIcon /icons/rar.gif .rar .RAR
AddIcon /icons/srm.gif .srm .SRM
AddIcon /icons/powerpoint.gif .ppt .PPT
AddIcon /icons/access.gif .mdb .MDB
上面是我喜欢的文件类型,注意可别忘了大小写都加上哦。
完成后,重新启动apache,哈哈,终于看到了。可是,有几个类型还是没有显示出来L,它们是:rar,srm,mdb。
又仔细分析了一下配置文件,发现可能和文件类型有关。
Apache有一个专门负责文件类型的文件:mime.types,里面为每个文件进行了详细分类。比如有:application,image,audio,video。在里面狂搜了一遍,没有上面的那三个类型,于是在前面增加如下定义:
# MIME type Extensions
application/winrar rar
application/srm srm
application/access mdb
重新启动apache,OK。
Apache目录索引的简易配置
使用Apache配置简易的目录索引,登录者可以方便浏览、下载目录之下的内容。
过程:(以下均为有root权限时的操作)
1.安装apache:pacman -S apache
2.配置apache:vi /etc/httpd/conf/httpd.conf
#管理员的E-mail,出错时发送错误的邮件地址
ServerAdmin [email]HeirJoe@gmail.com[/email]
#服务器名,没有域名就写IP
ServerName My IP:80
#主目录地址
DocumentRoot “/path/to/server”
#设置默认主目录的权限,下面需要用到
Order deny,allow
Allow from all
#使用别名,将系统绝对路径转换为相对于DocumentRoot的相对路径
Alias /home “/home/httpd”
#配置浏览目录的选项
#选项为索引方式
Options Indexes
#索引选项,目录优先
IndexOptions FancyIndexing FoldersFirst
#索引排除选项
IndexIgnore header.html footer.html
#索引头部嵌入文件(只可使用相对http主目录的相对路径,而不是系统的绝对路径)
HeaderName /home/html/header.html
#索引底部嵌入的文件(同上,”/home”使用了别名,同时要为那个目录设置权限)
ReadmeName /home/html/footer.html
#关闭服务器标志
ServerSignature Off
#使用.htaccess文件可以得到的控制水平
AllowOverride None
#控制访问权限
Order allow,deny
Allow from all
所作的修改就这么多,其它的都是系统默认,不考虑安全、性能等,基本能正常跑起来了。
3.运行apache:httpd -k start
简单的配置就这么多,Apache的配置和组合还有好多好多,以后再细细研究
个性化Apach2目录列表
个性化Apach2目录列表,主要取决于对modautoindex模块中的各种指令的使用和配合。可以去先阅读一下Apache2.0手册中的modautoindex模块文档。
文档地址: [url]http://httpd.apache.org/docs/2.0/mod/mod_autoindex.html[/url]
在开始之前,请看一个个性化目录列表的演示地址: [url]http://nanu.8866.org/download[/url]
下面,我们就开始动手:
一、修改httpd.conf文件

对需要个性化的目录进行定制:
<Directory “/www/download”>
Options Indexes FollowSymlinks
IndexOptions FancyIndexing ScanHTMLTitles NameWidth=25 DescriptionWidth=128 VersionSort FoldersFirst
IndexIgnore favicon.ico header.html footer.html images
HeaderName header.html
ReadmeName footer.html
AddDescription “Qmail安装包” qmail.tar.gz
AddDescription “Putty0.58” putty.exe
AddDescription “我的MSN头像:P” msn.gif
IndexOrderDefault Ascending Name
AllowOverride None
Order allow,deny
Allow from all
</Directory>
部分指令说明:
ScanHTMLTitles:如果目录中含有HTML文件,则Apache会自动读取HTML文件的< title>……部分,用HTML文件的标题作为Description(描述)显示在列表目录中的 Description部分。。(注意:加载该指令会加大CPU的负荷!)
NameWidth=25 :指定目录列表可以显示最长为25字节的文件/目录名,如果使用*来做值,会自适应到最长文件名。
DescriptionWidth=128:指定目录列表可以显示最长为128字节的文件/目录描述内容。
VersionSort:如果目录中含有同一文件的不同版本,则Apache会对该文件按照版本号自动排序。
FoldersFirst:最先列出文件夹会使显示效果更好看一些吧!
IndexIgnore:在它后面设定的文件/目录不会在目录列表中显示。
HeaderName:指定该目录列表的header模板,指定一个html文件后,Apache会用这个网页替换掉默认目录列表上面呆板的Index of …..而显示出个性化的头网页。(注意:文件路径是相对于列表目录的根而言的,并不是相对于系统根或者网站根而言的!)
ReadmeName:指定该目录列表的footer模板,指定一个html文件后,Apache会在目录列表的底部加载这个网页。(注意:文件路径是相对于列表目录的根而言的,并不是相对于系统根或者网站根而言的!)
AddDescription:如果你想为某个文件设置一个Description(描述)的话,就使用这个指令,格式是AddDescription “描述” 文件名 。
IndexOrderDefault Ascending Name:指定目录列表的排序方式为按名称排序。
当然,还可以定制很多其他的内容,包括可以为每一个文件设定一个图标等等,去读文档吧。
二、建立header.html和footer.html
这两个文件是列表目录的头网页和尾网页,也是个性化的关键。其实这部分和Apache水平已经没有什么关系了,主要还是看你制作网页水平如何了,呵呵。
这里给出两个文件的格式:
header.html:
<!– 个性化内容开始 –>
可以在这里加入个性化内容,图片、FLASH、表格等等,随意啦!
<!– 个性化内容结束 –>
<!– 嵌入列表目录 –>
<table>
<td>
<tr>
footer.html:

</tr>
</td>
</table>
<!– 目录列表嵌入结束 –>
<!– 个性化内容开始 –>
可以在这里加入个性化内容,图片、FLASH、表格等等,随意啦!
<!– 个性化内容结束 –>
可以看出,其实个性化的原理就是把Apache的目录列表嵌在了header.htm的<\table><\tr><\td>与footer.html的<\/td><\/tr><\/table>之间,两个文件的其他部分都可以自定义内容的。
建立好这两个文件后,就可以重启apache,看看自己的定制的目录有多漂亮吧!

Phpnow根目录索引BUG解决

以前的操作方式都是直接在apache的配置文件httpd.conf文件里找到Options添加

Options  Indexes

示例:

<Directory “D:/localhost″>
Options Indexes
</Directory>

Indexes——允许目录索引(针对无index.html时列出文件)

上面看到,我把Indexes也添加进去了,因为在本地机中,如果没有索引文件的情况下,可查看目录文件还是有利于工作的:) 但要完善这个小细节,还得再做些修改。

找到这行:

#LoadModule autoindex_module modules/mod_autoindex.so

把前面的#号去掉,这样就可以列目录了。

再找到这行:

<IfModule mod_autoindex.c>

而套中其中的,可以找到这一行:

IndexOptions FancyIndexing VersionSort

这一行才是我们要修改的东西,把这行改为:

IndexOptions FancyIndexing VersionSort NameWidth=*

这就是为了让长文件名也可以显示出来。保存,再重启Apache,完美了

本文写得很口水,主要目的是笔记,其次也是分享(不是分享为先的么- -)

UBUNTU SHELL编程 [: 10: Y: UNEXPECTED OPERATOR

按照鸟哥私房菜些的shell编程,但是却出现莫名其妙的问题。
如:

#测试if else

 

read -p “input y/n? : ” yn

if [ $yn == “y” ]; then

echo “continue;”
elif [ $yn == “n” ]; then
echo “break;”
else
echo “pls input sth.”
fi

 

执行的时候,总是发现提示  [: 12: y: unexpected operator
无奈了,跑到终端下按照shell里的命令输入了下,居然成功了,不禁再一次感叹了下问题的诡异。

最后在网上找到了答案:
第一种:

因为ubuntu默认的sh是连接到dash的,又因为dash跟bash的不兼容所以出错了.执行时可以把sh换成bash 文件名.sh来执行.成功.dash是什么东西,查了一下,应该也是一种shell,貌似用户对它的诟病颇多.
by the way修改sh默认连接到bash的一种方法:
sudo dpkg-reconfigure dash
选择no即可.

第二种:
在某个论坛看到别人讨论的结果。

将== 改为=就行了,dash判断字符串相等用 的是=。

 

客户端提示 Cannot proceed,system tables Event Scheduler

在打开数据库时客户端提示“Cannot proceed because system tables used by Event Scheduler were found damaged at server start” 造成此原因是MySQL服务器的当前版本不兼容所有数据库的表

解决方法

1、linux、windows下解决方法类似
$PATH/mysql/bin/mysql_upgrade – u root -p
例如:/usr/local/mysql/bin/mysql_upgrade – u root -p     [回车输入密码即可]

$PATH mysql安装路径

执行完后停止mysqld后再重新启动mysqld一次,问题即可解决。

具体说明参考:http://dev.mysql.com/doc/refman/5.1/en/mysql-upgrade.html

php高负载架构

说明:
我在设计系统架构时,进行了大胆的尝试,只用6台Web服务器,达到了可承受4000万PV(页面访问量)的性能:

抛弃了 Apache,因为它能承受的并发连接相对较低;
抛弃了 Squid,因为它在内存利用、访问速度、并发连接、清除缓存等方面不如 Varnish;
抛弃了 PHP4,因为 PHP5 处理面向对象代码的速度要比 PHP4 快,另外,PHP4 已经不再继续开发;
抛弃了 F5 BIG-IP 负载均衡交换机,F5 虽然是个好东西,但由于价格不菲,多个部门多个产品都运行在其之上,流量大、负载高,从而导致性能大打折扣;

利用 Varnish cache 减少了90%的数据库查询,解决了MySQL数据库瓶颈;
利用 Varnish cache 的内存缓存命中加快了网页的访问速度;
利用 Nginx + PHP5(FastCGI) 的胜过Apache 10倍的高并发性能,以最少的服务器数量解决了PHP动态程序访问问题;
利用 Memcached 处理实时数据读写;
利用 HAProxy 做接口服务器健康检查;

经过压力测试,每台Web服务器能够处理3万并发连接数,承受4千万PV完全没问题。

保证4千万PV的并发连接数:(40000000PV / 86400秒 * 10个派生连接数 * 5秒内响应 * 5倍峰值) / 6台Web服务器 = 19290连接数

实验证明:

举个简单的例子,服务器192.168.0.2上运行Nginx+PHP,192.168.0.3上运行 Apache+PHP,你在192.168.0.4上安装压力测试工具webbench , 以30万并发连接分别请求Nginx和Apache服务器上的一 个PHP文件60秒钟。在这期间,你用你的浏览器访问Apache服务器上的PHP文件,会发现要么是“该页无法显示”、要么是等待好几秒钟才能打开,而 Nginx服务器的PHP文件,依然没有丝毫影响,访问速度仍然飞快。

webbench -c 300000 -t 60 http://192.168.0.2/index.php

webbench -c 300000 -t 60 http://192.168.0.3/index.php

 

CSV和XLS文件区别

xls 文件就是Microsoft excel电子表格的文件格式。我想就不用多介绍了吧,学校里多少都学过的。
CSV是最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中。 此文件,一行即为数据表的一行。生成数据表字段用半角逗号隔开。

CSV是文本文件,用记事本就能打开,XLS是二进制的文件只有用EXCEL才能打

CSV(以逗号分隔)

CSV (*.csv) 文件格式只能保存活动工作表中的单元格所显示的文本和数值。工作表中所有的数据行和字符都将保存。数据列以逗号分隔,每一行数据都以回车符结束。如果单元格中包含逗号,则该单元格中的内容以双引号引起。

如果单元格显示的是公式而不是数值,该公式将转换为文本方式。所有格式、图形、对象和工作表的其他内容将全部丢失。欧元符号将转换为问号。

CSV即Comma Separate Values,这种文件格式经常用来作为不同程序之间的数据交互的格式。
通过使用 Excel 中“文件”菜单上的“另存为”命令,可将 Microsoft Excel 文件转换成CSV文件格式

csv文件是以逗号为分隔符号,将各字段列分离出的一种ASCII文件

CSV是最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中,而XLS则是EXCEL专用格式了。CSV文件一行即为数据表的一行,生成数据表字段用半角逗号隔开。
Comma Separated Value即是CSV的全称,你可以尝试用记事本打开CSV和XLS文件看看。

csv是逗号分割的文本文件,可以用文本编辑器和电子表格如excel等打开。
.xls是excel专用格式

文本文件的内容有ASCII字符集中的字符组成

首先:文本文件和二进制文件是有区别的,对于文本文件来说,每个字节(或每几个字节)的意义相同,你只要一个一个字节的读出来就OK了;而对于二进制文件来说,可能有4个字节保存了一个整形,接下去有4个字节保存了一个浮点型等等……所以要想打开二进制文件需要了解它的文件格式。
要想知道文件格式,你可以用16进制编辑器打开一个二进制文件,然后猜测它的格式。