Archlinux 前两天已经完全配置好了。这两天准备把开发环境配置一下,我是搞 WEB 开发的,所以 WEB 服务器是必须配置的。以前 Linux 下最流行的 WEB 服务器是 Apache,但是现在时代已经有所变化,Lighttpd 已经体现出了一种很强的增长趋势了。
下面我就把 Arch Linux 下面配置 Lighttpd + FastCGI + PHP 的方法写下来,虽然 Arch Linux 的官方 Wiki 上也有配置方法,但是官方的配置方法比较笼统而且是英文,对于很多不熟悉的朋友理解起来有些困难,所以我就参考 Arch Linux 官方的 Wiki 文章把具体的步骤写下来,更高级的 Lighttpd 和 PHP 配置大家可以参考他们各自的官方网站进行配置,我就不一一说明了,这个文章只是个敲门砖,免得很多朋友第一次配置不好而降低了学习 Linux 的积极性,呵呵。
这几天我会把 ASP.NET 也部署到 Linux 下面,到时候给大家继续写一个入门参考。
安装方法很简单,直接用 pacman -S lighttpd fcgi php 就可以安装好 Lighttpd + FastCGI + PHP 了,主要是配置方法有些麻烦,下面我就一一说明配置方法。
最近想在 VMware 下重新安装一个 ArchLinux 体验一次,还是按照老办法安装,装好 Core,配置好网络,安装 Xorg,Xfce4 ,然后安装 VMware-Tools,安装过程一切顺利,但是 startx 进入 xfce4 以后就出现问题了。鼠标跟本就看不到,但是点击鼠标右键后可以看到桌面菜单出现在屏幕右下角。估计是 Xorg 的鼠标驱动 xf86-input-vmmouse 有问题,到 ArchLinux 官方论坛一搜索,果然有人跟我出现一样的问题,里面提到了旧版本的 xorg-server 和 xf86-input-vmmouse 是没有问题的。
看来就是新版本的问题了,我的 ArchLinux 是 FTP 安装的,没法降级到低版本,没办法只好继续到 Google 搜索之,呵呵,终于找到了解决办法,果然就是 xf86-input-vmmouse 的问题。解决办法也很简单,就是替换一下 xf86-input-vmmouse 的主要驱动文件 /usr/lib/xorg/modules/input/vmmouse_drv.so 就可以了。点击下载打过补丁的 vmmouse_drv.so,下载回去后把 cab 后缀改成 so 后缀直接替换上面的文件就可以了。
Linux 不管什么发行版本,内核都是一样的,就是设置和补丁有些小区别而已,桌面环境也就那几个,万变不离其宗。所以解决 Linux 里面问题的时候不要光瞄准发行版进行搜索,应该从更底层的包入手,如果我光瞄准 ArchLinux 进行搜索的话…… 估计也很难搜索到这个问题的解决办法……
以后我有空会写一些 ArchLinux 相关的文章上来跟大家交流的,喜欢这个发行版的朋友如果有什么问题可以跟我交流啊。呵呵,我的信箱:loveyuki@gmail.com
在 .NET 中如果引用了 System 命名空间那么我们就可以直接使用 Environment.TickCount 获得计算机启动后的毫秒数,但是如果直接把这个毫秒数输出给用户,用户很难直观的计算出到底启动了多少时间,所以我们一般都是格式化成一个可以直观看出结果的字符串以后再输出给用户,当然如果你有更好的方法欢迎给我留言。代码片段如下:
Int32 tickSecond = Environment.TickCount / 60000;
Int32 tickDay = tickSecond / 60 / 24;
Int32 tickHour = (tickSecond / 60) % 24;
Int32 tickMinute = tickSecond % 60;
String runTime = String.Format("{0} 天 {1} 小时 {2} 分", tickDay, tickHour, tickMinute);
另外提供一个小技巧就是 ASP.NET 2.0 中数据库配置文件可以使用 |DataDirectory| 来表示 App_Data 目录。
分享一个格式化文件大小的 C# 方法:
public static String FormatFileSize(Int64 fileSize)
{
if (fileSize < 0)
{
throw new ArgumentOutOfRangeException("fileSize");
}
else if (fileSize >= 1024 * 1024 * 1024)
{
return string.Format("{0:########0.00} GB", ((Double)fileSize) / (1024 * 1024 * 1024));
}
else if (fileSize >= 1024 * 1024)
{
return string.Format("{0:####0.00} MB", ((Double)fileSize) / (1024 * 1024));
}
else if (fileSize >= 1024)
{
return string.Format("{0:####0.00} KB", ((Double)fileSize) / 1024);
}
else
{
return string.Format("{0} bytes", fileSize);
}
}
这篇文章是根据 SQLite 官方 WIKI 里的内容翻译,如果有什么翻译不当的地方希望大家指出,毕竟我的英文水平实在很差。 SQLite 包括以下五个时间函数:
上述五个函数需要一个日期时间字符串做参数,后面可以跟零到多个修正符参数。而 strftime() 函数还需要一个日期时间格式字符串做第一个参数。