Rocky Linux/Centos的跨大版本直接yum/dnf更新

理论上redhat系列较新的版本都可以这样更新,使用旧版本yum的发行版大概也可以。下面以 rocky linux 8.x 直接更新成rocky linux 9.x 示例

1. 先安装上基础包(release,repos,gpg-key)其包文件名,可以到该目录下查看,因为这几个包名里的版本号会随时更新。

dnf install https://download.rockylinux.org/pub/rocky/9/BaseOS/x86_64/os/Packages/r/rocky-release-9.2-1.6.el9.noarch.rpm
dnf install --skip-broken https://download.rockylinux.org/pub/rocky/9/BaseOS/x86_64/os/Packages/r/rocky-repos-9.2-1.6.el9.noarch.rpm
dnf install --skip-broken https://download.rockylinux.org/pub/rocky/9/BaseOS/x86_64/os/Packages/r/rocky-gpg-keys-9.2-1.6.el9.noarch.rpm

2.执行更新

dnf --releasever=9 --allowerasing --setopt=deltarpm=false distro-sync

如果期间有报 GPG 错误,可以在本行命令中加上 --nogpgcheck 参数,不检查 gpg

3. 重建rpm数据库

rpm --rebuilddb

4. 重启 reboot

参考  https://www.starwindsoftware.com/blog/upgrade-from-rocky-linux-8-x-to-rocky-linux-9-0

可能存在的问题

a. 如果yum报如下的警告消息

 Problem 1: conflicting requests
- nothing provides module(platform:el8) needed by module mysql:8.0:8080020230517025647:fd72936b.x86_64
Problem 2: conflicting requests
- nothing provides module(platform:el8) needed by module perl:5.26:8050020211109115414:b4937e53.x86_64
...
 Problem 6: conflicting requests
- nothing provides module(platform:el8) needed by module python36:3.6:8080020230329212447:683b2e54.x86_64
Problem 7: conflicting requests
- nothing provides module(platform:el8) needed by module python38:3.8:8080020230625053205:0d9ba776.x86_64
Problem 8: conflicting requests
- nothing provides module(platform:el8) needed by module python39:3.9:8080020230703194939:aed85c85.x86_64

应该是以前设置过一些 yum module,这些module在新版本里已经无效,也就是在 /etc/dnf/modules.d/ 下有相关模块的配置文件,删掉对应的文件就是了,再运行 yum check 时就没了。或者 运行 module reset mysql 等相应的模块也可。

CentOS 7的web环境等

原则:尽量使用yum repo安装

CentOS 官方对第三方repo的说明  https://wiki.centos.org/zh/AdditionalResources/Repositories

nginx

使用nginx 官方提供的repo,配置文件 /etc/yum.repos.d/nginx.repo 文件内容如下

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

更多参看 http://nginx.org/en/linux_packages.html

php(fastcgi版)

因为要配合nginx,所以要选择fastcgi版的php-fpm, 这里选择remi源,这也是centos 官方推荐的php源之一。如下命令配置repo,将会配置好几个repo文件,但只有remi-safe.repo 是默认激活的,其他repo中的包有可能与系统文件冲突,所以在需要使用时在临时激活。

rpm -ivh https://rpms.remirepo.net/enterprise/remi-release-7.rpm

如下命令安装php-fpm

yum --enablerepo=remi-php73 install php-fpm

remi维护了多个php版本,选用目前最新的7.3,通过--enablerepo临时激活该源。注意包名带 "-fpm" 否则是apache的模块版。注意一下安装进程,没有自动安装httpd。

按需要安装其他php扩展,下面是常用扩展的参考

yum --enablerepo=remi-php73 install php-gd php-gmp php-igbinary \
  php-mbstring php-mcrypt php-memcached php-mysqli php-odbc \
  php-pdo php-xml php-zip php-zlib php-bcmath php-imagick

配置php-fpm。主要是文件  /etc/php-fpm.d/www.conf ,默认fastcgi进程数是动态管理的,根据机器内存、负载等控制进程数,下面是微小站点的配置,其中user/group 不改默认apache也行。(或许默认的apache与后面提到的session文件目录默认权限是相符的,待确定 TODO )

user = nobody
group = nobody
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 5

修改php默认的session文件存储目录权限,按前面php-fpm用户设置为

chown nobody:nobody /var/lib/php/session

在nginx启用php

nginx主配置文件为 /etc/nginx/nginx.conf,站点配置文件在 /etc/nginx/conf.d/*.conf ,默认参看主配置文件结尾处 include /etc/nginx/conf.d/*.conf 一行。

推荐习惯:把web站点文件放在 /var/www/html/ 目录下,每个站点一个子目录,下面以默认站点文件的配置为例,其他站点参考即可。更多参考nignx官方文档,尤其是其中core模块 ngx_http_core_module

为默认站点 default.conf 创建目录 mkdir -p /var/www/html/default ,备份一下自带的的站点文件 cp /etc/nginx/conf.d/default.conf{,__original} ,参考下面示例修改 /etc/nginx/conf.d/default.conf 文件。有更多站点,用default.conf 作模板修改。选项说明:

  • 其中 listen 80 default; 一行表示这是默认站点,其他站点就不能加了。
  • 原来在location / {...} 中的root 指令; 推荐直接放到server{...}节点中,目的是,在php 配置fastcgi_param中使用$document_root 变量,而不是像默认配置文件里的再写一遍绝对路径,其中也可以省略掉root指令了。
  • try_files $uri $uri/ /index.php; 一行是wordpress的伪静态rewrite规则;
  • rewrite ^/feed /license.txt; 是把url重写到指定文件上
  • 如果配置ssl/https,可以使用Let’s Encrypt免费证书,步骤及设置参数可参看这里
server {
    listen 80 default;
    server_name blog.path8.net;
    #server_name blog.path8.net www.path8.net; #多域名
    root /var/www/html/default;
    #autoindex on;
    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location /favicon.ico {
        log_not_found off;
        access_log off;
    }
    location /robots.txt {
        log_not_found off;
        access_log off;
    }

    location / {
    #    root   /usr/share/nginx/html;
        index  index.html index.htm;
        #try_files $uri $uri/ /index.php;
        #rewrite ^/feed /license.txt;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
    #    root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

修改完成后,nginx -t 测试配置文件,无误后启动(start)nginx及php-fpm,并设置自动启动(enable)

nginx -t
systemctl start nginx
systemctl status nginx
systemctl enable nginx
systemctl start php-fpm
systemctl status php-fpm
systemctl enable php-fpm

如果静态文件正常,php请求报错 File not found ,并且nginx error日志中有如下错误 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream 可去检查web文件权限与php-fpm用户是否匹配,还有是不是开着SELinux且没配置好规则。

数据库MySQL/MariaDB安装

遵循CentOS7的改变,使用Mariadb替换MySQL,使用上差别不大,基本上完全沿用MySQL,除了改个名字。yum安装服务端及客户端

yum install mariadb mariadb-server

先不急着启动服务,修改一下配置文件,参考下面,放到[mysqld]节点后,大概第10行。这是适合微小型服务器的配置参数,可以按实际调整。的话添加下面几行。

#add by fengyqf start 161105
skip-name-resolve

innodb_log_buffer_size=32M
innodb_buffer_pool_size=64M
innodb_log_file_size=16M
innodb_additional_mem_pool_size=16M

server-id=301
log-bin=mysql-bin
log-error=mysql-bin.err
expire_logs_days=30
open_files_limit=10240
#add by fengyqf end

其中server-id起的4行,是配置复制功能用的,不要MySQL复制功能的话不要加,它们会生成一系列二进制文件,多占用磁盘。复制是自动同步把数据到其他服务上,还要其他配置才行,只这几行不够的。保存好启动服务。

systemctl start mariadb
systemctl status mariadb
systemctl enable mariad

如果在修改配置前启动过服务,启动会失败,删除日志文件再启动即可 rm /var/lib/mysql/ib_logfile*

new section

CentOS 7下安装pptp服务端手记

环境,初装的阿里云ECS最低配机型,CentOS 7 x64  (兼及linode的CentOS 7)

主要配置步骤

1. 安装前检查系统支持

a. 在安装之前查看系统是否支持PPTP

modprobe ppp-compress-18 && echo success

应该输出:success

yum install kernel-devel

b. 是否开启TUN/TAP

cat /dev/net/tun

应该输出:cat: /dev/net/tun: File descriptor in bad state

c. 是否开启ppp

cat /dev/ppp

应该输出:cat: /dev/ppp: No such device or address

如果环境不满足上面3个条件,表示很可能不支持pptp。  例外:linode的xen、kvm服务器,也是支持的pptp的。可能是linode内核是定制的,并不是外部ko模块,与原版CentOS表现有所不一致。

2. 安装必要包

a. 首先安装epel源

yum install epel-release

b. 安装pptp相关包

yum install ppp pptpd net-tools iptables-services

3. 修改相关配置文件

a. 主配置文件 /etc/pptpd.conf

结尾处增加如下两行,分别是pptp服务的虚拟网段网关,及分配给客户端的地址范围。

localip 192.168.9.1
remoteip 192.168.9.101-199

b. pptpd配置文件/etc/ppp/options.pptpd,结尾增加两行,给虚拟网段用的dns服务,可以使用主机商提供的dns服务器地址。

ms-dns 100.100.2.136
ms-dns 100.100.2.138

如果是linode等海外服务器,可以使用谷歌的公共dns服务器地址

ms-dns 8.8.8.8
ms-dns 8.8.4.4

c. 设置pptpd vpn服务器用户名密码,编辑文件 /etc/ppp/chap-secrets, 每行一套帐号,该文件默认有简短说明。一行帐号行示例如下,以空格分隔的4个字段:第1、3是用户名密码,其他两字段是星号

user1 * 111222333 *

d. 服务器允许ip转发内核,编辑配置文件/etc/sysctl.conf,增加如下一行

net.ipv4.ip_forward=1

4. 设置开机自动启动 pptpd, iptables,

ln -s /usr/lib/systemd/system/pptpd.service /etc/systemd/system/multi-user.target.wants/
ln -s /usr/lib/systemd/system/iptables.service /etc/systemd/system/multi-user.target.wants

 

5. iptables配置网络

a. iptables配置,配置虚拟网段NAT支持。如果pptp客户端不需要上网,可以忽略本步骤。

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

,注意其中的eth0是本机网卡设备名,按实际情况修改;按虚拟网段设置NAT,如下

iptables -t nat -I POSTROUTING -s 192.168.9.0/24 -o eth0 -j MASQUERADE

b. 开放pptp端口1723,允许转发

iptables -I INPUT 7 -m state --state NEW -p tcp --dport 1723 -j ACCEPT
iptables -P FORWARD ACCEPT

c. 保存iptables规则

service iptables save

6. 阿里云ECS可能还需要几项特别设置

a. 如果windows下连接pptp,如果遇到519错误,是因为缺少内核模块 ip_nat_pptp ,运行modprobe ip_nat_pptp 即可加载,但最好设置开机自动加载:新建文件 /etc/modules-load.d/ip_nat_pptp.conf 内容为如下一行

ip_nat_pptp

b. 可能还要重建ppp文件:

rm /dev/ppp
mknod /dev/ppp c 108 0

c. 阿里云机器还要修改mtu:修改文件/etc/ppp/ip-up,在exit 0 前加入一行:

ifconfig $1 mtu 1500

d. 阿里云控制台里的安全区域,看上去跟防火墙或iptables类似的东西,要开启相应的端口。

7. 启动服务,加载相关匹配文件等

sysctl -p
systemctl start pptpd

或者单粗暴的reboot重启机器也行

CentOS服务器安装后一系列配置参考(CentOS 6.x/CentOS 7)

iptables

CentOS 官方iptables规则:开启ssh端口,允许icmp/ping,不接受其它连接;拒绝FORWARD转发。这是科学的,如果有需要开放的端口再做手工开启。

如果没有默认规则文件 /etc/sysconfig/iptables ,可见自行yum安装 yum install iptables-services,然后 service iptables restartsystemctl restart iptables 加载默认规则,通过iptables命令修改过规则后  service iptables save 保存规则。默认配置文件如下,可参考使用。

# Generated by iptables-save v1.4.7 on Sat Dec 17 10:11:38 2011
# Manual customization of this file is not recommended.
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

sshd: 端口

ssh的服务器端,重要性不需多讲。

其主配置文件 /etc/ssh/sshd_config  (注意不是 /etc/ssh/ssh_config),下面sshd相关配置都在该文件上修改

改一下监听端口,虽然刻意扫描你,还是没的跑,但起码隐藏了一点点。大概13行,Port指令,默认是注释掉的,取消注释,将其后端口号22改成你想要改的,下面以12345为例。注意不要超过65535,不要使用其它已监听端口

Port 12345

[至关重要] iptables里打开相关端口,不要断开当前连接、重启sshd 服务,保存iptables配置到磁盘(以备下次开机时自动生效)

# iptables -I INPUT 4 -m state --state NEW -p tcp --dport 12345 -j ACCEPT

再开一个ssh客户端测试连接,确保改后的端口可以连接。(即使已改过端口,当前连接也还是会保持的)

指定自定义端口的ssh连接: ssh -p 12345  username@your.host.ip

sshd: 用户白名单

限制一下允许通过ssh远程登录的用户名(白名单),可以在文件结尾增加如下一行

AllowUsers user1 user2 user3

其中的user1 user2 user3 是允许通过ssh远程登录的用户,多个用户使用空格分隔。当然,你要事先创建这些普通用户,不然下次就连不上了。

sshd: 禁止root用户直接通过ssh登录

被暴力破解root密码是一件经常遇到的事情,所以严重推荐禁止掉,尤其是使用默认22端口时。增加下一行配置

PermitRootLogin no

日期时间的自动同步

首先确保rdate已安装,使用美国授时中心服务器,加入到crontab,每周日同步一次

# crontab -e
* * * * 0 rdate -s time.nist.gov

详细可参考 linux下日期时间自动同步设置(rdate,ntpdate两种方法)

yum源

开启epel源

CentOS官方yum默认包含了epel-release的yum源,直接安装即可。

yum install epel-release

排除某些rpm包

编辑yum主配置文件 /etc/yum.conf ,在[main] 节点里增加一行exclude指令。比如启用第三方内核时,运行yum更新时,若kernel*有更新,默认内核就会变成官方内核;为避免这个麻烦,可以把kernel*包从yum更新中排除掉。排除多个包可以空格隔开列在同一行,示例如下

exclude=kernel* httpd*

nginx

如果使用nginx的话,可以使用nginx的官方yum源。当然里面只有nginx,没有别的包,所以不会破坏centos原装包的依赖关系。创建/etc/yum.repos.d/nginx.repo内容如下

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key

详细参考nginx官方yum源说明 

 

SELinux

这货很强悍,然而有时也很麻烦,尤其是不够熟的时候,可以考虑关闭,配置在文件 /etc/sysconfig/selinux 中设置 SELINUX=disabledSELINUX=permissive

Grub 2 及第三方内核相关的设置

CentOS 7的Grub2 改变有点大,设置被拆到个文件中,比如 /boot/grub2/grub.cfg, /etc/default/grub/boot/grub2/grubenv 等。注意不要手工编辑grub.cfg。

如果使用的第三方内核,要注意指定默认启动的内核。默认情况下/etc/default/grub里设置了 GRUB_DEFAULT=saved ,要通过/boot/grub2/grubenv指定,但也不要手工修改该文件,而是使用 grub2-set-default 命令的设置。如下三行 1) 列出grub.cfg里的menuentry名称,  2) 设置默认项 grub2-set-default   3) 查看grubenv确认默认项saved_entry

grep "^menuentry" /boot/grub2/grub.cfg |cut -d "'" -f2
grub2-set-default "{menuentry 名称}"
grub2-editenv list

Grub2 参考CentOS 官方文档: https://wiki.centos.org/zh/HowTos/Grub2

开启BBR

实体机/KVM/Xen的VPS下,使用第三方内核开启BBR

本节适用实体机或KVM、Xen虚拟化下的VPS(此方法不支持OpenVZ)。CentOS7官方内核较老,不支持BBR,可使用 ELRepo Project 预编译的内核。其中rpm包url可能会不定期更新,以官方最新为准。(另CentOS6可使用Fedora Copr上项目kernel-el6/

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-ml -y

参考上节Grub2默认内核做设置,完成后重启,确认内核生效无误。然后再继续。这里最好。

echo 'net.core.default_qdisc=fq' | tee -a /etc/sysctl.conf
echo 'net.ipv4.tcp_congestion_control=bbr' | tee -a /etc/sysctl.conf
sysctl -p

完成后,下面命令确认生效

sysctl net.ipv4.tcp_available_congestion_control
sysctl -n net.ipv4.tcp_congestion_control
lsmod | grep bbr

其输出应该是 net.ipv4.tcp_available_congestion_control = bbr cubic renobbr 及 tcp_bbr 16384 0 (后一行输出的数字可能不同)。

至此bbr启用完成。但,强烈推荐,参考前节“排除某些rpm包”,把kernel* 包从yum更新中排除掉;否则,下次yum更新后,grub默认内核将换成centos官方内核,bbr就没了。

详细可参看 https://www.vultr.com/docs/how-to-deploy-google-bbr-on-centos-7

魔改版BBR(OpenVZ VPS下可用)

基于OpenVZ的 VPS上面方法不支持,得使用魔改版BBR,要求CentOS 7以上(事实上CentOS 6(x64)也可以,但必须升级glibc),一键安装脚本,照提示操作即可。

curl https://raw.githubusercontent.com/linhua55/lkl_study/master/get-rinetd.sh | bash

运行中会提示输入端口号,如有多个端口号用空格隔开(不支持端口段)。如需要增减端口,可修改配置文件 /etc/rinetd-bbr.conf

详细参看作者的github项目

MySQL-Server

配置参考 一份生产环境下MySQL服务配置优化参考样本 (请按硬件及负载酌情修改)

备份脚本,加入到crontab中,定时执行。注意其中备份存储目录、待备份数据库列表、及备份用户账号密码

#!/bin/bash
# Program:
#      auto backup mysql database
# History:
# 2012/05/14    fengyqf First release
#backup folder, with the last slash "/"
backup_folder="/home/user/backup/mysql/"
filename=`date +_%Y%m%d_%N`

for db in db1 db2 db3
do
mysqldump -hlocalhost --opt -e --max_allowed_packet=1048576 --net_buffer_length=16384 -uroot -pYourMysqlRootPassword $db |gzip > $backup_folder$db$filename.sql.gz
done

其它置参考

ulimit, 文件描述符 http://www.path8.net/tn/archives/2024

sysctl, 内核优化 #TODO#

 

供centos用的yum源(redhat, scientific)/不定期更新

简介

redhat/centos系列是追求稳定性的改造版,官方收纳的软件包很有限。实际使用中,我们要么自己编译,要么使用第三方编译好的二进制版;为简便起见我们常常选择后者。第三方yum源纳入包的标准不一,有些追求稳定,像epel,有些则求新。对于求稳定的朋友,建议安装过需要的软件后,卸载(可以将.epo文件改名备份)这些第三源,以免造成系统包被替换。像epel这样连centos官方都推荐的源,还有nginx官方源这种只有单一少数几个包的源,可以长期保留。

epel

这个不用多说了。

sclo(sclo-rh)

redhat/centos本身附带的一个源,不过默认没有安装。  yum install centos-release-scl

它包含了一系列版本较新的软件包,将安装在/opt/rh目录中,因此可以不影响系统本身的包。比如python, nodejs, perl, go等,可参看 http://mirrors.ustc.edu.cn/centos/7/sclo/x86_64/rh/Packages/r/

elrepo

elrepo 支持centos/redhat 5,6,7系列,大量的内核模块源,如hfsplus支持等。

在yum.repo配置里,部分选项默认没有启用,需要自行启用

http://elrepo.org/tiki/About

li.nux.ro/nux

目前有rhel/centos6及7两个版本的rpm/yum源,它需要依赖epel源。

使用说明,简洁,不啰嗦,http://li.nux.ro/repos.html

rpmfusion

(待补充)

atrpms

据说atrpms会替换系统包,毕竟rhel/epel的版本经常太老

更多参考CentOS官方wiki文档 https://wiki.centos.org/zh/AdditionalResources/Repositories

li.nux.ro/nux: 值得使用的一个redhat el7/centos7的rpm/yum源

之前在centos 6下一直用epel+rpmfusion源,但至今(2014-09-07),rpmfusion仍没有推出centos7/rhel7下的源,所以安装软件是痛苦的事情。

对于缺少yum的软件,我习惯是在 http://rpm.pbone.net/ 上手工查找,然后找最近似改造版的下载。例如在centos下,首选找同版本centos或redhat el包,没有的话找最近似的fedora版本下载,再没有,使用前一版本的centos/rhel包,或者fedora包。

也就是在昨天或者说今天凌晨,在通过 http://rpm.pbone.net/ 手工解决依赖安装smplayer/mplayer 的过程中,发现了这个源,因为有好几个包都是之这个域名下下载的,所以直接访问了一下,竟然是一个yum源,维护者是很积极的。在此表示由衷感谢!

li.nux.ro 上目前有rhel/centos6及7两个版本的rpm/yum源,它需要依赖epel源,所以要首先配置epel源。不过正常情况下大家都会装上epel源的吧,epel是连centos官方都推荐的优质源。

使用说明,很简洁,丝毫不啰嗦,http://li.nux.ro/repos.html

另外,atrpms这个源也是值得推荐的,没有比较这两个源之间的重复度或冲突情况。对于求稳定的朋友,建议安装过需要的软件后,卸载这些第三源,以免造成系统包被替换(或许有这个可能,据说atrpms会替换系统包,毕竟rhel/epel的版本经常太老)

centos 6下通过yum安装apache模块mod_h264_streaming, mod_flvx, mod_xsendfile等

centos因为上游redhat ep的原因,自带的包相对少一些,centos官方也建议可以安装一些第三方的yum源,如rpmfusion,epel等,本文所说的apache模块,rpmfusion,epel是支持的。

安装epel, rpmfusion源。

参看rpmfusion官方的“重要提示” (http://rpmfusion.org/Configuration) 说,安装rpmfusion前要先启用epel源

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

yum makecache

rpm -ivh http://download1.rpmfusion.org/free/el/updates/6/i386/rpmfusion-free-release-6-1.noarch.rpm

rpm -ivh http://download1.rpmfusion.org/nonfree/el/updates/6/i386/rpmfusion-nonfree-release-6-1.noarch.rpm

h264模块是非自由(nonefree)软件,要启用nonefree源才可以。不是“非免费”,不收钱的~~

上面的rpm文件,可能会随着新版本的出现而有所改变,因此,请参看其官方的安装说明操作。

装过上述两个yum源后,然后直接yum install即可

yum install mod_xsendfile

yum install mod_h264_streaming

yum install mod_flvx

 

 

 

 

centos/redhat/fedora下rpm安装nload监测网卡流量/非手工编译/linux实时带宽监控

nload 是linux下简单易用的带宽流量监测工具,基于字符界面的动态图形显示网卡当前的流量。

不过centos官方源里并没有它,不能直接使用yum安装。我们可以到第三方rpm发布平台上下载,推荐使用 下面的源,它发布多个rpm包

http://pkgs.repoforge.org/nload/

安装方法:

1. 找合适版本:截止本文写作时间2013-6-7最新版本为0.7.4,centos6对应的版本是 el6, 32位系统使用i686的。我的linode vps, 32位 centos6,选择的是nload-0.7.4-1.el6.rf.i686.rpm

2. 切换到root用户直接运行rpm安装,即

rpm -ivh http://pkgs.repoforge.org/nload/nload-0.7.4-1.el6.rf.i686.rpm

3. 切回到普通用户,运行nload,即看到基于字符的动态图形,很简洁。按方向键切换下一块网卡。

linux/centos上安装配置gitosis(git服务器端)

gitosis长期没有更新了,换gitolite吧,或gitlab也行

[个人按本文方法是可以安装gitosis的,但在客户端git clone总是失败,也无法成功创建repo,所以个人改用gitolite,感觉比gitosis简单一些,而且一安装就可以正常工作]

安装gitosis,因为centos/redhat官方源不带gitosis,所以需要先添加EPEL软件仓库,或者手工下载gitosis的 rpm包及依赖包并手工安装。

gitosis rpm包安装后,会自动创建一个gitosis用户,为了简化其见,手工对其改名,改成git,涉及以下四个文件/etc/passwd, /etc/shadow, /etc/group, /etc/gshadow . 默认情况下,git用户(即改名前的gitosis用户)的home目录为 /var/lib/gitosis

这是git用户是作为git的管理账号之用。因为此时git用户没有设置登录密码,我们也不需要其密码,而是使用ssh密钥登录。但对gitosis的设置还是使用git用户登录比较方便。可以切换到root用户,然后 su git .

为git用户设置ssh密钥登录。上传一个ssh公钥,建议使用你的常用账号下的ssh公钥。并将其加入git用户的authorized_keys

sh-4.1$ cd ~/.ssh/
sh-4.1$ cat id_rsa.pub >>authorized_keys

确认可以使用公钥通过ssh登录。关于使用公钥自动登录ssh主机,更多可以参看这里 ssh无密码登入设置(完全版)/linux下免输入密码ssh登录

下面初始化gitosis . 要使用git用户执行下面命令

gitosis-init < [path of your id_rsa.pub]

结果大致如下

sh-4.1$ gitosis-init < id_rsa.pub
Initialized empty Git repository in /var/lib/gitosis/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /var/lib/gitosis/repositories/gitosis-admin.git/
sh-4.1$ ls
gitosis  repositories

可以看到被创建的两个目录,gitosis与repositories .

运行 git clone git@localhost:repositories/gitosis-admin.git 即可把git管理配置文件的目同步到本地。需要修改配置,就在本地修改,然后git commit;git push同步到服务器上即可以即时生效了

关于gitosis资料,参考 http://linux-wiki.cn/wiki/zh-hans/%E9%85%8D%E7%BD%AEgitosis%EF%BC%88%E4%BB%A5CentOS%E4%B8%BA%E4%BE%8B%EF%BC%89

http://git-scm.com/book/zh/服务器上的-Git-Gitosis

http://git-scm.com/book/zh/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E5%9C%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E9%83%A8%E7%BD%B2-Git

手把手教你在centos下编译安装配置高性能web服务器环境nginx+php(fast-cgi)+mysql等/适合小内存vps使用

本文为实战操作过程的全程记录,采用一台新创建的linode vps(512M内存)环境,操作系统采用centos 6.2,以从源码编译的方式安装配置nginx, php(fast-cgi模式)web环境。

我们的目标:配置一台高性能、安全的web服务器。

继续阅读