搜索词>>yum源 耗时0.0030
  • centos5/6/7修改国内阿里云的yum安装源

    centos5/6/7修改国内阿里云的yum安装源1.备份 <pre> <code class="language-bash">mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup</code></pre> 2.centos5 <pre> <code class="language-bash">wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo #或者 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo</code></pre> <br /> centos6 <pre> <code class="language-bash">wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo #或者 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo</code></pre> <br /> centos7 <pre> <code class="language-bash">wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #或者 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo</code></pre>  
  • centos6 redis3.29 安装(yum和源码安装)完整步骤以及常用配置

    centos6 yum安装redis3.29,centos6 源码安装redis以及常用配置<h2>一、 <span style="font-family:宋体">检查</span>yum<span style="font-family:宋体">可以安装的版本</span></h2> <h3>1.1<span style="font-family:宋体">查看当前系统可以安装的</span>redis<span style="font-family:宋体">版本</span></h3> <p><span style="font-family:宋体">命令</span>:</p> <p><strong>[root@localhost ~]# yum list|grep redis</strong></p> <p>[root@localhost ~]#</p> <p> </p> <p><span style="font-family:宋体">发现没有可以安装的</span>,<span style="font-family:宋体">如果有则忽略下面的步骤</span></p> <h3>1.2<span style="font-family:宋体">安装</span>centos<span style="font-family:宋体">提供的</span>epel-release<span style="font-family:宋体">源</span></h3> <p><span style="font-family:宋体">命令</span>:</p> <pre> <code class="language-java">[root@localhost ~]# yum install epel-release</code></pre> <p><img alt="1" class="img-thumbnail" src="/assist/images/blog/a4ba199bfd204d84bbdd4bac341c08aa.png" /></p> <p><span style="font-family:宋体">安装好以后再次查看可以安装的</span>redis<span style="font-family:宋体">版本</span></p> <p><span style="font-family:宋体">命令</span>:</p> <pre> <code class="language-java">[root@localhost ~]# yum list|grep redis php-nrk-Predis.noarch                       0.8.6-1.el6                  epel   php-pecl-redis.x86_64                       2.2.8-1.el6                  epel   php-redis.x86_64                            2.2.2-5.git6f7087f.el6       epel   python-redis.noarch                         2.0.0-1.el6                  epel   redis.x86_64                                2.4.10-1.el6                 epel   uwsgi-logger-redis.x86_64                   2.0.15-1.el6                 epel   uwsgi-router-redis.x86_64                   2.0.15-1.el6                 epel   [root@localhost ~]#</code></pre> <p><span style="font-family:宋体">现在有了可以安装的版本了。但是版本还是太低是</span>2.4<span style="font-family:宋体">的版本。</span></p> <p><span style="font-family:宋体">结论</span>:CentOS6<span style="font-family:宋体">不能直接通过</span>yum<span style="font-family:宋体">安装</span>redis3.X<span style="font-family:宋体">版本。需要源码安装</span>,centos7<span style="font-family:宋体">则可以。具体安装方式可根据使用的系统版本来抉择。</span></p> <p> </p> <h2 style="margin-left:36.0pt">二、 <span style="font-family:宋体">获取</span>redis<span style="font-family:宋体">安装资源以及环境</span></h2> <h3>2.1<span style="font-family:宋体">下载</span>redis<span style="font-family:宋体">的安装文件包</span></h3> <p><span style="font-family:宋体">官网地址</span>: <a href="https://redis.io/download" rel="external nofollow" target="_blank">https://redis.io/download</a></p> <p>Redis 3.2.9<span style="font-family:宋体">下载地址</span>: <a href="http://download.redis.io/releases/redis-3.2.9.tar.gz" rel="external nofollow" target="_blank">http://download.redis.io/releases/redis-3.2.9.tar.gz</a></p> <p> </p> <p><span style="font-family:宋体">直接下载命令</span>:</p> <pre> <code class="language-java">[root@localhost ~]# wget http://download.redis.io/releases/redis-3.2.9.tar.gz</code></pre> <p><span style="font-family:宋体">下载完成后在当前目录会有</span>redis-3.2.9.tar.gz<span style="font-family:宋体">包</span></p> <p><img alt="2" class="img-thumbnail" src="/assist/images/blog/72c50fea69174343b711b862b7c7a1d2.png" /></p> <p> </p> <h3>2.2<span style="font-family:宋体">检查</span>gcc<span style="font-family:宋体">环境</span></h3> <p><span style="font-family:宋体">检查系统中是否有</span>gcc<span style="font-family:宋体">编译器</span>,<span style="font-family:宋体">因为源码安装需要使用</span>gcc<span style="font-family:宋体">编译</span></p> <p><span style="font-family:宋体">命令</span>:</p> <pre> <code class="language-java">[root@localhost ~]# rpm -qa|grep gcc gcc-4.4.7-4.el6.x86_64 libgcc-4.4.7-4.el6.x86_64 [root@localhost ~]#</code></pre> <p><span style="font-family:宋体">上面的命令执行结果标识系统已经安装有</span>gcc<span style="font-family:宋体">编译器</span>,<span style="font-family:宋体">如果没有则执行下面的命令</span>,<span style="font-family:宋体">有则忽略下面步骤</span></p> <p><span style="font-family:宋体">安装</span>GCC<span style="font-family:宋体">命令</span></p> <pre> <code>[root@localhost ~]# yum install –y gcc</code></pre> <p> </p> <h2><span style="font-family:宋体">三、安装</span>redis</h2> <h3>3.1<span style="font-family:宋体">创建</span>redis<span style="font-family:宋体">安装目录</span></h3> <p><span style="font-family:宋体">命令</span>:</p> <pre> <code class="language-java">[root@localhost ~]# mkdir -p /usr/local/redis-3.2.9 [root@localhost ~]#</code></pre> <h3>3.2<span style="font-family:宋体">解压下载的</span>redis<span style="font-family:宋体">安装文件</span></h3> <p><span style="font-family:宋体">命令</span>:</p> <pre> <code class="language-java">[root@localhost ~]# tar -xzvf redis-3.2.9.tar.gz</code></pre> <h3>3.3<span style="font-family:宋体">指定安装目录安装</span>redis</h3> <p><span style="font-family:宋体">首先进入解压后的</span>redis<span style="font-family:宋体">目录</span></p> <p><span style="font-family:宋体">命令</span>:</p> <pre> <code class="language-java">[root@localhost ~]# cd redis-3.2.9 [root@localhost redis-3.2.9]#</code></pre> <p><span style="font-family:宋体">指定目录安装</span>redis</p> <p><span style="font-family:宋体">命令</span>:</p> <pre> <code class="language-java">[root@localhost redis-3.2.9]#make PREFIX=/usr/local/redis-3.2.9 install</code></pre> <p><img alt="3" class="img-thumbnail" src="/assist/images/blog/dc50ab10f63249c8ad7ae52bd5a5137d.png" /></p> <h3>3.4<span style="font-family:宋体">创建一个软连接方便访问寻找</span></h3> <p><span style="font-family:宋体">命令</span>:</p> <pre> <code class="language-java">ln -s /usr/local/redis-3.2.9 /usr/local/redis</code></pre> <p> </p> <h2><span style="font-family:宋体">四、配置</span>redis</h2> <h3>4.1<span style="font-family:宋体">添加配置文件到</span>/etc<span style="font-family:宋体">目录</span></h3> <p><span style="font-family:宋体">默认的</span>redis<span style="font-family:宋体">配置文件还在刚才解压的文件目录中</span>,<span style="font-family:宋体">在</span>Linux<span style="font-family:宋体">系统使用中,通常把配置的文件放在</span>/etc<span style="font-family:宋体">目录下。算一个规范。</span></p> <p> </p> <p><span style="font-family:宋体">将源码目录下的</span>redis<span style="font-family:宋体">配置文件添加一份到</span>/etc<span style="font-family:宋体">目录下</span></p> <p><span style="font-family:宋体">命令</span>:</p> <pre> <code class="language-java">[root@localhost redis-3.2.9]# pwd /root/redis-3.2.9 [root@localhost redis-3.2.9]# ll redis.conf -rw-rw-r--. 1 root root 46695 May 17 08:39 redis.conf [root@localhost redis-3.2.9]# cp redis.conf /etc/redis.conf</code></pre> <h3>4.2.<span style="font-family:宋体">修改</span>redis<span style="font-family:宋体">默认以后台进程方式启动</span></h3> <p><span style="font-family:宋体">编辑</span>/etc/redis.conf<span style="font-family:宋体">配置</span>redis<span style="font-family:宋体">以后台方式启动</span></p> <pre> <code class="language-java">[root@localhost redis-3.2.9]# vi /etc/redis.conf</code></pre> <p><img alt="4" class="img-thumbnail" src="/assist/images/blog/a9e3c8b8406a45f58c4eee2f385a35e4.png" /></p> <p><span style="font-family:宋体">在文件中找到</span>daemonize<span style="font-family:宋体">配置</span>,<span style="font-family:宋体">默认是</span>no,<span style="font-family:宋体">修改成</span>yes</p> <p><img alt="5" class="img-thumbnail" src="/assist/images/blog/f498bccd0e494038a896ce370945ced0.png" /></p> <p><span style="color:#e74c3c"><strong><span style="font-family:宋体">提示</span>:</strong><em><span style="font-family:宋体">配置文件配置项后面不要有空格</span></em></span></p> <p> </p> <h3>4.3<span style="font-family:宋体">配置</span>redis<span style="font-family:宋体">允许远程访问</span></h3> <p><span style="font-family:宋体">编辑</span>/etc/redis.conf<span style="font-family:宋体">配置</span>redis<span style="font-family:宋体">允许远程访问</span></p> <pre> <code class="language-java">[root@localhost redis-3.2.9]# vi /etc/redis.conf</code></pre> <p><img alt="6" class="img-thumbnail" src="/assist/images/blog/5ac5d3d3ca214782b9a76513b1cde8fc.png" /></p> <p><span style="font-family:宋体">将</span>bind 127.0.0.1<span style="font-family:宋体">注释掉即可随意访问,如果不注释则只能通过bind后面的ip进行访问。如:</span><br />  </p> <pre> <code>bind 127.0.0.1 192.168.1.3</code></pre> <p><span style="color:#e74c3c"><strong>上面的配置标识只能本地或者访问自己的ip地址192.168.1.3进行访问</strong></span><br /> <br /> 为了测试方便,注释掉即可。生产请bind自己主机的局域网IP地址<br /> <br /> <img alt="7" class="img-thumbnail" src="/assist/images/blog/3608e0016dc647e08bfa2c0fe5c4ac00.png" /></p> <p><span style="font-family:宋体">但是远程访问还不能读写</span>,<span style="font-family:宋体">所以继续配置</span></p> <p><span style="font-family:宋体">找到</span>protected-mode yes(<span style="color:#8e44ad"><strong>如果使用bind的方式则不需要修改</strong></span>)</p> <p><img alt="8" class="img-thumbnail" src="/assist/images/blog/0d331967cc774469a18bfbc4e41afaf8.png" /></p> <p><span style="font-family:宋体">修改为</span>protected-mode no</p> <p><img alt="9" class="img-thumbnail" src="/assist/images/blog/50f6d50040ee4b29bf59e28ca86992f2.png" /></p> <p> </p> <h3>4.4<span style="font-family:宋体">配置</span>redis<span style="font-family:宋体">访问密码</span></h3> <p><span style="font-family:宋体">编辑</span>/etc/redis.conf<span style="font-family:宋体">配置</span>redis<span style="font-family:宋体">设置访问密码</span></p> <p><span style="font-family:宋体">找到配置文件中的</span><span style="background-color:white"><span style="font-family:Consolas"><span style="color:black">requirepass</span></span></span><span style="background-color:white"><span style="font-family:宋体"><span style="color:black">配置</span></span></span></p> <p><img alt="10" class="img-thumbnail" src="/assist/images/blog/f1c0f305ea6f4d7b8ef3601467340781.png" /></p> <p><span style="font-family:宋体">默认情况是注释的</span>,<span style="font-family:宋体">配置的</span><span style="background-color:white"><span style="font-family:Consolas"><span style="color:black">requirepass </span></span></span><span style="background-color:white"><span style="font-family:宋体"><span style="color:black">后面跟的</span></span></span><span style="background-color:white"><span style="font-family:Consolas"><span style="color:black">foobared</span></span></span><span style="background-color:white"><span style="font-family:宋体"><span style="color:black">就是密码</span></span></span></p> <p><span style="background-color:white"><span style="font-family:宋体"><span style="color:black">例如现在启用密码</span></span></span><span style="background-color:white"><span style="font-family:Consolas"><span style="color:black">,</span></span></span><span style="background-color:white"><span style="font-family:宋体"><span style="color:black">并且将密码设置为</span></span></span><span style="background-color:white"><span style="font-family:Consolas"><span style="color:black">123456</span></span></span><span style="background-color:white"><span style="font-family:宋体"><span style="color:black">,则配置为</span></span></span><span style="background-color:white"><span style="font-family:Consolas"><span style="color:black">:</span></span></span></p> <p><img alt="11" class="img-thumbnail" src="/assist/images/blog/c39435d76b21443f8043f387536d662e.png" /></p> <p><span style="font-family:宋体">去掉</span>#<span style="font-family:宋体">并将后面的密码修改为</span>123456</p> <p><span style="color:#e74c3c"><strong><span style="font-family:宋体">提示</span></strong><em>:</em><em><span style="font-family:宋体">配置前后不要留空格</span></em></span><br />  </p> <span style="font-family:宋体">配置redis最大使用内存以及超出最大内存后的处理策略</span><br />   <p><strong>#maxmemory </strong><strong><bytes></strong></p> <p>redis-cache所能使用的最大内存(bytes),默认为0,表示"无限制",最终由OS物理内存大小决定(如果物理内存不足,有可能会使用swap)。此值尽量不要超过机器的物理内存尺寸,从性能和实施的角度考虑,可以为物理内存3/4。此配置需要和"maxmemory-policy"配合使用,当redis中内存数据达到maxmemory时,触发"清除策略"。在"内存不足"时,任何write操作(比如set,lpush等)都会触发"清除策略"的执行。在实际环境中,建议redis的所有物理机器的硬件配置保持一致(内存一致),同时确保master/slave中"maxmemory""policy"配置一致。</p> <p>当内存满了的时候,如果还接收到set 命令,redis 将先尝试剔除设置过expire 信息的key,而不管该key 的过期时间还没有到达。在删除时,</p> <p>将按照过期时间进行删除,最早将要被过期的key 将最先被删除。如果带有expire 信息的key 都删光了,内存还不够用,那么将返回错误。这样,redis 将不再接收写请求,只接收get 请求。maxmemory 的设置比较适合于把redis 当作于类似memcached的缓存来使用。</p> <p><strong># maxmemory-policy noeviction</strong></p> <p>内存不足"时,数据清除策略,默认为"noeviction。</p> <p><em>volatile-lru</em>  ->对"过期集合"中的数据采取LRU(近期最少使用)算法.如果对key使用"expire"指令指定了过期时间,那么此key将会被添加到"过期集合"中。将已经过期/LRU的数据优先移除.如果"过期集合"中全部移除仍不能满足内存需求,将OOM.<br /> <em>allkeys-lru</em> ->对所有的数据,采用LRU算法<br /> <em>volatile-random</em> ->对"过期集合"中的数据采取"随即选取"算法,并移除选中的K-V,直到"内存足够"为止. 如果如果"过期集合"中全部移除全部移除仍不能满足,将OOM<br /> <em>allkeys-random</em> ->对所有的数据,采取"随机选取"算法,并移除选中的K-V,直到"内存足够"为止<br /> <em>volatile-ttl</em> ->对"过期集合"中的数据采取TTL算法(最小存活时间),移除即将过期的数据.<br /> <em>noeviction</em> ->不做任何干扰操作,直接返回OOM异常<br /> 另外,如果数据的过期不会对"应用系统"带来异常,且系统中write操作比较密集,建议采取"allkeys-lru"<br /> <br /> <strong>举个栗子:</strong><br /> 配置最大使用内存2GB,超出后对不常使用的缓存清理,快过期缓存清理的配置为:</p> <pre> <code>#设置默认内存大小3GB maxmemory 3GB #设置清楚策略allkeys-lru maxmemory-policy allkeys-lru</code></pre> <h3>4.5<span style="font-family:宋体">创建</span>redis<span style="font-family:宋体">用户</span></h3> <p><span style="font-family:宋体">命令</span>:</p> <pre> <code class="language-java"># useradd -r -s /sbin/nologin -M redis</code></pre> <p>4.6<span style="font-family:宋体">创建</span>redis<span style="font-family:宋体">启动弄脚本便于使用</span>service<span style="font-family:宋体">管理</span>redis</p> <p><strong><span style="font-family:宋体">命令</span>:</strong></p> <pre> <code class="language-java">#vi  /etc/init.d/redis</code></pre> <p><span style="font-family:宋体">脚本内容</span>:<br />  </p> <pre> <code class="language-bash">#!/bin/bash #chkconfig: 2345 55 25 #description: Starts,stops and restart the redis-server #Ver:1.1  #Write by ND chengh(200808) #usage: ./script_name -p [port] {start|stop|status|restart} # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check networking is up. [ "$NETWORKING" = "no" ] && exit 0 RETVAL=0 REDIS_PORT=6379 PID= if [ "$1" = "-p" ]; then     REDIS_PORT=$2     shift 2 fi REDIS_DIR="/usr/local/redis" REDIS_CONF_DIR="/etc" REDIS="${REDIS_DIR}/bin/redis-server" PROG=$(basename $REDIS) CONF="${REDIS_CONF_DIR}/redis-${REDIS_PORT}.conf" if [ ! -f $CONF ]; then    if [ -f "${REDIS_CONF_DIR}/redis.conf" ];then       CONF="${REDIS_CONF_DIR}/redis.conf"    else       echo -n $"$CONF not exist.";warning;echo       exit 1    fi fi PID_FILE=`grep "pidfile" ${CONF}|cut -d ' ' -f2` PID_FILE=${PID_FILE:=/var/run/redis.pid} LOCKFILE="/var/lock/subsys/redis-${REDIS_PORT}" if [ ! -x $REDIS ]; then     echo -n $"$REDIS not exist.";warning;echo     exit 0 fi start() {     echo -n $"Starting $PROG: "     $REDIS $CONF     RETVAL=$?     if [ $RETVAL -eq 0 ]; then         success;echo;touch $LOCKFILE     else         failure;echo     fi     return $RETVAL } stop() {     echo -n $"Stopping $PROG: "     if [ -f $PID_FILE ] ;then        read PID <  "$PID_FILE"     else        failure;echo;        echo -n $"$PID_FILE not found.";failure;echo        return 1;     fi     if checkpid $PID; then      kill -TERM $PID >/dev/null 2>&1         RETVAL=$?         if [ $RETVAL -eq 0 ] ;then                 success;echo                 echo -n "Waiting for Redis to shutdown .."          while checkpid $PID;do                  echo -n "."                  sleep 1;                 done                 success;echo;rm -f $LOCKFILE         else                 failure;echo         fi     else         echo -n $"Redis is dead and $PID_FILE exists.";failure;echo         RETVAL=7     fi        return $RETVAL } restart() {     stop     start } rhstatus() {     status -p ${PID_FILE} $PROG } hid_status() {     rhstatus >/dev/null 2>&1 } case "$1" in     start)         hid_status && exit 0         start         ;;     stop)         rhstatus || exit 0         stop         ;;     restart)         restart         ;;     status)         rhstatus         RETVAL=$?         ;;     *)         echo $"Usage: $0 -p [port] {start|stop|status|restart}"         RETVAL=1 esac exit $RETVAL </code></pre> <p><span style="background-color:#fafafc"><span style="font-family:宋体"><span style="color:#333333">上面脚本中可根据具体</span></span></span><span style="background-color:#fafafc"><span style="font-family:"Tahoma",sans-serif"><span style="color:#333333">redis</span></span></span><span style="background-color:#fafafc"><span style="font-family:宋体"><span style="color:#333333">安装位置配置</span></span></span><span style="background-color:#fafafc"><span style="font-family:"Tahoma",sans-serif"><span style="color:#333333">redis-server</span></span></span><span style="background-color:#fafafc"><span style="font-family:宋体"><span style="color:#333333">的路径和</span></span></span><span style="background-color:#fafafc"><span style="font-family:"Tahoma",sans-serif"><span style="color:#333333">conf</span></span></span><span style="background-color:#fafafc"><span style="font-family:宋体"><span style="color:#333333">的路径</span></span></span></p> <p><span style="background-color:#fafafc"><span style="font-family:"Tahoma",sans-serif"><span style="color:#333333">redis</span></span></span><span style="background-color:#fafafc"><span style="font-family:宋体"><span style="color:#333333">默认安装在</span></span></span></p> <p><span style="background-color:#fafafc"><span style="font-family:"Tahoma",sans-serif"><span style="color:#333333">/usr/local/redis</span></span></span><span style="background-color:#fafafc"><span style="font-family:宋体"><span style="color:#333333">目录下</span></span></span></p> <p><span style="background-color:#fafafc"><span style="font-family:"Tahoma",sans-serif"><span style="color:#333333">Redis</span></span></span><span style="background-color:#fafafc"><span style="font-family:宋体"><span style="color:#333333">配置文件存放在</span></span></span></p> <p><span style="background-color:#fafafc"><span style="font-family:"Tahoma",sans-serif"><span style="color:#333333">/etc/redis.conf</span></span></span></p> <p> </p> <p><span style="background-color:#fafafc"><span style="font-family:宋体"><span style="color:#333333">修改脚本权限</span></span></span></p> <pre> <code class="language-java">#chmod 755 /etc/init.d/redis</code></pre> <p> </p> <p><span style="font-family:宋体">添加进</span>service<span style="font-family:宋体">管理</span></p> <pre> <code class="language-java">#chkconfig --add redis</code></pre> <p> </p> <p><span style="font-family:宋体">设置开机启动</span></p> <pre> <code class="language-java"># chkconfig redis on</code></pre> <p>4.7<span style="font-family:宋体">启动</span>redis</p> <pre> <code class="language-java">[root@localhost redis-3.2.9]# service redis start Starting redis-server:                                     [  OK  ]</code></pre> <p><img alt="12" class="img-thumbnail" src="/assist/images/blog/3c9b6e9d57104e82a82649a844c5b1d8.png" /></p> <p> </p> <h2><span style="font-family:宋体">五、连接到</span>redis<span style="font-family:宋体">测试</span></h2> <p><span style="font-family:宋体">连接命令</span>:</p> <pre> <code class="language-java">#/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379</code></pre> <p> </p> <p><span style="font-family:宋体">设置一个值</span>:</p> <pre> <code>127.0.0.1:6379> set testKey testValue</code></pre> <p><img alt="13" class="img-thumbnail" src="/assist/images/blog/963b924d72964889b49019bfa0695e2d.png" /></p> <p><span style="font-family:宋体">获取上面的设置值</span></p> <p><span style="font-family:宋体">命令</span>:</p> <pre> <code>127.0.0.1:6379> get testKey</code></pre> <p><img alt="14" class="img-thumbnail" src="/assist/images/blog/82deb7d506ea4673970ad757e8f5492c.png" /></p> <p>删除上面的值<br /> 命令</p> <pre> <code>del testKey</code></pre> <p><br />  </p>
  • centos6.8切换yum源为国内阿里源

    1.备份已有的源 <pre> <code class="language-bash">#mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup</code></pre> 2.下载阿里yum源 <pre> <code class="language-bash">#wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo </code></pre> 下载中... <pre> <code class="language-bash">--2017-01-15 10:52:45-- http://mirrors.aliyun.com/repo/Centos-6.repo Resolving mirrors.aliyun.com... 112.124.140.210, 115.28.122.210 Connecting to mirrors.aliyun.com|112.124.140.210|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 2572 (2.5K) [application/octet-stream] Saving to: `/etc/yum.repos.d/CentOS-Base.repo' 100%[====================================================================================================================================================================================================================================>] 2,572 --.-K/s in 0s 2017-01-15 10:52:45 (226 MB/s) - `/etc/yum.repos.d/CentOS-Base.repo' saved [2572/2572]</code></pre> 3.刷新yum市场资源 <pre> <code class="language-bash">#yum clean all</code></pre> <pre> <code class="language-bash">[root@VM_66_92_centos ~]# yum clean all Loaded plugins: fastestmirror, security Cleaning repos: base epel extras updates Cleaning up Everything Cleaning up list of fastest mirrors</code></pre> <br /> 资源更新 <pre> <code> #yum makecache</code></pre> <br /> 这里会下载一些资源..需要点时间<br /> <br /> 更新完成后变完成yum源的切换<br /> <span style="color:#FF0000">注意<br /> 所有操作都需要root权限</span><br /> <br /> <br />  
  • npm配置国内镜像源

    npm配置国内镜像源环境说明下载的nodejs版本10.80安装nodejs后自带的npm版本为6.2.0初始化npm新装的npm需要执行初始化命令来配置一些信息,生成package.json初始化命令npm init会提示输入一些基本信息如名称、国别、许可等等,如果不需要特别设置一路回车即可配置国内npm镜像源临时配置:npm --registry https://registry.npm.taobao.org install express永久配置npm config set registry https://registry.npm.taobao.org验证命令npm config get registry或者npm info express
  • centos6源码安装MySQL5.6

    centos6源码安装MySQL5.6<p>1.安装mysql5.6依存包</p> <p>2.下载编译包</p> <pre> <code class="language-html">wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz tar xvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz</code></pre> <p>3.复制到指定目录</p> <pre> <code class="language-html">mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql</code></pre> <p>4.创建mysql用户和组</p> <pre> <code class="language-html">groupadd mysql useradd -r -g mysql mysql -d /usr/local/mysql passwd mysql</code></pre> <p>5.修改目录权限</p> <pre> <code class="language-html">chown -R mysql:mysql /usr/local/mysql</code></pre> <p>6.安装数据库</p> <pre> <code class="language-html">su mysql /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data exit</code></pre> <p>7.复制mysql配置文件</p> <pre> <code class="language-html">cd /usr/local/mysql/support-files cp my-default.cnf /etc/my.cnf</code></pre> <p>8.添加系统服务</p> <pre> <code class="language-html">cp mysql.server /etc/init.d/mysql chkconfig mysql on</code></pre> <p>9.添加环境变量</p> <pre> <code class="language-html">vim /etc/profile</code></pre> <p>在最下面添加</p> <pre> <code class="language-html">export MYSQL_HOME="/usr/local/mysql" export PATH="$PATH:$MYSQL_HOME/bin"</code></pre> <p>保存退出后,执行生效代码</p> <pre> <code class="language-html">. /etc/profile</code></pre> <p>10.启动mysql</p> <pre> <code class="language-html">service mysql start</code></pre> <p>11.设置root密码</p> <pre> <code class="language-html">mysqladmin -u root password '123456'</code></pre> <p>12.设置默认端口</p> <pre> <code class="language-html">vim /etc/my.cnf</code></pre> <pre> <code class="language-html">[mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data port=3306 server_id=1 socket=/tmp/mysql.sock</code></pre> <p>13.允许所有外部链接访问(可选)</p> <pre> <code class="language-html">mysql -u root -p</code></pre> <p>mysql命令行输入</p> <pre> <code class="language-html">GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; FLUSH PRIVILEGES;</code></pre> <br /> <br /> 相关文档:<br /> <a rel="" target="_blank"href="http://www.leftso.com/blog/224.html" rel="" target="_blank">yum安装MySQL数据库</a><br />  
  • Linux yum nginx安装和nginx入门配置方法

    Linux(centos) nginx安装和nginx入门配置方法,centos yum 安装nginxLinux(centos) nginx安装和nginx入门配置方法<br /> <br /> 1.切换至root用户 <pre> <code>$su -</code></pre> 2.执行在线安装命令 <pre> <code class="language-html">#yum install nginx -y</code></pre> 如果上面提示以下内容 <pre> <code class="language-html">[root@template ~]# yum install nginx -y Loaded plugins: fastestmirror, security Setting up Install Process Loading mirror speeds from cached hostfile * base: mirrors.cqu.edu.cn * extras: mirror.bit.edu.cn * updates: mirrors.tuna.tsinghua.edu.cn No package nginx available. Error: Nothing to do [root@template ~]# yum install nginx -y Loaded plugins: fastestmirror, security Setting up Install Process Loading mirror speeds from cached hostfile * base: mirrors.cqu.edu.cn * extras: mirror.bit.edu.cn * updates: mirrors.tuna.tsinghua.edu.cn No package nginx available. </code></pre> 则需要配置nginx的源,如果直接安装则忽略这里的配置源步骤。<br /> <br /> <strong>配置yum的nginx源</strong><br /> <code>/etc/yum.repos.d/</code>目录下创建一个源配置文件<code>nginx.repo</code><br /> 命令: <pre> <code>cd /etc/yum.repos.d/</code></pre>   <pre> <code>vim nginx.repo</code></pre> <br /> nginx.repo内容输入: <pre> <code class="language-html">[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/6/$basearch/ gpgcheck=0 enabled=1</code></pre> 一般情况centos7会自带源的,只有部分centos6没有。所以配置源。配置完成后再执行安装命令 <pre> <code>yum install nginx -y</code></pre> <br /> <br /> 3.安装完成,启动nginx命令 <pre> <code class="language-html">#nginx</code></pre> 4.启动后在浏览器输入刚才安装好nginx的服务器IP地址<br /> <img alt="nginx" class="img-thumbnail" src="/assist/images/blog/d26591d7-3032-44ee-8352-3d55fdcbe4de.png" style="height:375px; width:900px" /><br /> 出现上面的页面标识安装和启动成功<br /> 5.nginx停止 <pre> <code class="language-html">#nginx -s stop</code></pre> <br /> 6.nginx通用配置文件nginx.conf配置说明<br />   <pre> <code class="language-html">#指定nginx进程运行用户及用户组(默认nginx)(动静分离时候需要。注意权限否则静态文件可能访问不到。) user nginx; #nginx要开启的进程数,建议按照cpu数目来指定,一般跟cpu核数相同或为它的倍数 #推荐最多开启8个,8个以上性能提升不会再提升了,而且稳定性变得更低,所以8个进程够用了 worker_processes 8; #为每个进程分配cpu,上例中将8个进程分配到8个cpu worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; #worker_processes 4;#4个进程配置 #worker_cpu_affinity 0001 0010 0100 1000 error_log /var/log/nginx/error.log warn;#错误日志存放路径,以及日志级别默认warn pid /var/run/nginx.pid;#默认存放nginx进程id文件 #当一个nginx进程打开的最多文件描述符数目,理论值应该是系统的最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n的值保持一致 #[注]文件资源限制的配置可以在/etc/security/limits.conf设置,针对root/user等各个用户或者*代表所有用户来设置。 worker_rlimit_nofile 65535; events { #使用epoll的I/O模型,用这个模型来高效处理异步事件,epoll是linux平台下的高效模式 use epoll; #每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为worker_processes*worker_connections #定义nginx每个进程的最大连接数为51200,一般网上都配置65535,根据张宴大神的建议51200即可 worker_connections 51200;#默认1024 } http { include /etc/nginx/mime.types;#实现对配置文件所包含的文件的设定 default_type application/octet-stream;#设置默认类型为二进制流 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; #http连接超时时间,默认是60s,功能是使客户端到服务器端的连接在设定的时间内持续有效,当出现对服务器的后继请求时,该功能避免了建立或者重新建立连接。切记这个参数也不能设置过大!否则会导致许多无效的http连接占据着nginx的连接数,终nginx崩溃! keepalive_timeout 65; #客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求的头部大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE取得。 client_header_buffer_size 4K; #############下面部分为动静分离需要nginx代理文件时候使用,仅做Tomcat分发则不需要启用############ #下面这个参数将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存。 #open_file_cache max=102400 inactive=20s; #下面这个是指多长时间检查一次缓存的有效信息。 #open_file_cache_valid 30s; #open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive时间内一次没被使用,它将被移除。 #open_file_cache_min_uses 1; ############上面面部分为动静分离需要nginx代理文件时候使用,仅做Tomcat分发则不需要启用############ #隐藏响应头中的有关操作系统和web server(Nginx)版本号的信息,这样对于安全性是有好处的。 server_tokens off; #gzip on; include /etc/nginx/conf.d/*.conf; }</code></pre> <br /> 7.新增一个nginx解析<br /> 切换目录至配置目录 <pre> <code>#cd /etc/nginx/conf.d/</code></pre> 新建一个解析配置文件test.conf <pre> <code class="language-html">#server {###配置虚拟机 # listen 80;#配置监听端口 # server_name zhljc.com www.zhljc.com srv.gift www.srv.gift 127.0.0.1; #配置访问域名,可以有多个[127.0.0.1/localhost表示任何] # location / {#对所有地址进行负载均衡 # root html;##定义服务器的默认网站根目录位置 # index index.html index.htm;##定义首页索引文件的名称 # # #以下三行,目的是将代理服务器收到的用户的信息传到真实服务器上 # proxy_set_header Host $host; # proxy_set_header X-Real-IP $remote_addr; # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # # #websocket # proxy_http_version 1.1; # proxy_set_header Upgrade $http_upgrade; # proxy_set_header Connection "upgrade"; # # proxy_pass http://localhost:8080/bamboo; # }#end location # if ($host = 'www.xqlee.net'){ # rewrite ^/(.*)$ http://xqlee.net/$1 permanent; # } # #}#end server #upstream tomcats-webservice {#设定负载均衡的服务器列表,注意多个负载时候这里的名字必须唯一 #upstream的负载均衡,weight是权重,可以根据机器配置定义权重。weigth参数表示权值,权值越高被分配到的几率越大。 #负载方式,默认 #1.轮询[每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除] #2.weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 #3.ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 #server localhost:8000 weight=1 max_fails=3 fail_timeout=60s; #第一台机器 #server localhost:8080 weight=1 max_fails=3 fail_timeout=60s; #第二台机器 #ip_hash; #server localhost:8000; #}#end upstream </code></pre> <br /> <br />  
  • yum安装jdk1.8-CentOS6.5

    yum安装jdk1.8-CentOS6.5,centos6,jdk8<h2 style="text-align:left">一、yum<span style="font-family:宋体">安装</span>jdk8</h2> <h3>1.1<span style="font-family:宋体">查看当前可以安装的版本</span></h3> <p><span style="font-family:宋体">命令</span>:</p> <p>[root@localhost ~]# yum list|grep jdk</p> <p>copy-jdk-configs.noarch                      1.3-1.el6                   base  </p> <p>java-1.6.0-openjdk.x86_64                    1:1.6.0.41-1.13.13.1.el6_8  base  </p> <p>java-1.6.0-openjdk-demo.x86_64               1:1.6.0.41-1.13.13.1.el6_8  base  </p> <p>java-1.6.0-openjdk-devel.x86_64              1:1.6.0.41-1.13.13.1.el6_8  base  </p> <p>java-1.6.0-openjdk-javadoc.x86_64            1:1.6.0.41-1.13.13.1.el6_8  base  </p> <p>java-1.6.0-openjdk-src.x86_64                1:1.6.0.41-1.13.13.1.el6_8  base  </p> <p>java-1.7.0-openjdk.x86_64                    1:1.7.0.141-2.6.10.1.el6_9  updates</p> <p>java-1.7.0-openjdk-demo.x86_64               1:1.7.0.141-2.6.10.1.el6_9  updates</p> <p>java-1.7.0-openjdk-devel.x86_64              1:1.7.0.141-2.6.10.1.el6_9  updates</p> <p>java-1.7.0-openjdk-javadoc.noarch            1:1.7.0.141-2.6.10.1.el6_9  updates</p> <p>java-1.7.0-openjdk-src.x86_64                1:1.7.0.141-2.6.10.1.el6_9  updates</p> <p>java-1.8.0-openjdk.x86_64                    1:1.8.0.131-0.b11.el6_9     updates</p> <p>java-1.8.0-openjdk-debug.x86_64              1:1.8.0.131-0.b11.el6_9     updates</p> <p>java-1.8.0-openjdk-demo.x86_64               1:1.8.0.131-0.b11.el6_9     updates</p> <p>java-1.8.0-openjdk-demo-debug.x86_64         1:1.8.0.131-0.b11.el6_9     updates</p> <p>java-1.8.0-openjdk-devel.x86_64              1:1.8.0.131-0.b11.el6_9     updates</p> <p>java-1.8.0-openjdk-devel-debug.x86_64        1:1.8.0.131-0.b11.el6_9     updates</p> <p>java-1.8.0-openjdk-headless.x86_64           1:1.8.0.131-0.b11.el6_9     updates</p> <p>java-1.8.0-openjdk-headless-debug.x86_64     1:1.8.0.131-0.b11.el6_9     updates</p> <p>java-1.8.0-openjdk-javadoc.noarch            1:1.8.0.131-0.b11.el6_9     updates</p> <p>java-1.8.0-openjdk-javadoc-debug.noarch      1:1.8.0.131-0.b11.el6_9     updates</p> <p>java-1.8.0-openjdk-src.x86_64                1:1.8.0.131-0.b11.el6_9     updates</p> <p>java-1.8.0-openjdk-src-debug.x86_64          1:1.8.0.131-0.b11.el6_9     updates</p> <p>ldapjdk.x86_64                               4.18-8.el6                  base  </p> <p>ldapjdk-javadoc.x86_64                       4.18-8.el6                  base</p> <p> </p> <p><span style="font-family:宋体">如果没有看到上面的版本,安装</span>/<span style="font-family:宋体">更新</span>centos<span style="font-family:宋体">的扩展源</span></p> <pre> <code>#yum –y  install epel-release</code></pre> <h3>1.2<span style="font-family:宋体">安装</span>jdk1.8</h3> <p><span style="font-family:宋体">命令:</span></p> <pre> <code>[root@localhost ~]# yum install -y java-1.8.0-openjdk</code></pre> <p><img alt="可用jdk版本" class="img-thumbnail" src="/assist/images/blog/12c8939452534207b9857a8d40bb48c9.png" /></p> <h2>二、<span style="font-family:宋体">检查安装</span></h2> <p><span style="font-family:宋体">命令</span>:</p> <pre> <code>[root@localhost ~]# java –version openjdk version "1.8.0_131" OpenJDK Runtime Environment (build 1.8.0_131-b11) OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)</code></pre> <p> </p> <p><em><span style="font-family:宋体">如上显示出</span>jdk</em><em><span style="font-family:宋体">版本标示已经成功安装</span></em></p>
  • spring boot mybaties 配置多数据源

    spring boot mybaties 配置多数据源<h2>引言</h2> <blockquote> <p>说起多数据源,一般都来解决那些问题呢,主从模式或者业务比较复杂需要连接不同的分库来支持业务。我们项目是后者的模式,网上找了很多,大都是根据jpa来做多数据源解决方案,要不就是老的spring多数据源解决方案,还有的是利用aop动态切换,感觉有点小复杂,其实我只是想找一个简单的多数据支持而已,折腾了两个小时整理出来,供大家参考。</p> </blockquote> <h2>配置文件</h2> pom.xml<br /> 参考之前写的一篇<a rel="" target="_blank"href="http://www.leftso.com/blog/133.html" rel="" target="_blank" title="spring boot mybatis 整合_spring boot与mybaties的使用">spring boot mybatis 整合_spring boot与mybaties的使用</a><br /> <br /> 主要是数据库这边的配置: <pre> <code class="language-html">#mybatis其他配置可选 mybatis.config-locations=classpath:mybatis/mybatis-config.xml spring.datasource.test1.driverClassName = com.mysql.jdbc.Driver spring.datasource.test1.url = jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf-8 spring.datasource.test1.username = root spring.datasource.test1.password = root spring.datasource.test2.driverClassName = com.mysql.jdbc.Driver spring.datasource.test2.url = jdbc:mysql://localhost:3306/test2?useUnicode=true&characterEncoding=utf-8 spring.datasource.test2.username = root spring.datasource.test2.password = root</code></pre> 一个test1库和一个test2库,其中test1位主库,在使用的过程中必须制定主库,不然会报错。 <h2>数据源配置</h2> <pre> <code class="language-java">@Configuration@MapperScan(basePackages = "com.neo.mapper.test1", sqlSessionTemplateRef = "test1SqlSessionTemplate") public class DataSource1Config { @Bean(name = "test1DataSource") @ConfigurationProperties(prefix = "spring.datasource.test1") @Primary public DataSource testDataSource() { return DataSourceBuilder.create().build(); } @Bean(name = "test1SqlSessionFactory") @Primary public SqlSessionFactory testSqlSessionFactory(@Qualifier("test1DataSource") DataSource dataSource) throws Exception { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/test1/*.xml")); return bean.getObject(); } @Bean(name = "test1TransactionManager") @Primary public DataSourceTransactionManager testTransactionManager(@Qualifier("test1DataSource") DataSource dataSource) { return new DataSourceTransactionManager(dataSource); } @Bean(name = "test1SqlSessionTemplate") @Primary public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("test1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception { return new SqlSessionTemplate(sqlSessionFactory); } }</code></pre> <p>最关键的地方就是这块了,一层一层注入,先创建DataSource,在创建SqlSessionFactory在创建事务,最后包装到SqlSessionTemplate中。其中需要制定分库的mapper文件地址,以及分库到层代码</p> <pre> <code class="language-java">@MapperScan(basePackages = "com.neo.mapper.test1", sqlSessionTemplateRef  = "test1SqlSessionTemplate")</code></pre> <p>这块的注解就是指明了扫描dao层,并且给dao层注入指定的SqlSessionTemplate。所有<code>@Bean</code>都需要按照命名指定正确。</p> <h2>dao层和xml层</h2> dao层和xml需要按照库来分在不同的目录,比如:test1库dao层在com.neo.mapper.test1包下,test2库在com.neo.mapper.test1 <pre> <code class="language-java">public interface User1Mapper {      List<UserEntity> getAll();        UserEntity getOne(Long id);    void insert(UserEntity user);    void update(UserEntity user);        void delete(Long id); }</code></pre> <p>xml层</p> <pre> <code class="language-xml"><?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.neo.mapper.test1.User1Mapper" >    <resultMap id="BaseResultMap" type="com.neo.entity.UserEntity" >        <id column="id" property="id" jdbcType="BIGINT" />        <result column="userName" property="userName" jdbcType="VARCHAR" />        <result column="passWord" property="passWord" jdbcType="VARCHAR" />        <result column="user_sex" property="userSex" javaType="com.neo.enums.UserSexEnum"/>        <result column="nick_name" property="nickName" jdbcType="VARCHAR" />    </resultMap>    <sql id="Base_Column_List" >        id, userName, passWord, user_sex, nick_name        </sql>    <select id="getAll" resultMap="BaseResultMap"  >       SELECT       <include refid="Base_Column_List" />       FROM users        </select>    <select id="getOne" parameterType="java.lang.Long" resultMap="BaseResultMap" >        SELECT       <include refid="Base_Column_List" />       FROM users       WHERE id = #{id}        </select>    <insert id="insert" parameterType="com.neo.entity.UserEntity" >       INSERT INTO            users            (userName,passWord,user_sex)        VALUES            (#{userName}, #{passWord}, #{userSex})        </insert>    <update id="update" parameterType="com.neo.entity.UserEntity" >       UPDATE            users       SET        <if test="userName != null">userName = #{userName},</if>        <if test="passWord != null">passWord = #{passWord},</if>        nick_name = #{nickName}       WHERE            id = #{id}         </update>    <delete id="delete" parameterType="java.lang.Long" >       DELETE FROM             users       WHERE             id =#{id}       </delete>   </mapper></code></pre> <h2>测试</h2> <p>测试可以使用SpringBootTest,也可以放到Controller中,这里只贴Controller层的使用</p> <pre> <code class="language-java">@RestControllerpublic class UserController {        @Autowired    private User1Mapper user1Mapper;            @Autowired    private User2Mapper user2Mapper;            @RequestMapping("/getUsers")        public List<UserEntity> getUsers() {        List<UserEntity> users=user1Mapper.getAll();        return users;    }            @RequestMapping("/getUser")        public UserEntity getUser(Long id) {        UserEntity user=user2Mapper.getOne(id);                return user;    }            @RequestMapping("/add")        public void save(UserEntity user) {        user2Mapper.insert(user);    }            @RequestMapping(value="update")        public void update(UserEntity user) {        user2Mapper.update(user);    }            @RequestMapping(value="/delete/{id}")        public void delete(@PathVariable("id") Long id) {        user1Mapper.delete(id);    } }</code></pre>
  • centos6.8 yum安装和配置ftp server(vsftpd)客服端

    centos6.8 yum安装和配置ftp server(vsftpd)客服端以及ftp常见问题解决,vsftpd################################ FTP Server ##########################<br /> centos6.8 yum安装和配置ftp server(vsftpd)<br /> 安装前提<br /> <strong>1.root用户<br /> 2.主机联网</strong><br /> 安装命令: <pre> <code class="language-bash"> yum install vsftpd</code></pre> <br /> 安装过程:<br /> <br /> <img alt="安装过程" class="img-thumbnail" src="/assist/images/blog/2a19add45c0746c59ced57324b655948.png" /><br /> <br /> 查看是否安装成功<br />   <pre> <code>[root@VM_xx_xx_centos ~]# rpm -qa | grep vsftpd vsftpd-2.2.2-21.el6.x86_64</code></pre> <br /> 如果查询出来有vsftpd-版本号说明已经安装成功。<br /> <br /> 查看yum安装的配置信息: <pre> <code>[root@VM_xx_xx_centos ~]# whereis vsftpd vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz</code></pre> <br /> 安装的配置目录基本这里就三个: <pre> <code>/usr/sbin/vsftpd /etc/vsftpd ​​​​​​​/usr/share/man/man8/vsftpd.8.gz</code></pre> <br /> 很明显,核显配置文件sftpd.conf在/etc/vsftpd中<br /> 切换目录,修改配置.<br /> <span style="color:#e74c3c">注意修改前最好先备份一个原有的,纯属个人习惯</span><br /> sftp.conf常用配置信息说明 <pre> <code> # 允许本地用户登录 local_enable=YES # 本地用户的写权限 write_enable=YES # 使用FTP的本地文件权限,默认为077 # 一般设置为022 local_umask=022 # 切换目录时 # 是否显示目录下.message的内容 dirmessage_enable=YES dirlist_enable = NO #验证方式 #pam_service_name=vsftpd # 启用FTP数据端口的数据连接 connect_from_port_20=YES # 以独立的FTP服务运行 listen=yes # 修改连接端口 #listen_port=2121 ######### 匿名登录设置 ########### # 允许匿名登录 anonymous_enable=NO # 如果允许匿名登录 # 是否开启匿名上传权限 #anon_upload_enable=YES # 如果允许匿名登录 # 是否允许匿名建立文件夹并在文件夹内上传文件 #anon_mkdir_write_enable=YES # 如果允许匿名登录 # 匿名帐号可以有删除的权限 #anon_other_write_enable=yes # 如果允许匿名登录 # 匿名的下载权限 # 匿名为Other,可设置目录/文件属性控制 #anon_world_readable_only=no # 如果允许匿名登录 # 限制匿名用户传输速率,单位bite #anon_max_rate=30000 ######### 用户限制设置 ########### #### 限制登录 # 用userlist来限制用户访问 #userlist_enable=yes # 名单中的人不允许访问 #userlist_deny=no # 限制名单文件放置的路径 #userlist_file=/etc/vsftpd/userlist_deny.chroot #### 限制目录 # 限制所有用户都在家目录 #chroot_local_user=yes # 调用限制在家目录的用户名单 chroot_list_enable=YES # 限制在家目录的用户名单所在路径 chroot_list_file=/etc/vsftpd/chroot_list ######### 日志设置 ########### # 日志文件路径设置 xferlog_file=/var/log/vsftpd.log # 激活上传/下载的日志 xferlog_enable=YES # 使用标准的日志格式 #xferlog_std_format=YES ######### 安全设置 ########### # 用户空闲超时,单位秒 #idle_session_timeout=600 # 数据连接空闲超时,单位秒 #data_connection_timeout=120 # 将客户端空闲1分钟后断开 #accept_timeout=60 # 中断1分钟后重新连接 #connect_timeout=60 # 本地用户传输速率,单位bite #local_max_rate=50000 # FTP的最大连接数 #max_clients=200 # 每IP的最大连接数 #max_per_ip=5 ######### 被动模式设置 ########### # 是否开户被动模式 pasv_enable=yes # 被动模式最小端口 pasv_min_port=5000 # 被动模式最大端口 pasv_max_port=6000 ######### 其他设置 ########### # 欢迎信息 ftpd_banner=Welcome to Ftp Server!</code></pre> <br /> 添加ftp防火墙规则,一般用于安全策略 <pre> <code> /sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT /etc/rc.d/init.d/iptables save /etc/init.d/iptables restart</code></pre> <br /> 常用启动重启停止ftp命令: <pre> <code>#启动 service vsftpd start #停止 service vsftpd stop #重启 service vsftpd restart #查看运行状态 service vsftpd status</code></pre> <br /> ftp server 分两种模式<br /> 主动模式配置 <pre> <code>#主动模式 #开启主动模式 port_enable=YES #当主动模式开启的时候 是否启用默认的20端口监听 connect_from_port_20=YES #上一选项使用NO参数是 指定数据传输端口 ftp_date_port=%portnumber%</code></pre> 被动模式配置 <pre> <code>#开启被动模式 pasv_enable=YES #被动模式最低端口 pasv_min_port=5100 #被动模式最高端口 pasv_max_port=5200</code></pre> <br /> 推荐使用被动模式<br /> <br /> <span style="color:#ff0000"><strong>注意:配置文件配置内容后面不允许有空格,所以最好注释写上面配置内容后无任何东西,否则会莫名奇妙报错</strong></span><br /> <br /> ################################ FTP Client ##########################<br /> 安装命令 <pre> <code>yum install ftp</code></pre> <br /> 安装过程<br /> <img alt="client" class="img-thumbnail" src="/assist/images/blog/f54420cbd14f477282a1ecb09260402a.jpg" /><br /> <br /> 安装完成后执行ftp就可以进入ftp客服端<br /> <img alt="client" class="img-thumbnail" src="/assist/images/blog/22b4ae19a1af4f62aec556baa0d514e7.jpg" /><br /> <br /> ################################ 常见问题 QA ################################<br /> 227 Entering Passive Mode<br /> 200 PORT command successful. Consider using PASV.<br /> 解决:<br /> 服务端配置文件中添加或修改以下内容,核心内容是最后一个pasv_address该参数必须绑定<br /> #sv_enable=YES<br /> #被动模式最低端口<br /> pasv_min_port=3100<br /> #被动模式最高端口<br /> pasv_max_port=3200<br /> <strong><span style="color:#cc0000">pasv_address=123.206.71.187(必须项,你自己主机的IP地址)</span></strong><br />   <p>227 Entering Passive Mode<br /> 解决:</p> <pre> <code>ftp> passive Passive mode on.</code></pre> <br /> <p> </p>
  • centos7 Error starting daemon: layer does not exist

    centos7安装docker启动报错 Error starting daemon: layer does not existcentos7安装docker启动报错 Error starting daemon: layer does not exist<br /> 使用yum install docker安装完后启动不了,关闭selinux,无效<br /> <br /> <br /> 1.创建一个yum源 <pre> <code>vi /etc/yum.repos.d/docker.repo</code></pre> 内容: <pre> <code>[dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg</code></pre> <br /> 2.安装docker <pre> <code class="language-bash"> yum install docker-engine</code></pre> <br /> 好了尽情享用docker的美好吧。。。