在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就可以了。

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

XBMC

Uncategorized

XBMC

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就会被强制升到指定版本。