Debian

在Apache2下启用SSL(https)

  这是一份快速教程,并没有顾及到方方面面,敬请谅解。
自签证书

a2enmod ssl
mkdir /etc/apache2/ssl
openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.key

  第一行用来启用Apache2的ssl模块,第三行用来生成一个自签名证书。

配置Apache2使用自签证书
  编辑"/etc/apache2/ports.conf",确保有ip:443这样的设置,默认启用ssl模块后系统会自动添加。

NameVirtualHost 12.34.56.78:443

  编辑VirtualHost文件:

<VirtualHost 12.34.56.78:443>
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
......
</VirtualHost>
  前三行是设置启用SSL和设置证书位置,接下来按照正常的站点设置就可以了,可以参考《VPS建站LAMP 101》。
  最后重启Apache就可以了。

Debian跨版本软件包安装

  Debian GNU/Linux这个伟大的操作系统任何时候都提供三个版本选择:stable, testing, unstable。stable就是公开发布的的版本,软件版本比较老,但是最稳定。testing是stable的预备版,软件版本比较新,相对stable会有较多Bug。unstable是版本最新,最不稳定的一个。所以一般来说作为服务器都会选择最稳定的stable,但是有时候stable里软件的版本实在太老了。比如stable里的Nginx版本是0.6.32,而我更想要testing下的0.7.64,因为这个版本对SSL支持更好。
  基本上大家都会把 /etc/apt/source.list 文件中的stable改成testing,然后update一下就可以安装Nginx 0.7.64了。但问题是apt-get的机制是新版本优先,所以接下来的一次upgrade会看到大量的软件包需要更新,因为testing库里的版本一定会比stable更新,但是我并不想其它东西更新到testing。所以编辑一下 /etc/apt/preferences 文件,这文件可能一开始是没有的,自己建立一个就行,内容如下:

Package: *
Pin: release a=stable
Pin-Priority: 900

Package: *
Pin: release a=testing
Pin-Priority: 800

  第1, 2行很好理解,就是指这个版本的所有包。关键是Pin-Priority这个值,简单来说这个值谁大,apt-get就会装谁的,而不管版本大小。然后做一下update/upgrade看看,在同时有stable和testing源的情况下也不会upgrade到testing了。然后用下面这条命令安装testing中的Nginx。

apt-get install nginx/testing

  这样Nginx更新到了testing版本而其他软件还维持在stable的版本上。不过这样设置的规则只对未安装的软件有效,具体来说如果已安装了testing的高版本软件,即使stable的Pin-Priority值高于testing,upgrade或者install时仍然会以已安装的testing版本为准,而不会安装stable中的软件。所以如果出于某种原因想upgrade(downgrade?)回一个较旧的版本(testing=>stable),或者本来是testing的,现在想搞回stable了,那就得这么干:同样修改/etc/apt/preferences

Package: *
Pin: release a=stable
Pin-Priority: 1001

  只要Pin-Priority这个值大于1000,upgrade/dist-upgrade就会被强制升到指定版本。

VPS建站LAMP 101

  自从跑到Linode上买了VPS,建站就得自己从零开始,这里写点基本建站的过程。

  • 以下内容是标准而又基础的LAMP搭建,不涉及ngix, lighttpd这些服务。
  • 以下内容非特别注明都在root权限下执行。
  • 以下内容使用的操作系统是Debian 5.0 (Lenny) 64bit,不过只要是Debian Like(比如 Ubuntu)的系统应该是通用的。
  • 由于各家VPS提供商的基础系统安装步骤各不相同,文章内容并不涉及到系统安装和域名设置。

设置时区
  系统安装完毕后,最好先设置一下时区。一般来说大部分发行版本默认的时区设置是UTC,个人建议还是把它设置成自己的当前时区比较好。

dpkg-reconfigure tzdata

从Dreamhost向Linode搬迁中

  自从05年底开始使用Dreamhost的服务至今也有小四年的时间,在下一个账期开始前我还是决定终止Dreamhost的服务全面转向VPS Hosting供应商:Linode
  我并不想说关于Dreamhost的坏话,抛开有些高的当机率和所有共享主机商都斤斤计较的CPU使用率外,Dreamhost提供了一个对我这样初学者来说极其友好的服务和进阶功能。这次转向Linode说到底是我有些贱的折腾习惯在作怪,顺便面对每年更高的主机租用价格让我能增加一点把Blog写下去的压力。
  有关Linode的一些事实:

  • Linode是一家美国的VPS提供商,VPS就相当于把一台物理主机划分为多台虚拟主机,各台虚拟主机都有自己独立的CPU、内存、硬盘,逻辑上它完全是一台独立的服务器。所以相对Dreamhost那样over selling严重的Share Server,VPS对各类资源有很大的保证。Linode使用的是Xen技术,至于Xen具体是啥有兴趣的可以自己找Wiki去看看,反正很NB就是了。
  • Linode作为VPS来说是比较便宜的一家,我购买的是最便宜的Linode 360,价格是每月$19.95,加上一次购买一年给打了9折的折扣,另外还找了一个首月返还$10的Promo Code: storecrowd,所以一年的总费用是:$19.95 x 12 x 0.9 - $10 = $205.46。
  • Linode只能用信用卡。
  • Linode提供四个机房的服务器供选择,我使用的是Fremont, CA机房的,经很多人测试亚洲访问的速度应该是很不错的,我的实际测试是使用浏览器下载电信和网通都可以维持在150k/s左右。(可以到Linode">这里测试)
  • 由于使用的是VPS,所以你需要对于Linux有些了解。基础系统不需要你安装,但是对于如何搭建一个Web服务还是要知道一点的,不过Linode有丰富的文档可供参考,我一开始就是照着文档一步一步搭起来的。
  • Linode提供DNS管理,完全可以(我也建议这样)把域名的DNS交给Linode来管理,它的界面友好,生效速度极快。我的经验是一般15分钟-1小时肯定同步完毕,国内一般都要12小时以上。

  估计接下来的一段日子我会大量更新有关Linode上的一些使用技巧和如何搭建一个基本的Web服务器。最后,如果你对Linode有兴趣可以用这个地址注册:http://www.linode.com/?r=2423bd4b1aea90e0163241cd71513fe1b81108d3或者在注册的referral code中填2423bd4b1aea90e0163241cd71513fe1b81108d3,大约在三个月后我能得到一些好处,当然你直接跑去注册也没问题,以上链接并不会给你带来更多的优惠(当然也没什么坏处)。我个人在这里提供一个首月返还$10的Promo Code:storecrowd,这个是实在的优惠。

Debian安装过程中发生/target/错误的解决

  最近Debian每日生成的安装盘在最后需要安装Grub步骤时会发生不能正确安装到/target/的错误信息。暂时的解决方法如下:

  • Alt + F2,切换到另一个控制台,回车。
  • #chroot /target
    #apt-get install grub

  • Alt + F1,切换回安装界面,选择Back,再试一次。
Syndicate content