在CentOS环境为PHP安装Memcached扩展

首先,安装PHP的Memcached扩展前,要先安装其所依赖的libmemcached,方法如下:

# wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
# tar zxvf ./libmemcached-1.0.18.tar.gz
# cd libmemcached-1.0.18
# ./configure --prefix=/usr/local
# make
# make install

 

libmemcached安装完毕后,就可以开始安装Memcached扩展了,方法如下:

# wget https://pecl.php.net/get/memcached-2.2.0.tgz
# tar zxvf ./memcached-2.2.0.tgz
# cd memcached-2.2.0

 

解压缩后,我们需要先修改一下php_libmemcached_compat.h文件
将#include 的路径修改成#include </usr/local/include/libmemcached/memcached.h>然后再继续编译安装

# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config --disable-memcached-sasl
# make
# make install

 

最后,还要修改php.ini文件,加入extension=memcached.so并重启php-fpm即可。

阳光部落原创,更多内容请访问http://www.sunbloger.com/

在CentOS 5.x中部署LVS-DR模式

LVS是Linux Virtual Server的简写,即Linux虚拟服务器,是一个虚拟的服务器集群系统。

在下面的案例中,我们用了3台主机,IP地址分别为:

192.168.1.100
192.168.1.101
192.168.1.102

其中,192.168.1.100将安装LVS做为负载均衡器来分发请求,另外2台做为真实提供服务的主机,以DR模式进行部署。

首先,我们应先在192.168.1.101和192.168.1.102上部署好Apache或是Nginx,还有PHP,这里就不详细说明了,可以参考本站的《Nginx + PHP(FastCGI)安装配置笔记》(http://www.sunbloger.com/article/242.html)。

为了便于测试,我们在192.168.1.101上放置一个test.php,代码如下:

<?php
echo '101';
?>

并在192.168.1.102上也放置一个同名文件test.php,代码如下:

<?php
echo '102';
?>

分别通过浏览器访问http://192.168.1.101:80/test.php和http://192.168.1.102:80/test.php,正常的话会分别显示101和102。

接下来,我们分别在192.168.1.101和192.168.1.102上添加用于LVS的脚本,我们可以将脚本添加到/etc/rc.d/init.d下,作为系统服务随Linux一起启动,方法如下:

vi /etc/rc.d/init.d/lvs-rs //创建名为lvs-rs的脚本
chmod +x /etc/rc.d/init.d/lvs-rs //添加执行权限
chkconfig --add lvs-rs //加入到系统服务中

lvs-dr脚本代码如下:

#!/bin/bash
# chkconfig: 35 90 10
# description: LVS of RealServer

VIP=192.168.1.100

. /etc/init.d/functions

case "$1" in
start)
    ifconfig lo:0 $VIP netmask 255.255.255.255
    /sbin/route add -host $VIP dev lo:0
    echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
    echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
    echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
    echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
    sysctl -p >/dev/null 2>&1
    echo "LVS of RealServer Start."
    ;;
stop)
    ifconfig lo:0 down
    route del $VIP >/dev/null 2>&1
    echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
    echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
    echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
    echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
    echo "LVS of RealServer Stoped."
    ;; 
*) 
    echo "Usage: $0 {start|stop}"
    exit 1
esac
exit 0

 

接下来,我们开始为192.168.1.100安装LVS。

yum install ipvsadm

在CentOS下推荐采用yum安装,可以避免内核版本对LVS的影响。

ipvsadm安装完毕后,我们为192.168.1.100添加一个名为lvs-ds的服务启停脚本,代码如下:

#!/bin/bash
# chkconfig: 35 90 10
# description: LVS of DirectorServer

VIP=192.168.1.100
RIP1=192.168.1.101
RIP2=192.168.1.102

. /etc/init.d/functions

case "$1" in
start)
    /sbin/ipvsadm -A -t $VIP:80 -s wlc
    /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g -w 1
    /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g -w 1
    touch /var/lock/subsys/ipvsadm >/dev/null 2>&1
    echo "LVS of DirectorServer start."
    ;;
stop)
    /sbin/ipvsadm -C
    rm -rf /var/lock/subsys/ipvsadm >/dev/null 2>&1
    echo "LVS of DirectorServer stoped."
    ;;
status)
    if [ ! -e /var/lock/subsys/ipvsadm ];then
        echo "LVS of DirectorServer stoped."
        exit 1
    else
        echo "LVS of DirectorServer OK."
    fi
    ;;
*)
   echo "Usage: $0 {start|stop|status}"
   exit 1
esac
   exit 0

将lvs-ds添加到系统服务中:

vi /etc/rc.d/init.d/lvs-ds //创建名为lvs-rs的脚本
chmod +x /etc/rc.d/init.d/lvs-ds //添加执行权限
chkconfig --add lvs-ds //加入到系统服务中

至此,3台主机部署完毕,开始测试

首先在192.168.1.101和192.168.1.102上分别启动lvs-rs

service lvs-rs start

然后在192.168.1.100上启动lvs-ds

service lvs-ds start

通过http://192.168.1.100:80/test.php来测试LVS工作是否正常,反复刷新页面会看到随机显示101或102就代码部署成功了。

阳光部落原创,更多内容请访问 http://www.sunbloger.com/

升级CentOS的OpenSSH 搭建SFTP Server

SFTP是 Secure File Transfer Protocol 的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。

OpenSSH 4.8p1以上的版本才支持SFTP所需的chroot等指令,我的CentOS 5.X服务器的OpenSSH版本过低,需要先对OpenSSH升级。

提示:在升级OpenSSH前,为防止意外出现,我临时开启了telnet,通过telnet连接到服务器后再进行操作(升级完记得关闭telnet)。

service sshd stop #关闭sshd
mv /etc/ssh/sshd_config /etc/ssh/sshd_config_bak #将原有的设置文件改名
wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-4.9p1.tar.gz
tar zxvf openssh-4.9p1.tar.gz
cd openssh-4.9p1
./configure --prefix=/usr --sysconfdir=/etc/ssh
make
make install

 

如果上面的过程很顺利的话,下面这行命令应该可以正常启动sshd

service sshd start

 

接下来配置sshd_config,设置SFTP的用户和目录

#Subsystem      sftp    /usr/libexec/sftp-server
Subsystem       sftp    internal-sftp

Match User xxxxxx
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /var/htdocs

上面设置中“xxxxxx”替换为你系统中专门用于SFTP的用户名即可,这里我用的是User,也可以用Group来指定一个用户组。

设置好后重启sshd即可。

在Linux/CentOS中编译安装Python

心血来潮,想学习一下Python,听说用来做爬虫还不错。先从运行环境开始入手,CentOS中已经内置了Python,但版本似乎比较老,通过python -V命令看到版本是2.4.3。目前Python 2.x的最新版本号是2.7.8,那么就开始动手升级一下。

首先,下载源码包,命令如下:

wget --no-check-certificate https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz

这里需要特别注意一下,因为下载网址是https开头的,所以要给wget命令加上–no-check-certificate参数。

下载好源码包后,解压:

tar -zxvf ./Python-2.7.8.tgz

解压出Python-2.7.8这个目录后,我们开始对源码进行编译:

cd Python-2.7.8
./configure --prefix=/usr/local/python
make
make install

编译安装完成后,要替换掉系统自带的Python,但CentOS的yum依赖于Python工作,为了保证yum的正常运行,我们要在替换前,先将自带的Python更名备份,方法如下:

mv /usr/bin/python /usr/bin/python-2.4.3
ln -s /usr/local/python/bin/python /usr/bin/python

上面两行命令执行完后,可以分别用“python -V”和“/usr/bin/python-2.4.3 -V”来验证部署是否成功,正确的结果应该是2.7.8和2.4.3。

最后,要修改yum,让其运行指向旧的版本:

vi /usr/bin/yum

将第一行中的“#!/usr/bin/python”修改为“#!/usr/bin/python-2.4.3”,保存即可。

 

阳光部落原创,更多内容请访问http://www.sunbloger.com/

CentOS 7.0正式发布 新特性汇总

7月8日消息,基于Red Hat红帽免费公开的源代码的CentOS 7最新版正式发布,其基于企业级的Linux发行版本,是目前最受欢迎的Linux系统之一。

CentOS 7首个正式版的版本号为7.0.1406,主要更新内容如下:

— 内核更新至 3.10.0
— 支持 Linux 容器
— Open VMware Tools 及 3D 图像能即装即用
— OpenJDK-7作为缺省 JDK
— 原地升级 6.5 至 7.0
— ext4 及 XFS 的 LVM 快照
— 转用 systemd、firewalld 及GRUB2
— XFS 作为缺省文件系统
— 内核空间内的 iSCSI及FCoE
— 支持PTPv2
— 支持40G乙太网络卡

CentOS官方已经放出CentOS7.0.140 64位的版本下载地址,一如每个主要版本的首个发行本,多数组件都已作出改动及更新至较新版本。最重大的改动有包括内核更新至3.10.0、支持Linux 容器、Open VMware Tools 及 3D 图像能即装即用等。
下载地址:www.centos.org。

在Godaddy购买VPS心得

由于无法继续忍受和千军万马共挤虚拟主机。近日,我为阳光部落(http://www.sunbloger.com/)从Godaddy(http://www.godaddy.com/)上购买了VPS主机,下面是我在购买和使用中的一些感受和心得。

在Godaddy主页的All Products菜单中,选择Hosting & Servers,再在弹出的菜单中选择VPS项目,就可以进入VPS主机的选购页面了,后面的购买和付款流程与买虚拟主机没有区别,就不详细说了。但需要注意的是机房会被默认到Godaddy新加坡数据中心,从这几年的经验来看,新加坡机房的效果不如美国本土好。

vps01

目前Godaddy的VPS提供三种操作系统供用户选择,分别是CentOS、Fedora和Windows,对于服务器来说,特别是打算用Linux作为服务器操作系统时,CentOS是最好的选择。

vps02

购买后的VPS需要在Godaddy上开通,在开通过程中需要提供一个账号和密码,用于通过SSH登录到服务器上。但Godaddy的VPS不支持直接root登录,需要以预先设置的账号登录后,再su切换到root。

我购买的CentOS系统的VPS十分精简,如果喜欢自己编译安装的方式去部署一些软件,经常会遇到提示缺少某某组件,直接通过yum安装所需组件即可。

在我安装并启动Nginx时,提示我80端口已被占用,用netstat –tulpn命令查询后发现VPS中已经安装有httpd,占用了80端口。停掉httpd,再次启动Nginx,一切正常了!

基于 RHEL 的 CentOS 6.4 发布

CentOS Logo

CentOS(Community ENTerprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。

CentOS 6.4 功能改进:

  • 支持Parallel NFS (pNFS)
  • 增强了Vmware和Hyper-V的虚拟机支持及性能
  • 增强了身份管理
  • 支持cgroups及PMU
  • 更多的新工具等

软件包的变化:

  • 增加了Haproxy
  • 引入Samba4作为技术预览
  • 增加了 Keepalived(无需在EPEL里找了)
  • SystemTap升级到1.8
  • 增加了lscpu和chcpu用于CPU操作
  • 增加了SciPy
  • 增加了libjpeg-turbo、redhat-lsb-core,并升级了createrepo等

官方网址:http://www.centos.org/

开源社区九大最不想承认的事实

你可能认为,一群聪明人不会有什么忌讳藏着掖着,比如像自由和开源软件(FOSS)社区的成员。你还可能觉得,这样一群知识分子不会觉得什么想法是禁止讨论的或让人不舒服的;但要是你果真这么想,那就大错特错了。

与任何亚文化一样,FOSS也是由共同的信念维系在一起。共同的信念有助于形成一种共同的归属感,这意味着对这些信念提出质疑,无异于对这个归属感提出质疑。

其中一些忌讳话题可能会颠覆20年或更长时间以来秉承的公理。另一些忌讳话题则是新的,质疑公认的真理。不过,尽管细细打量忌讳可能让人不舒服,但 这么做往往是必要的。许多信念已不再适用,或者已经沦为半真半假的话之后,还流行很长一段时间。有时考虑一下无法想象的事情大有意义,只有这样才能让信念 重新接受现实的考验。

基于这个道理,我列出了个人针对当下开源社区的九点看法;至于这些看法正确与否,有待各位评论。

阅读更多

开源的企业级Linux:CentOS 5.8发布

CentOS 是一个免费、开源的企业级 Linux 发行版本,根据Red Hat Enterprise Linux(RHEL)依照开放源代码规定释出的源代码所编译而成,由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。

CentOS 5.8中包含了很多错误修正、升级和新功能。其中新增的一些组件包括:

阅读更多

Nginx + PHP(FastCGI)安装配置笔记

这是站长在2011年时一次安装服务器时所记录的Nginx和PHP的安装笔记。安装过程记录的比较简略,仅仅是一个大致的流程,一些细节描述的不够详细,请多多谅解,我会在日后重新整理一份详细的安装过程,本文仅供参考!

软件环境:CentOS 5.7 + PHP 5.2.17 + Nginx 0.8.55

阅读更多