CentOS 新服务器环境设置与Web服务等搭建

此篇文章主要是记录本人平时开发或生产环境所常用软件的配置。

基于 CentOS7 进行配置

系统设置

系统信息查询

1
2
3
4
5
# uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)
uname -a

# 查看 Linux 发行版
cat /etc/redhat-release

内核

1
2
3
4
5
6
7
8
9
10
11
vim /etc/security/limits.conf
# 添加以下配置
* soft nofile 100001
* hard nofile 100002
root soft nofile 100001
root hard nofile 100002

vim /etc/systemd/system.conf
# 修改以下配置
DefaultTimeoutStopSec=30s
DefaultLimitNOFILE=1000000

配置静态 IP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 查看网络设备
ip addr show

# 根据设备名不同,修改配置文件
vi /etc/sysconfig/network-scripts/ifcfg-eth0
#############
IPADDR=192.168.1.100 # 静态 IP
GATEWAY=192.168.1.10 # 默认网关
NETMASK=255.255.255.0 # 子网掩码
DNS1=192.168.1.10 # DNS
DNS1=192.168.1.11
#############

# 配置完成,重启网络服务
service network restart

# 测试联通性
ping -c3 baidu.com

修改主机名称

1
2
3
4
5
# 查看当前主机名称
hostname

# 修改hostname文件,重启后可看效果
vim /etc/hostname

修改中文字符集

1
2
3
4
5
6
7
8
9
10
11
12
13
# 当前设置的字符集
locale
# 查看支持的字符集
locale -a

# 安装简体中文语言包
yum install kde-l10n-Chinese

vi /etc/locale.conf
##加下面内容到第一行,设置中文
LANG=zh_CN.UTF8

localectl set-locale LANG=zh_CN.UTF8

SSH免密码登录

YUM

系统默认的 yum 源速度很一般,为了快速下载安装,需要把 yum 源修改成国内的.

如果你是阿里云的机器,不需要此操作

  • 修改 yum 源

    1. 备份

      1
      mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    2. 使用阿里 yum 源,下载新的 *.repo 到 /etc/yum.repos.d/

      • CentOS 5

        1
        2
        curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
        curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-5.repo
      • CentOS 6

        1
        2
        curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
        curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
      • CentOS 7

        1
        2
        curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
        curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

      阿里云开源镜像站网易开源镜像站Webtatic 源(速度不如国内镜像,但软件能找到比较新的版本,如 PHP7)

      1
      2
      # 网易安装 epel 源
      yum install -y epel-release
    3. 生成缓存

      1
      yum clean all && yum makecache
  • 系统软件全面更新

    1
    yum update && yum upgrade
  • 其他命令

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # 查询 rpm 包的具体名称
    rpm -qa | grep nginx

    # 显示安装包文件列表
    rpm -q nginx-1.12.2-1.el7.x86_64
    # 查询 centos 版本
    rpm -q centos-release

    # 查看 yum 源
    yum repolist

    # 安装 yum 管理工具集
    yum -y install yum-utils
  1. 如果手动编译安装一些 yum 源没有的软件,那么一些必要的基础环境(gcc,gcc-c++,make等)需要尽量安装全.

    1
    yum groupinstall 'Development Tools'

效率工具

gpm

让命令行界面支持鼠标选中粘贴

1
2
3
4
5
6
7
sudo yum install gpm

# 开机启动
systemctl enable gpm

# 启动
systemctl start gpm

w3m

w3m是一个基于文本的网页浏览器,支持多种操作系统,在命令行终端可以很好的支持中文。

1
yum install w3m

Zsh

Zsh 是一款功能强大终端(shell)软件,既可以作为一个交互式终端,也可以作为一个脚本解释器。它在兼容 Bash 的同时 (默认不兼容,除非设置成 emulate sh) 还有提供了很多改进,例如:

  • 更高效
  • 更好的自动补全
  • 更好的文件名展开(通配符展开)
  • 更好的数组处理
  • 可定制性高
1
2
3
4
5
6
7
8
9
10
11
# 安装
yum install zsh

# 查看你的所有 shell,找到 zsh 的目录
chsh -l

# 设置 shell, 从上面找到的
chsh -s /bin/zsh

# 之后重新登录 shell,查看当前是否正确
echo $SHELL

oh-my-zsh

一个管理 zsh 配置的第三方扩展.让你使用 zsh 更简单.不用理会繁杂的配置.

1
2
3
4
5
6
7
8
9
10
11
# 通过 curl 安装
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

# 通过 wget 安装
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

# 以上两者选其一

# 修改你的 $HOME/.zshrc 文件,添加你喜欢的插件和主题,这里是示例
plugins=(git bundler osx rake ruby)
ZSH_THEME="robbyrussell"

bullet-train.zsh

oh-my-zsh 的主题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 下载主题放到 $ZSH_CUSTOM/themes/ 目录中

# 修改 zshrc 文件
# zsh 状态条显示类型与顺序
ZSH_THEME="bullet-train"
BULLETTRAIN_PROMPT_ORDER=(
context
time
status
dir
git
hg
cmd_exec_time
)

需要安装 powerline

powerline

一个 vim 的状态栏插件,但是也提供了其他的应用 zsh, bash, tmux, IPython, Awesome and Qtile

https://powerline.readthedocs.io/en/latest/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 使用 python pip 安装
pip install powerline-status

# 安装字体
# 如果你使用的终端本身就支持 powerline 字体,那么你就不需要安装

# 首先确保你有 fontconfig,CentOS 应该默认是没有的,需要安装
yum install fontconfig

# 下载字体
wget https://github.com/powerline/powerline/raw/develop/font/PowerlineSymbols.otf
wget https://github.com/powerline/powerline/raw/develop/font/10-powerline-symbols.conf

# 安装
mv PowerlineSymbols.otf ~/.fonts/
fc-cache -vf ~/.fonts/
mv 10-powerline-symbols.conf ~/.config/fontconfig/conf.d/

编辑你的 zshrc 文件,添加如下配置(针对 shell 为 zsh 的)

1
2
powerline-daemon -q
. /usr/lib/python2.7/site-packages/powerline/bindings/zsh/powerline.zsh

Vundle.vim

vim 的插件管理器

初始安装

1
git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

修改 vimrc 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
set nocompatible              " 去除VI一致性,必须
filetype off " 必须

" 设置包括vundle和初始化相关的runtime path
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" 让vundle管理插件版本,必须
Plugin 'VundleVim/Vundle.vim'
Plugin 'powerline/powerline', {'rtp': 'powerline/bindings/vim/'}

call vundle#end() " 必须
filetype plugin indent on " 必须 加载vim自带和插件相应的语法和文件类型相关脚本

运行 vim 再运行 :PluginInstall 来安装插件

或者通过命令行直接安装 vim +PluginInstall +qall

这里使用了 powerline/powerline 插件,需安装 powerline,上一步有提到.

vim-airline && vim-airline-themes

vim 状态栏显示增强插件

1
2
3
# 使用 vundle 安装
Plugin 'vim-airline/vim-airline'
Plugin 'vim-airline/vim-airline-themes'
1
2
3
4
5
" 在 vimrc 中配置使用
let g:airline_theme='molokai'

" 如果安装了 powerline,可以优化显示
let g:airline_powerline_fonts = 1

编程开发

Golang

1
2
3
4
5
6
7
8
9
yum install -y golang

# 使用 go get 安装包一般会失败(有墙)
# 解决方法如下
# 可使用命令 go env 查看 GOPATH
mkdir -p $GOPATH/src/golang.org/x/
cd $GOPATH/src/golang.org/x/
git clone https://github.com/golang/net.git net
go install net

Golang 官方网站

Python 3.*

CentOS7 内置了 Python 2.7.5,如果你不是拿它作为研究或开发语言的话,此版本够用.如果想要安装 3 以上版本,那就需要从Python官网手动下载编译了.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# python 编译基础软件安装
yum install zlib-devel bzip2-devel openssl-devel ncurese-devel

# 下载最新的 3.6.1
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz

# 解压
tar -zxvf Python-3.6.1.tgz

# 编译
cd Python-3.6.1
./configure --prefix=/usr/local/python3
make && make install

# 新建 Python, pip 软连接
ln -s /usr/local/python3/bin/python3.6 /usr/local/bin/python3
ln -s /usr/local/python3/bin/pip3.6 /usr/local/bin/pip3

# 查看版本
python3 --version

MongoDB

添加 yum 源,新增文件 /etc/yum.repos.d/mongodb-org-4.0.repo

1
2
3
4
5
6
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 安装
yum install -y mongodb-org

# 启动
systemctl start mongod.service

# 停止
systemctl stop mongod.service

# 重启
systemctl restart mongod.service

# 开机启动
systemctl enable mongod.service

更多参考

Redis

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 直接 yum 安装
yum install -y redis

# 启动
systemctl start redis.service

# 停止
systemctl stop redis.service

# 重启
systemctl restart redis.service

# 开机自启动
systemctl enable redis.service
Redis 配置

Nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
sudo yum install nginx

# 开机启动
systemctl enable nginx

# 启动
systemctl start nginx

# 修改配置文件
vim /etc/nginx/nginx.conf

# 查询是否开启80端口则
firewall-cmd --query-port=80/tcp
# 开启80端口
firewall-cmd --add-port=80/tcp


# SELinux 设置
# 查看 SELinux 模式
getenforce
# 查看 SELinux 状态与模式等
sestatus
# 关闭 SELinux
vim /etc/selinux/config
SELINUX=disabled
# 查看 nginx 是否受限制
ps -eZ | grep nginx
# 查看文件受限
ll -Zd

# 查看 nginx 打开最大文件数等
cat /proc/$(cat /run/nginx.pid)/limits

MySQL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 添加官方yum源
rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

# 安装官方源后,默认启用最新版本的 mysql 子库,目前 mysql5.7
# 查看所有 mysql 子库
yum repolist all | grep mysql

# 如果想要安装其他版本,要关闭不需要的子库并开启版本的子库,比如安装 mysql5.6
# 关闭5.7版本的子库
yum-config-manager --disable mysql57-community
# 开启5.6版本的子库
yum-config-manager --enable mysql56-community
# 如果没有 yum-config-manager 命令,需要安装
yum -y install yum-utils

# 安装 mysql5.6
yum install mysql-community-server
# 开启自动启动
systemctl enable mysqld.service
# 开启 mysql 服务
systemctl start mysqld.service
# 查看 mysql 运行状态
systemctl status mysqld.service
# 设置 mysql(仅限5.6版本)密码
mysql_secure_installation

# mysql5.7 安装后,会生成随机密码,以下命令查看密码
grep "temporary password" /var/log/mysqld.log
# 输入root密码进入 mysql 后修改密码
mysql> SET PASSWORD = PASSWORD('your_new_password');

参考官方 yum 安装指南

PHP

安装

需添加Webtatic 源

1
2
3
4
5
6
yum install php72w-fpm

# 开启 php-fpm 进程
systemctl start php-fpm.service
# 自启动
systemctl enable php-fpm.service

Composer

1
2
3
4
5
6
7
8
# 安装
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

# composer 安装好后,可设置为全局命令
mv composer.phar /usr/local/bin/composer

MongoDB 扩展

下载地址

1
2
3
tar zxvf mongodb-1.5.3.tgz
phpize
make && make install
0%