之前一直是使用 ubuntu 来安装 thumbor 服务, 非常简单,可是最近要在一台 centos6.5 上部署这个服务,还是遇到一些问题,这里介绍一下流程。

升级 python2.6 to python 2.7

centos6.5 默认的 python 是 2.6 的, 首先需要升级一下 python

yum -y update
yum install centos-release-SCL 
yum install python27

为 shell 环境设定默认的 python, 我这里的 shell 环境是 zsh 如果你的是 bash 需要将 zsh 改成 bash。

scl enable python27 zsh

安装 pip

wget https://bootstrap.pypa.io/get-pip.py
sudo python27 get-pip.py

安装基础类库

在安装 thumbor 之前, 需要安装以下类库,否则会报错:

yum install python-pycurl python-devel libcurl-devel

安装 thumbor

pip install thumbor

配置 thumbor

LOADER = 'thumbor.loaders.file_loader'
STORAGE = 'thumbor.storages.file_storage'

FILE_LOADER_ROOT_PATH = '/data/www/cwzg.cn/upoload'
FILE_STORAGE_ROOT_PATH = '/data/thumbor/storage'

运行 thumbor 服务

thumbor -p 8888 -c /etc/thumbor/thumbor.conf

好了,到此为止,安装已经完成,如果需要开启多进程,还需要安装 supervisord 这里就不做赘述了。

安装依赖

apt-get install tcl make

下载安装

去 redis.io 最新版本的 redis 版本进行下载.

cd /usr/local/src
wget http://download.redis.io/releases/redis-3.2.2.tar.gz
tar -zxvf redis-3.2.2.tar.gz
cd redis-3.2.2/src
make
make test
make install

设置目录

将四个可执行文件redis-server、redis-benchmark、redis-cli和redis.conf 分别拷贝到/usr/redis下,和/etc下

mkdir -p /usr/redis/
cd /usr/local/src/redis-3.2.2/src
cp redis-server  /usr/redis
cp redis-benchmark /usr/redis
cp redis-cli  /usr/redis
cd ../
cp redis.conf  /etc

设置 service 脚本

touch /etc/init.d/redis
chmod u+x /etc/init.d/redis
vi init.d/redis

// cp content into it

#!/bin/bash
# chkconfig: 2345 10 90
# description: Start and Stop redis

REDISPORT=6379 
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
EXEC=/usr/redis/redis-server 
REDIS_CLI=/usr/redis/redis-cli 
 
PIDFILE=/var/run/redis.pid
CONF="/usr/redis/redis.conf" #ʵ¼ʻ·¾³¶ø
case "$1" in
        start)
                if [ -f $PIDFILE ]
                then
                        echo "$PIDFILE exists, process is already running or crashed."
                else
                        echo "Starting Redis server..."
                        $EXEC $CONF
                fi
                if [ "$?"="0" ]
                then
                        echo "Redis is running..."
                fi
                ;;
        stop)
                if [ ! -f $PIDFILE ]
                then
                        echo "$PIDFILE exists, process is not running."
                else
                        PID=$(cat $PIDFILE)
                        echo "Stopping..."
                        $REDIS_CLI -p $REDISPORT SHUTDOWN
                        while [ -x $PIDFILE ]
                        do
                                echo "Waiting for Redis to shutdown..."
                                sleep 1
                        done
                        echo "Redis stopped"
                fi
                ;;
        restart|force-reload)
                ${0} stop
                ${0} start
                ;;
        *)
                echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
                exit 1
esac
sysv-rc-conf redis on

取消warning

修改 sysctl.conf

echo 511 > /proc/sys/net/core/somaxconn
echo vm.overcommit_memory = 1 >> /etc/sysctl.conf
/sbin/sysctl -e -p /etc/sysctl.conf

设置文件打开数目

vi  /lib/systemd/system/redis-server.service

在 [serveice] 组中增加

LimitNOFILE=65536

然后,运行:

systemctl daemon-reload
systemctl restart redis-server
systemctl enable redis-server

配置 redis

vi /etc/redis.conf

daemonize yes
requirepass foobar
bind 127.0.0.1
unixsocket /tmp/redis.sock
dir /data/redis/
pidfile /var/run/redis.pid

iptables

// 根据情况开放 iptables 端口

iptables -p tcp -m tcp --dport 6379 -j ACCEPT

resource

原理非常简单:

在本地生成公钥私钥

ssh-keygen

输入命令后,一路回车,即可。

将本地的公钥传到服务器上

ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host

会提示你输入密码,成功之后,会帮助你把公钥放在服务器上,供登录使用。

把本地的私钥转为 pem 格式,供windows上的 ssh 客户端使用

openssl rsa -in ~/.ssh/id_rsa -outform pem > id_rsa.pem
chmod 700 id_rsa.pem

这样就导出了pem格式的私钥,因为公钥已经在服务器了,所以只要服务器上的公钥不删除,用这把私钥就能登录服务器,一般来说,经过这样设置之后,可以把ssh 密码登录的方式禁用掉,使得服务器更加安全。

关闭 ssh 密码登录

vi /etc/ssh/sshd_config

修改

PasswordAuthentication no

重启 ssh 服务

service sshd restart

over!

今天在安装 letsEncrypt 的过程中,遇到一个错误:

Err http://ppa.launchpad.net trusty/main amd64 Packages
404 Not Found
Err http://ppa.launchpad.net trusty/main i386 Packages
404 Not Found
W: Failed to fetch http://ppa.launchpad.net/ondrej/php5-5.6/ubuntu/dists/trusty/main/binary-amd64/Packages 404 Not Found

W: Failed to fetch http://ppa.launchpad.net/ondrej/php5-5.6/ubuntu/dists/trusty/main/binary-i386/Packages 404 Not Found

主要原因是由于 php 的安装资源废弃导致的。 因此需要把 php5 ppa 的设置从 apt 设置中删除,按照如下操作:

1. 安装 PPA-Purge

apt-get install -y ppa-purge

2. 删除 php 5.6 repository

ppa-purge ppa:ondrej/php5-5.6

3. 更新软件

apt-get updage && apt-get upgrade