Monthly Archives: January 2011

.htaccess权限设置不正确导致无法Rewrite

最近在配置一个php的网站程序时碰到了.htaccess文件权限设置不正确而导致Rewrite失效的情况。
起初将网站程序全部上传,运行正确,后来有一个地方读写权限碰到问题,于是鲁莽地将整个文件夹带循环方式的权限全部设置为 777
chmod -R 777 webroot
经过一番设置之后,网站运行OK了,就稍微考虑了一下SEO方面的问题,于是启用了伪静态,但是不知道为甚,伪静态不起作用,仔细检查了相关的正则表达式,完全OK,但是服务器上就是不起作用。

仔细分析了一下:同一个服务器上的另外一个程序Rewrite完全正确,表明Apache的Rewrite模块是工作正常的;后来比较这两个.htaccess的文件权限发现了情况。这个有问题的站点下的.htaccess文件权限是777,而另外一个是666。

上网查阅了一番:系统为了确保安全,对于.htaccess权限为 777 的情况下,可能会拒绝执行,于是去掉可执行属性,一切恢复正常。

Erlang应用程序配置不正确导致不正常启动的问题

在Erlang的应用程序配置文件 .app 配置不正确的时候,Erlang应用程序启动有可能出现表面上启动正常,但是实际上没有正确启动的问题。

如果程序没有问题,但是启动后就是无法访问,可以考虑仔细检查一遍 .app 的配置信息,看看是不是多了或者少了一个 {},[]或者,

为Linode VPS配置多个IP及同一个VPS多个站点的配置(Debian版)

新年更新了一下空间,升级到了Linode的VPS。这个群众都说好的VPS用起来是不错。可以选择以下的机房:
• London, GB, UK
• Newark, NJ, USA
• Atlanta, GA, USA
• Dallas, TX, USA
• Fremont, CA, USA
参考:http://www.linode.com/why.cfm ,我选的是Fremont

为了方便管理网站,我又额外购买了一个IP地址,貌似我的Linode 512的配置只使用最多2个IP地址了。我对Debian比较熟悉,所以安装系统的时候毫不犹豫的选择了Debian,对Linux的不熟悉的还是不要选择Debian了,建议选择CentOS,参考一下网上的教程,安装Kloxo面板。

首先是购买多个IP地址,进入Linode的Dashboard界面,点击Extras,就能购买额外的IP地址了,由于Linode绑定了信用卡,所以会直接从信用卡上扣钱,每个额外IP地址的价格是$12一年,每个月是$1。如下图:

成功购买了IP地址之后,在Remote Access里可以看到所有的IP地址信息:

下面说重点:Debian的多个IP地址配置。首先看了一个《为linode VPS配置多个IP教程》,估计那个是CentOS的教程,Debian下IP地址配置文件是 /etc/network/interfaces 这个文件。用Putty登录Linode,用vim或者emacs打开(以emacs为例):
emacs /etc/network/interfaces
默认的配置是通过DHCP自动获取的,内容如下:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

替换成

auto lo
iface lo inet loopback

auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 173.230.99.11
netmask 255.255.255.0
gateway 173.230.99.1

auto eth0:0
iface eth0:0 inet static
address 173.230.44.88
netmask 255.255.255.0
gateway 173.230.44.1

173.230.99.11和173.230.44.88分别是linode分配给你的ip
173.230.99.1和173.230.44.1分别是linode分配给你的网关

Ctrl + X, Ctrl +S 保存,然后重启一下Linode的机器,在Dashboard界面上就能完成。
重启之后应该完成了多个IP地址的配置。

在这之前建议先自己检查一下配置,不要拼错了,否则可能无法远程登录到机器上了。
如果你不熟悉这个过程的话,可以考虑删了机器重来:-P

多个站点的配置
登录Linode的Debian,首先运行一下apt-get update,更新一下源,安装Apache2,php5,mysql和phpmyadmin:
apt-get install apache2 mysql-server php5 phpmyadmin php5-gd
安装完成后基本上都能用了,但是phpmyadmin貌似缺少了一个快捷方式,apache2的默认运行根目录是/var/www
phpmyadmin的安装目录是/usr/share/phpmyadmin
运行这个 ln -s /usr/share/phpmyadmin /var/www/phpmyadmin
现在打开浏览器,访问:http://ip/phpmyadmin 就能访问phpmyadmin了

apache2的安装目录在/etc/apache2/下面,要配置多个站点,首先要编辑一个配置文件
/etc/apache2/sites-available/ 就是所有站点的配置信息,我们把default拷贝一份
cp default shootsoft.net
然后用emacs打开shootsoft.net这个配置文件
把 DocumentRoot /var/www/ 后面的路径改为我们的站点根目录,比如 /var/web/shootsoft
后面的: 里面的路径也一样改掉。
另外在DocumentRoot 这一行之上加上两行

ServerName www.shootsoft.net
ServerAlias shootsoft.net

然后在site-enabled目录下创建一个shootsoft.net的快捷方式
ln -s /etc/apache2/sites-available/shootsoft.net /etc/apache2/sites-enabled/shootsoft.net
重启apache
/etc/ini.d/apache2 restart
然后就生效了。
如果有更多的站点,可以效仿shootsoft.net的配置去修改

另外要注意的就是自己创建的站点目录,比如/var/web/shootsoft可能缺少权限,运行一下:

chmod 777 /var/web/shootsoft

就OK了。