如何部署WordPress到Amazon云主机

在过去的10年,架设一个大型网站是一个非常艰巨的任务,那可不是非专业人士可以完成的。现在好了,亚马逊开放了他们的服务器架构,一切都改变了。 计算机硬件被移动到了云端,普通站长和开发人员都可以利用亚马逊的硬件和网络资源来运行自己的应用。在本文中,我们将把WordPress博客安装到云端。


介绍

大多数博客和小型企业站点都托管在共享主机上面,通过固定的月租费用来获得预装软件和特定功能的使用。大多数情况下,共享主机是一个完美的解决方案,但是将你的博客安装在Amazon云端有很多好处是值得我们考虑的:

  • 更容易升级更新. 在Amazon云端创建一个新服务器可以在数分钟内完成。使用该服务,你的网站将有能力应付突如其来的流量爆发,比如你的博客文章被推荐到了Digg或者Reddit的首页,你可以添加更多服务器并平衡负载。
  • 经济有效的大规模服务能力. 如果你的站点吸引了大量的用户,并且最终超过了主机的正常伺服能力,Amazon Web Services 将给你一个经济有效的办法来设计一个符合你的需求的网站服务架构,而你并不需要去雇佣一个完整的网络运作团队来安装和管理网络。这也是许多 Facebook开发人员选择Amazon云服务器的原因。
  • 完善的安装与设置. 在运行WordPress时,这一点可能不是太重要,但如果你想使用PHP和MySQL之外的一些东西来建设你的下一个项目,则没有必要请求主机公司的帮助,你可以就像在你自己的服务器上一样安装你所需要的软件。

是否把WordPress站点放到亚马逊云端由你的博客流量决定,并且你可以根据你的实际需求来决定服务器配置。通过下面的指南,你可以了解到怎样迅速的在Amazon Cloud上设置和运行服务器。 Continue reading 如何部署WordPress到Amazon云主机

创建一个加密的squid代理通道

众所周知,在大陆不能自由的访问互联网,为此人们想出了各种办法,真是八仙过海各显神通,然而,很多办法是既绕圈子,又没有普遍应用的意义,使用ssh tunnel实际上效率是很低的,因为ssh不是为了这个目的而开发,今天我们要介绍的是具有普遍的意义的代理服务器squid和stunnel。

其实这二者组合并不新鲜,也并不罕见,下面说说这个组合的 应用条件:

1,一台运行在自由世界的服务器,或者虚拟机。
2,这台服务器上安装了squid。
3,当然,你必须要可以从中国大陆连接它。

首先我们来配置安装好的squid,很多旧的案例使用stunnel加密squid端口,然后在客户机上使用stunnel解密,这是多走了一个弯路,squid自身已经支持加密的代理方法,在服务器上,我们根本就不需要运行stunnel,例如我们要将这个加密的代理运行在服务器IP地址为216.218.186.2的443端口,具体配置参数如下:

https_port 216.218.186.2:443    cert=/etc/squid/hnair.com.crt key=/etc/squid/hnair.com.key

其中,hnair.com.crt和hnair.com.key是使用openssl生成用于加密的数字证书和密钥,关于自行生成数字证书的方法,可参考如下:

openssl req -new > hnair.com.csr

openssl rsa -in privkey.pem -out hnair.com.key

openssl x509 -in hnair.com.csr -out hnair.com.crt -req -signkey hnair.com.key -days 3650

然后启动squid即可。

接下来,我们需要对客户端进行配置,不管你是Windows还是Linux,都可以到这里下载:ftp://ftp.stunnel.org/stunnel/

将相应的stunnel压缩包解压缩或者安装,添加一个配置文件(stunnel.conf)至程序的目录:

client = yes
[ssl2http]
accept = 127.0.0.1:8080
connect = 216.218.186.2:443

注意,有些Linux发行版中,例如Ubuntu,在进行apt-get安装stunnel的时候,stunnel v3和v4都会安装上去,此时应该使用stunnel4来运行,直接运行 /usr/bin/stunnel4 即可,在Windows中不存在这个问题。

然后,我们将浏览器的代理服务器设置为本机的8080端口,也就是127.0.0.1:8080,即可使用一个加密的通道,自由的访问互联网了,实际上,这个方法被广泛应用在XX功的网站上,只不过他们用的是Apache做反向代理,因为上面还有他们的网站,虽然总是胡说八道来着,由于我们不需要在上面运行网站,所以squid代理服务器是最佳选择。

我很好奇为什么那么多人在卖ssh代理,却没有人卖加密的squid,在squid上添加用户身份验证,即可达到类似的效果,究其原因,其实还是有两个:

第一,ssh代理可以实现socks请求转发,有些应用可能需要。

第二,ssh代理本身效率不高,可以防止用户滥用,流量超荷,而加密的squid如果没有流量限制,那显然是一场悲剧。

苹果的另一面:开源软件重镇

刚才一个苹果网站的链接在很短时间内成为Hacker News的头条。这个普通的网址却揭开了以封闭著称的苹果公司不太为人所知的另一面:开源社区的积极一员。

正如这个网页上苹果自己所说的,它是第一个将开源软件作为关键战略的主要计算机公司。了解苹果历史的人肯定知道此言不虚。苹果最重要的软件产品——Mac OS X的内核XNU再加上一些驱动等核心组件合称为Darwin,就是一个开源项目。这个开源项目有个可爱的吉祥物Hexley(达尔文的斗犬赫胥黎是也,不过为什么是鸭子的形状,是因为混合吗?),熟悉FreeBSD的人应该发出会心一笑吧:

这是一个堪称完美的混合内核,著名学院派操作系统Mach的微内核提供了足够的灵活性,也支持着系统的任务、线程、进程、消息传递(IPC)、RPC、SMP调度支持、保护式内存、虚拟内存管理等主要底层功能;而Unix正宗FreeBSD则满足了足够的性能要求,并提供了POSIX API、文件系统、网络栈、安全、抢占式多任务、用户与组管理、权限管理等特性;此外还有Apple独有的面向对象设备驱动框架I/O Kit。这个内核的模块性如此之好,以至于苹果的架构师们能够比较自由地为Mac电脑以及iOS设备选择底层硬件,从PowerPC到Intel,再到ARM……

Darwin架构图

作为目前普通用户最多的类Unix操作系统,Mac OS X中还内置了Unix中常见的各种开源软件,包括Ruby、Python、Perl等语言开发环境以及各种工具。也难怪现在越来越多程序员将Mac OS作为开发机,并渐渐“沦为果粉”……

苹果的另一个著名开源项目大家应该都听说过,但未必知道出自苹果。这就是浏览器引擎WebKit。WebKit(开源项目网址)是1998年苹果工程师开发的一个(KDE开源项目旗下)KHTML与KJS派生版本,开始的时候代码会提交到KDE项目中,但后来双方产生了矛盾而分裂。2005年6月,苹果宣布WebKit开源,成为一个独立的项目。

除了Safari之外,排名第三的开源浏览器Chrome也是基于WebKit的,甚至Adobe的AIR和Creative Suite CS 5也使用它来渲染HTML。当然,使WebKit日益重要的是手机,目前大多数智能手机浏览器包括Android、iPhone、黑莓、Symbian都基于WebKit,据估计目前用户已经超过4亿。今天的WebKit项目开发团队中,除了苹果的工程师外,Google也是生力军,此外还有不少RIM公司的人,他们应该是来自被黑莓收购的Torch浏览器开发团队。

苹果还有几个在更专业的领域里非常重要的开源项目,比如编译器框架LLVM,异构编程框架OpenCL,服务发现协议实现Bonjour等。其中,LLVM现在已经成为语言创新的温床,看看都有哪些项目因此而如虎添翼吧。

了解了苹果在开源方面的贡献,你对它的印象是否已经有所改观?其实也不稀奇,苹果是一家工程师文化深厚的公司,开源本来就是应该是工程师文化的一部分。

CentOS(RedHat)命令行修改主机名(主机别名)

Linux命令行修改主机名和主机别名。

主机名:通常意义上的主机名,标识你的主机。
主机别名:控制台提示符处的名称,例如主机别名为”node50″,则root控制台提示符为[root@node50 ~]#
修改主机名必须同时修改2个文件,即这两个文件内的主机名要完全一致。

1.修改文件 /etc/sysconfig/network

将HOSTNAME的值修改为你要设置的主机名即可,例如将localhost.localdomain替换成node50

错误纠正:这里一定要将主机名设置为xxx.xxx的网络主机名形式,如 node50.localdomain,因为不正确的网络主机名会导致sendmail在发送邮件的时候出现错误,甚至无法启动。

2.修改文件 /etc/hosts

找到127.0.0.1 localhost.localdomain localhost,最前面的127.0.0.1为本地回环地址,不需要更改;localhost.localdomain修改为你要设置的主机名,必须跟之前network文件内的一样;最后面的localhost为主机别名,即控制台提示符前的名称。

错误纠正:这里一定要将主机名设置为xxx.xxx的网络主机名形式,如 node50.localdimain

具体原因同上。

3.执行 reboot 命令重新启动系统。

FreeBSD ports 软件使用说明

下载整个ports目录,#portsnap fetch extract

更新整个ports目录,#portsnap fetch update

1.怎样找到我想安装的包路径:
# cd /usr/ports
# make search name=mysql (查找名为mysql的安装包)
2.仅仅下载源码包,而不安装:
# cd /usr/ports/directory (进入你想安装软件的目录下)
# make fetch
3.预先知道需要那些包,才能安装这个软件:
# cd /usr/ports/directory (进入你想安装软件的目录下)
# make all-depends-list

4.把软件装到指定的目录:
# cd /usr/ports/directory
# make PREFIX=/usr install
5.仅仅下载包,解包,而不安装:
# cd /usr/ports/directory
# make extract
6.用PORTS制作一个定制二进制包:
# cd /usr/ports/somewhere/frobble
# make extract
# cd work/frobble-2.8
[Apply your patches]
# cd ../..
# make package
7.强制安装:
# make install FORCE_PKG_REGISTER=yes clean
8.初始化一个port
# cd /usr/ports/directory
# make rmconfig
# make config

新手必杀技ports命令
cd /usr/ports
make deinstall #要是你没装cvsup,那就去装cd /usr/ports/net/cvsup-without-gui/ && make install
cd /usr/ports/sysutils/portupgrade
make install
#安装这个软件是新手省事而又带来新麻烦的好东西,尽管会带来一些新麻烦,但是还是推荐毕竟麻烦数量少了很多

9.显示已经安装的软件包

#pkg_info

10.如何删除一个软件包

#pkg-delete -r 软件包详细名

11、删除已安装软件及其他的依赖包

#make deinstall-depends

#make clean

12.重新安装已安装ports软件包
#make reinstall

13.想查看安装的软件是不是最新的

#pkg_version -v

Centos绑定多个IP的方法及批量绑定IP的方法

租用美国服务器的客户如果选择linux类的操作系统,一般都会选择性能比较稳定的centos做为首选,而美国服务器一般都会提供多于1个以上的IP地址,那么centos下如何绑定IP呢?如果有很多IP需要绑定,那么centos下如何批量绑定IP呢?

Centos 绑定单个IP
单个IP或者不连续IP的绑定
依次运行命令:
cd /etc/sysconfig/network-scripts
cp  ifcfg-eth0 ifcfg-eth0:0
vi  ifcfg-eth0:0
打开文件后如下。

注意:每增加一个IP创建一个文件,如第二个为:cp  ifcfg-eth0 ifcfg-eth0:1
========================分割线================================
# Broadcom Corporation NetXtreme BCM5715 Gigabit Ethernet
DEVICE=eth0:0      #此处添加:0,保持和文件名一致,添加多个IP依次递增
BOOTPROTO=static
DHCPCLASS=
HWADDR=00:40:D0:xx:xx:xx   #此处为网卡MAC地址切勿修改
IPADDR=85.25.xxx.xxx                  #此处修改为要添加的IP
NETMASK=255.255.255.128
ONBOOT=yes

=========================分割线===============================
保存退出  (保存退出简洁命令: 摁ESC键 然后摁大写键 然后摁 ZZ)
然后重启网络让IP生效: service network restart

批量绑定连续的IP

在/etc/sysconfig/network-scripts下创建一个range文件
比如,vi /etc/sysconfig/network-scripts/ifcfg-eth0-range0
加入以下内容:
====================================

DEVICE=eth0
BOOTPROTO=static
#网卡地址要和原始的一致
HWADDR=00:40:D0:xx:xx:xx    #Mac地址
IPADDR_START=xx.xx.xx.xx     #起始IP
IPADDR_END=xx.xx.xx.xx       #结束IP
CLONENUM_START=1
NETMASK=255.255.255.248  #子网掩码
ONBOOT=yes
TYPE=Ethernet

====================================
CLONENUM_START — 网络克隆接口的启始号. # eg “1″  生成的网络接口会从 eth0:1开始。
然后重启网络让IP生效: service network restart

这样就完成了centos下批量绑定IP的任务。

CentOS 6 计划于5月发布

根据 CentOS 官方的日程计划来看,CentOS 6 很有可能会在本月发布。CentOS 6 上游的 RHEL 6 发布也快有半年的时间了,CentOS 6 还迟迟没有来到,按时间来看它是应该和大家见面了。RHEL 6 带来的新特性也将出现在 CentOS 6 中,因此它承载着大家太多太多的希望。

CentOS 是 RHEL(Red Hat Enterprise Linux)去掉 Red Hat 版权信息后的源代码再编译的产物,它继承了 Red Hat Enterprise Linux 的安全性、稳定性,而且又提供免费更新。这因为如此,它几乎是在IDC中是首选的 Linux 发行版,在IDC中装机量也非常大。下图为 CentOS 官方关于 CentOS 6 开发计划的简要日程表:

如果 CentOS 6 的开发计划按照现在的表来进行的话,我们在本月就能用上 CentOS 6,当然跳票也是有可能的,我们现在除了期待还能干什么呢?那就期待吧!

 

CentOS 5.5 yum源修改

在CentOS系统中,yum是个好东东,几乎大部分流行的组件都可以直接通过yum来安装,但系统默认的yum源速度往往不尽人意,而fastest mirror插件,有时候用起来并不是很适用,为了达到快递安装的目的,我们需要修改默认的yum源

中科大的Centos 开源镜像站点. http://centos.ustc.edu.cn/

执行以下命令就可以了

cd /etc/yum.repos.d

mv CentOS-Base.repo CentOS-Base.repo.bak

wget http://centos.ustc.edu.cn/CentOS-Base.repo.5

mv CentOS-Base.repo.5 CentOS-Base.repo

cat CentOS-Base.repo

[base]
name=CentOS-$releasever – Base
baseurl=http://centos.ustc.edu.cn/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5

#released updates
[updates]
name=CentOS-$releasever – Updates
baseurl=http://centos.ustc.edu.cn/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever – Addons
baseurl=http://centos.ustc.edu.cn/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5

#additional packages that may be useful
[extras]
name=CentOS-$releasever – Extras
baseurl=http://centos.ustc.edu.cn/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever – Plus
baseurl=http://centos.ustc.edu.cn/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5

也可以使用,http://mirrors.163.com/ http://mirrors.sohu.com,电信用户使用163的镜像速度会比较快。

在Centos里安装小小输入法

感觉centos系统里的自代的scim输入法不太适合自己的操作习惯,所以决定改换输入法,选择有fcitx 和小小输入法。

这次决定试一下小小输入法,首先去yongim.ys168.com里下载安装包,我采用的是rpm格式的,因为我用的系统是centos 。

作者发布的安装方法:
如果是redhat系列的,则建议下载rpm包。
安装使用命令:
rpm -ivh yong-1.0.0-1.rpm
如果是其他的版本,下载7z包。先把7z包解压到你要的安装目录(7z解压工具在Linux下是p7zip),
然后根据你所使用的发行版配置环境变量,主要有:
XMODIFIERS=”@im=yong”
GTK_IM_MODULE=xim
QT_IM_MODULE=xim
把输入法设为自启动,启动命令是
yong -d
另外,安装目录下有个yong-tool.sh的工具,使用该工具可以简单的进行设置。
现在支持的有:
redhat,fedora,centos,debian,ubuntu,suse
使用方法:
安装:
进安装目录,执行命令
sudo ./yong-tool.sh –install
卸载:
sudo ./yong-tool.sh –uninstall
选择作为默认输入法:
./yong-tool.sh –select
运气好的话,注销重新进入系统就能用了。

首先采用作者的办法,在安装前利用yum remove scim命令把scim全部卸载,安装小小。
根据以前的经验我查看了一下 /etc/x11/xinit/xinput.d/文件夹下有了yong.conf文件
里面的内容是要配置的环境变量,重启电脑后,小小输入法并没有自动启动
在终端里手动启动后,右下角有图标,但是不能输入任何汉字
查找原因,修改了.bashrc文件添加了:
export LC_CTYPE=”zh_CN”
export XMODIFIERS=”@im=yong”
保存后还不行,
我又查看了/etc/x11/xinit/xinput.d/文件夹下的文件
有三个文件: yong.conf none.conf xim.conf
三个文件里 none.conf文件里没有参数, 想了想windows的配置输入法情况,
采用GUI界面来看看系统默认的输入法是什么,
采用 系统–首选项–更多首选项–输入法 打开输入法配置界面
使用系统范围的配置里显示是空的
原因在这儿,
使用自定义输入法 选中yong 保存
重启机器小小输入法可以使用。

New Openvpn Router

重新买了一个wrt54gs,因为buffalo的wbr2-g54s坏了,本来我以为是电源坏掉,拿去万用表测了下电压和电流都是很正常的数值,只能怀疑是板子烧了,未作深究,拆开看了下,也没有看到哪个地方烧糊了。考虑到DDWRT很大程度上是基于wrt54g系列设计的,使用Openvpn也不会有问题。

如果你有一枚3G上网卡,又有一只3G路由器,恰好你还有一张若干年前的中国移不动WAP包月卡,而且你还有一个运行在公网上,端口在443的Openvpn服务器,嗯,你知道我要做什么。

将3G上网卡插上3G路由器,使用3G路由器拨CMWAP,然后将3G路由器的LAN口插上网线,另一头插进wrt54gs的internet口,不好意思它没有WAN口,然后在wrt54gs上拨Openvpn,相当不幸的是,DDWRT固件中的Openvpn没有代理服务器的设置,所以我们需要自定义配置文件,但是呢,并不是说DDWRTOpenvpnclient的设置界面是毫无用处的,你需要在那个界面中把ca.crt,client.crt和client.key的内容输入进去,根据官方文档所述,可以将自定义的配置加入startup-scripts,不过经过我的测试,从来没有成功过,但通过telnet终端界面,是可以运行的,很显然,下面这个配置,看得懂的自然就看得懂,看不懂的解释了也看不懂,所以我就不解释太多,第一句解释下,DDWRT每次重启会丢失时间,因为大家知道嘛,网络设备的时间是通过ntp获取的,不正确的系统时间会导致证书验证错误而致无法正确连接,也就是我之前提及的数字证书问题。

date 041220302011
killall openvpn
echo “client
dev tun
proto tcp
remote 202.202.0.188 443
http-proxy 10.0.0.172 80
http-proxy-timeout 30
http-proxy-retry
http-proxy-option AGENT “NokiaN90-1/3.0545.5.1 Series60/2.8 Profile/MIDP-2.0 Configuration/CLDC-1.1″
resolv-retry infinite
nobind
persist-key
persist-tun
ca /tmp/openvpncl/ca.crt
cert /tmp/openvpncl/client.crt
key /tmp/openvpncl/client.key
ns-cert-type server
comp-lzo
verb 3
redirect-gateway def1″ > /tmp/openvpncl/openvpn.conf
killall openvpn
openvpn –config /tmp/openvpncl/openvpn.conf –route-up /tmp/openvpncl/route-up.sh –down /tmp/openvpncl/route-down.sh &

连接的速度一般,不是很快,看看网页聊聊扣扣,看个电影要先缓冲一个小时,但这里是北京市二环,附近就是大唐电信,可见中国移不动的TD-SCDMA实在是不过如此。