agon-Archive for February, 2009

Archive for February, 2009

晒太阳

February 20th, 2009, Posted by: agon   

如果身体健康,肚子不饿,也没有急着上厕所,没下一场雪的冬天要去了,春天也不远了,刚刚洗过澡,坐在阴影里,一首中意的歌,没有风,没有云,太阳光开始从手移向手臂,身体慢慢被加温……

ubuntu8.10 MX 440 显卡驱动安装

February 16th, 2009, Posted by: agon   

前几天装了xubuntu 8.10,硬盘安装很顺利。可是到显卡驱动的却花了一天多,视力被严重伤害之后,重启n次,重装一次才解决,对新手也太不友好了。本来很简单,驱动检测跳出提示框,点active,就自动下载装上了,可能显卡太老,装上以后,打开网页,或者有字的文档,文字都挤在一起,成了黑块或彩块,文字渲染有问题,然后就开始找合适的驱动,刚开始以为找老一点的驱动。像windows下一样,可是在8.10下无法buliding。

下面是解决方法,希望对老nvidia显卡的朋友有帮助。
准备工作:卸载已经安装的驱动,如果是自动安装,在点acitive的地方deactive卸载已经安装的驱动,如果是手动下载nvidia驱动安装的,到安装的地方,输入sudo sh driver.run --unistall,这个driver.run是你之前自己装的那个驱动文件。

安装,有两种方法:

第一种方法:很省事,到这里下载nvidia-96-modaliases_96.43.10,到这里下载96.43.10的nvidia-96-kernel-source,nvidia-glx,nvidia-glx-96-dev三个包,全部安上,然后在驱动检测那里选active。重启。

第二种方法:去nvidia官方相应,32位的这里。64位的这里,相应的有两三个文件,选尾号最大的。把下好的驱动改个容易输入的名字,然后按CTRL+ ALT F1进入命令行,然后输入以下命令,
sudo /etc/init.d/gdm stop
假如你的驱动在桌面,输入:
sudo sh Desktop/yourdriver.run,进入安装界面,选accept,然后会问你是否下载合适的kernal source,选择no,然后就一路选yes,重启。

设置,重启后输入:sudo nvidia-settings,打开设置合适的分辨率,如图:
nvidia
设置完后,选择Save。

终极gzip压缩css、js、html、php语法

February 13th, 2009, Posted by: agon   

由于又被迫先暂时搬回000webhost,而这里没有mod_DEFLATE模块,再找以前压缩的时候琢磨出来的,以前还没见到过,超级简单,不超过10行短代码,就能解决各类静态网页文件的压缩问题,而且各个浏览器显示正常。

关于这个话题,很多人都写过了,最早是看阅微堂的教程很受启发,后来发现,我用起来rp很差,不是php动态网页不能压缩,就是css不显示,不能方便的按各种类型统一设置缓存,后来我用zlib的方法解决了以上问题,并且解决了firefox不显示css的问题,可是用zlib又有个坏处,就是必须等网页下载完之后,才开始解释,初次载入感稍差,mod_DEFLATE模块可以便下载边解释。
好了不说废话了,放代码,我以这个000webhost空间为例,首先编辑.htaccess,在里面添加两行代码:

AddHandler application/x-httpd-php .css .html .js
#这是添加你要压缩的类型
php_value auto_prepend_file "/home/a4284418/public_html/gzip.php"
#这是你给这些类型增加一个自动运行的php代码,后面一定要填你空间的绝对地址

然后在你指定的地址新建一个gzip.php,在里面加上如下代码:

<?php
ob_start("ob_gzhandler");
ob_start("compress");
//如果出现css不能解释,只显示网页,请加入下面的红色代码,去掉注释符
/*
 $pathinfo = pathinfo($_SERVER[PHP_SELF]); switch ($pathinfo['extension']) { case "css" : header("Content-type: text/css"); break; case "html" : header("Content-type: text/html"); break; case "js" : header("Content-type: text/javascript"); break; default : break; }
*/
?>

好了,完工,就这么简单,你什么都不用懂,就可以压缩这四种静态文件了,而且它还是边下载,边解释。
如图:gzip
第一个始主页,第二个是css,两个同时下载,要是zlib的话,第一个下完,后边的才开始下。

另外说一句使用mod_DEFLATE压缩的人,肯能有的空间js无法压缩,建议用以下语法:

<FilesMatch "\.(js|css|html|htm|php|xml)tiny_mce_markerquot;>
SetOutputFilter DEFLATE
</FilesMatch>

这个方法目前来看非常圆满,ie6,K-meleon,opera,firefox均显示正常。

Update:提供另一种便捷方法,有的免费主机上可能不让用AddHandler,例如000webhost,你一用就会在网页后面插入一段analysis代码,如果网页中有动态返回结果,每个返回结果都插了这一段分析代码,引起一连串错误。
好了下面说方法:
首先,更改.htaccess,添加下面内容

#打开zlib压缩输出,自动压缩html,php文件
php_value zlib.output_compression 2048
#设置css和js文件压缩
<IfModule mod_rewrite.c>
RewriteEngine On
#下面是你要压缩目录的路径,这里为当前
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f
#下面是gzip.php文件压缩js和css文件,注意gzip.php文件位置
RewriteRule ^(.*)(js|css)$ /gzip.php?file=$1$2&type=$2 [L]
</IfModule>

创建gzip.php文件,位置与你在.htaccess里设置的相同,添加如下内容:

<?php
$file=$_GET['file'];

switch ($_GET['type']){
case 'css':
header("Content-type: text/css");
break;
case 'js' :
header("Content-type: text/javascript");
break;
}
include($file);
?>

好了现在就可以自动压缩js,html,和css文件了
2012年9月2日Update:做公司网站的时候发现cpnel空间的mod_DEFLATE网站优化工具没了没有了,只有php和html页面才压缩输出,css和js不会压缩,于是用上面得方法在.htaccess里写php_value,添加压缩文件,发现网站500错误,查看错误日志,显示为”command ‘php_value’, perhaps misspelled or defined by a module not included in the server configuratio”,原来空间禁止在.htaccess里写php_value,解决的办法是在相应的目录添加一个php_ini文件,在里面写,如把php_value zlib.output_compression 2048换成zlib.output_compression=2048,然而用php_ini有一个坏处,就是只能在当前目录里起作用,在当前目录的子目录里就会失去作用,php_ini里写一些值,分别在当前目录和子目录里查一下phpinfo(),就明白了,可是css文件和js文件分散在很多文件夹里,所以决定不用php_ini文件,在.htaccess用RewriteRule来加载用来压缩js和css的php文件,以前写的还不算完美,有限制,下面的方法应该没什么限制,算是比较完美了,原理和以前的差不多,只是融合了以上两种方法,具体流程如下图,图片是修改自这里的:

首先,更改.htaccess,添加下面内容


RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
#这里用的是相对路径,gzip.php与.htaccess在同以文件夹内
#代码的意思是正则式判断js和css结尾文件,并把文件名和类型传给gzip.php文件
#如果你的html和php没有默认压缩,(js|css)改为(php|html|js|css)
RewriteRule ^(.*)(js|css)$ gzip.php?file=$1$2&type=$2 [L]

然后,在.htaccess同文件夹下新建gzip.php文件,在里面添加如下代码:

<?php
ob_start("ob_gzhandler");
ob_start("compress");
$file=$_GET['file'];
switch ($_GET['type']){
case 'css':
header_remove("Expires");
header_remove("Last-Modified");
header("Cache-Control: max-age=15360000");
header("Content-type: text/css");
break;
case 'js' :
header_remove("Expires");
header_remove("Last-Modified");
header("Cache-Control: max-age=315360000");
header("Content-type: text/javascript");
break;
}
include($file);
?<
Page 1 of 11