linux软件安装手册

本文记录了在linux CentOS6.8系统下,各种软件的安装配置过程,以供今后参考查阅。

打算把之前做的练手项目发布在线上,在阿里云申请了一台服务器,申请过程这里先略过了,今后有时间在写。

为了更熟悉linux系统以及linux命令,我申请的是空白的系统,里面没有安装任何软件,需要手动配置安装,这里记录了安装过程,以供将来查阅。

最终,由于阿里云的备案条件变更,新开的服务器在3个月内不能备案,导致项目最终上线失败,不过用ip直接访问服务器并测试了一部分功能是可以用的。等备案通过后,将再次进行上线测试。

安装JDK

  1. 从官网下载jdk1.8

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

将安装包jdk-8u201-linux-x64.rpm复制到/opt/目录下, 可以通过xftp软件

  1. 安装rpm包
1
2
$ cd /opt/
$ sudo rpm -ivh jdk-8u201-linux-x64.rpm
  1. 配置环境变量
1
$ sudo vim /etc/profile 

在文档末尾添加

1
2
3
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
  1. 保存退出后执行,验证
    1
    2
    3
    4
    5
    6
    7
    8
    $ source /etc/profile
    $ java -version

    [shawn@iZuf6g1m7s7snog7015pz9Z ~]$ java -version
    java version "1.8.0_201"
    Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
    Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

安装Tomcat

  1. 从官网下载tomcat8.5.38

https://tomcat.apache.org/download-80.cgi

将安装包apache-tomcat-8.5.38.tar.gz放到/opt/目录下

  1. 解压安装包
1
2
$ cd /opt/
$ sudo tar -zxvf apache-tomcat-8.5.38.tar.gz
  1. 编辑server.xml
1
$ sudo vim /opt/apache-tomcat-8.5.38/conf/server.xml

添加URIEncoding,解决乱码问题

1
2
3
4
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />

  1. 开启防火墙

阿里云通过添加安全组规则开放8080端口

也可以手动开启防火墙,

在centos6.8中,防火墙在iptables中配置,centos7以上版本通过firewall配置

1
2
3
4
5
6
7
$ sudo vim /etc/sysconfig/iptables

# 添加
-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT

# 重启防火墙
$ sudo service iptables restart
  1. 启动tomcat
1
2
$ cd /opt/apache-tomcat-8.5.38/bin/
$ ./startup.sh
  1. 外接访问测试
  • 浏览器中输入阿里云公网ip:8080访问tomcat

安装Maven

  1. 从官网下载maven

https://maven.apache.org/download.cgi

将安装包apache-maven-3.6.0-bin.tar.gz复制到/opt/目录下

  1. 解压安装包

    1
    2
    $ cd /opt/
    $ sudo tar -zxvf apache-maven-3.6.0-bin.tar.gz
  2. 配置环境变量

    1
    $ sudo vim /etc/profile

    在profile中添加

    1
    2
    3
    4
    export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64
    export MAVEN_HOME=/opt/apache-maven-3.6.0
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
  3. 保存退出后执行,验证

    1
    2
    $ sudo source /etc/profile
    $ sudo mvn -version
1
2
3
4
5
6
7
[shawn@iZuf6g1m7s7snog7015pz9Z java]$ mvn -v
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: /developer/apache-maven-3.6.0
Java version: 1.8.0_201, vendor: Oracle Corporation, runtime: /usr/java/jdk1.8.0_201-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-696.6.3.el6.x86_64", arch: "amd64", family: "unix"

安装Nginx

Nginx是什么

Nginx是一款轻量级web服务器,也是一款反向代理服务器

用途

  • 直接支持rails和PHP的程序
  • HTTP反向代理服务器
  • 负载均衡服务器
  • 邮件代理服务器
  • 帮助实现前端动静分离

特点

  • 高稳定
  • 高性能
  • 资源占用少
  • 功能丰富
  • 模块化结构
  • 支持热部署

安装步骤

  1. 安装gcc
  2. 安装pcre
  3. 安装zlib
  4. 安装openssl
  • 综合安装以上4个依赖
    1
    $ yum -y install gcc pcre-devel zlib zlib-devel openssl openssl-devel
  1. 下载源码包

在官网选择稳定版本下载

https://nginx.org/en/download.html

  • 源码包下载至/opt/,并解压缩
    1
    2
    $ cd /opt/
    $ sudo tar -zxvf nginx-1.14.2.tar.gz
  1. Nginx安装
  • 进入nginx目录后执行./configure
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    $ cd nginx-1.14.2/
    $ sudo ./configure
    $ sudo make
    $ sudo make install
    # 查询Nginx安装位置,默认安装在/usr/local/nginx
    $ whereis nginx
    # 进入nginx安装位置,找到sbin/,执行./nginx
    $ cd /usr/local/nginx
    $ cd sbin/
    $ ./nginx

    # 查看是否开启
    $ ps aux | grep nginx

    root 8238 0.0 0.0 23968 820 ? Ss 21:04 0:00 nginx: master process ./nginx
    nobody 8239 0.0 0.0 24388 1400 ? S 21:04 0:00 nginx: worker process
    root 8248 0.0 0.0 103328 860 pts/2 S+ 21:04 0:00 grep nginx

  1. 增加防火墙访问权限

    1
    $ sudo vim /etc/sysconfig/iptables

    增加以下内容, 开启80端口

    1
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

    保存退出,重启防火墙

    1
    $ sudo service iptables restart
  2. 验证

浏览器中输入公网的ip,显示nginx页面


Nginx常用命令

  • 测试配置文件

安装路径下的 /nginx/sbin/nginx -t

  • 启动命令

安装路径下的 /nginx/sbin/nginx

  • 停止命令

    1
    2
    安装路径下的 /nginx/sbin/nginx -s stop
    或者是 nginx -s quit
  • 重启命令

安装路径下的 /nginx/sbin/nginx -s reload

  • 查看进程命令
1
$ ps -ef | grep nginx
  • 平滑重启
1
kill -HUP [Nginx主进程号(即查看命令查看到的PID)]

Nginx虚拟域名配置及测试验证

  1. 编辑nginx.conf
    1
    $ sudo vim /usr/local/nginx/conf/nginx.conf
    找到another virtual host using mix of IP-,

增加 include vhost/*.conf; ,保存并退出

1
2
3
4
5
6
7
8
9
##########################vhost#####################################
include vhost/*.conf;

# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;

  • 配置域名转发

首先配置host文件,设置完成后重启浏览器

1
2
3
4
$ sudo vim /etc/hosts
# 添加对应的域名及ip
本机ip www.wuleshen.top
# 保存退出
  1. 创建域名转发配置文件

在/usr/local/nginx/conf目录新建vhost文件夹

1
2
$ cd /usr/local/nginx/conf
$ mkdir vhost
  1. 创建域名转发配置文件

将网址映射到本地的8080端口,即tomcat

1
2
$ cd vhost
$ sudo vim www.wuleshen.top.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 添加以下内容
server {
default_type 'text/html';
charset utf-8;
listen 80;
autoindex on;
server_name www.wuleshen.top;
access_log /usr/local/nginx/logs/access.log combined;
index index.html index.htm index.jsp index.php;
#error_page 404 /404.html;
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}

location / {
proxy_pass http://127.0.0.1:8080;
add_header Access-Control-Allow-Origin *;
}
}
  1. 启动(重启)验证
  • 启动

    1
    $ ${nginx}/sbin/nginx
  • 重启

    1
    $ ${nginx}/sbin/nginx -s reload

${nginx}代表在系统中安装的路径,例如/usr/local/nginx

  1. 访问验证

http://localhost:80

安装MySQL

  1. 从官网获得yum库
1
2
3
4
5
#检查是否已安装
$ sudo rpm -qa | grep mysql-server

$ cd /usr/local/src
$ sudo wget https://dev.mysql.com/get/mysql80-community-release-el6-2.noarch.rpm
  1. 安装yum包

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $ sudo rpm -Uvh mysql80-community-release-el6-2.noarch.rpm
    # 查看列表
    $ yum repolist all | grep mysql

    # 如果安装5.7旧版本可以配置如下
    $ sudo yum-config-manager --disable mysql80-community
    $ sudo yum-config-manager --enable mysql57-community

    # 如果yum-config-manager命令找不到,需要安装yum工具
    $ sudo yum -y install yum-utils

    再次查询yum repolist all | grep mysql, 查询到需要的版本已经enabled

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    [shawn@iZuf6g1m7s7snog7015pz9Z src]$ yum repolist all | grep mysql
    mysql-cluster-7.5-community MySQL Cluster 7.5 Community disabled
    mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community - disabled
    mysql-cluster-7.6-community MySQL Cluster 7.6 Community disabled
    mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community - disabled
    mysql-connectors-community MySQL Connectors Community enabled: 83
    mysql-connectors-community-source MySQL Connectors Community - disabled
    mysql-tools-community MySQL Tools Community enabled: 74
    mysql-tools-community-source MySQL Tools Community - Sourc disabled
    mysql-tools-preview MySQL Tools Preview disabled
    mysql-tools-preview-source MySQL Tools Preview - Source disabled
    mysql55-community MySQL 5.5 Community Server disabled
    mysql55-community-source MySQL 5.5 Community Server - disabled
    mysql56-community MySQL 5.6 Community Server disabled
    mysql56-community-source MySQL 5.6 Community Server - disabled
    mysql57-community MySQL 5.7 Community Server enabled: 309
    mysql57-community-source MySQL 5.7 Community Server - disabled
    mysql80-community MySQL 8.0 Community Server disabled
    mysql80-community-source MySQL 8.0 Community Server - disabled

  2. 安装mySql

    1
    $ sudo yum install mysql-community-server

默认配置文件路径:

  • 配置文件:/etc/my.cnf
  • 日志文件:/var/log/var/log/mysqld.log
  • 服务启动脚本:/usr/lib/systemd/system/mysqld.service
  • socket文件:/var/run/mysqld/mysqld.pid
  1. 字符集配置
1
2
3
4
5
$ vim /etc/my.cnf

# 在[mysqld]节点下添加
character-set-server=utf8mb4
# 保存退出
  1. 自启动配置
1
2
3
4
5
6
7
$ chkconfig mysqld on
# 如果2-5位为on即可
$ chkconfig --list mysqld

[shawn@iZuf6g1m7s7snog7015pz9Z etc]$ sudo chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

  1. 防火墙配置
1
2
3
4
5
6
7
$ sudo vim /etc/sysconfig/iptables

# 添加
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

# 重启
$ sudo service iptables restart
  1. 启动mysql
    1
    $ sudo service mysqld start

安装FTP工具

选择vsftpd作为ftp工具

  1. yum安装

    1
    2
    $ sudo yum remove vsftpd
    $ sudo yum -y install vsftpd
  2. 创建ftpfile文件
    此文件夹用于接受ftp上传的文件

    1
    2
    3
    4
    # 由用户选择装在哪里
    $ cd /
    $ sudo mkdir ftpfile
    $ cd ftpfile/
  3. 创建ftpfile用户

    1
    2
    3
    4
    5
    6
    //在指定目录下创建用户,并且设定不能登录
    $ sudo useradd ftpuser -d /ftpfile/ -s /sbin/nologin
    //将/ftpfile/的用户设置成ftpuser组的ftpuser用户
    $ sudo chown -R ftpuser.ftpuser /ftpfile/
    //设置用户密码
    $ sudo passwd ftpuser

    在这里创建一个index.html文件,内容随便写

  4. 配置vsftpd

    1
    $ sudo vim /etc/vsftpd/vsftpd.conf
  • 查找banner,修改成如下

    1
    2
    3
    4
    5
    6
    7
    # You may fully customise the login banner string:
    ftpd_banner=Welcome to my FTP service.

    local_root=/ftpfile
    anon_root=/ftpfile

    use_localtime=YES
  • 查找chroot_list节点,修改成如下

    1
    2
    3
    4
    chroot_list_enable=YES
    # (default follows)
    chroot_list_file=/etc/vsftpd/chroot_list

  • 查找anonymous_enable,修改为如下

    1
    2
    # Allow anonymous FTP? (Beware - allowed by default if you comment this out).
    anonymous_enable=NO
  1. 创建chroot_list
    1
    2
    $ cd /etc/vsftpd
    $ sudo vim chroot_list
  • 在chroot_list中添加ftpuser
    1
    ftpuser
  1. 重启vsftpd服务

    1
    $ sudo service vsftpd restart
  2. 使用PASV工作模式

  • 在设置/etc/vsftpd/vsftpd.conf中设置端口范围,为了让防火墙的设置可以更严格
    1
    2
    3
    pasv_enable=YES
    pasv_min_port=61001
    pasv_max_port=62000
  1. 设置防火墙iptables
    1
    $ sudo vim /etc/sysconfig/iptables
  • 在配置中添加
    1
    2
    3
    4
    5
    6
    7
    8
    # vsftpd
    -A INPUT -p TCP --dport 61001:62000 -j ACCEPT
    -A OUTPUT -p TCP --sport 61001:62000 -j ACCEPT

    -A INPUT -p TCP --dport 20 -j ACCEPT
    -A OUTPUT -p TCP --dport 20 -j ACCEPT
    -A INPUT -p TCP --dport 21 -j ACCEPT
    -A OUTPUT -p TCP --dport 21 -j ACCEPT
  • 重启防火墙
    1
    $ sudo service vsftpd restart
  1. 验证
  • 在浏览器中输入公网的ip地址ftp://ip地址,分别输入ftpuser用户名和密码登录
  • 在bash命令行输入ftp ip地址,分别输入ftpuser用户名和密码,dir查看ftp文件夹

安装git

  1. 下载安装包

https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz

或者

1
2
$ cd /opt/
$ sudo wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
  1. 安装依赖

    1
    yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker perl-ExtUtils-CBuilder cpio
  2. 解压安装包并编译

    1
    2
    3
    4
    5
    6
    7
    $ sudo tar -zxvf v2.9.5.tar.gz
    $ cd git-2.9.5

    # 编译安装到/usr/local
    $ sudo make prefix=/usr/local all

    $ sudo make prefix=/usr/local install
  3. 检验

    1
    2
    3
    4
    5
    $ git --version

    [shawn@iZuf6g1m7s7snog7015pz9Z git-2.9.5]$ git --version
    git version 2.9.5

  4. 配置git config

1
2
3
4
5
6
7
8
# 配置用户信息
$ git config --global user.name "ShawnWu"
$ git config --global user.email "[email protected]"

# 忽略系统换行符转换
$ git config --global core.autocrlf false

$ git config --global core.quotepath off
  1. 配置秘钥

    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
    33
    34
    35
    [shawn@iZuf6g1m7s7snog7015pz9Z git-2.9.5]$ ssh-keygen -t rsa -C "[email protected]"
    Generating public/private rsa key pair.
    Enter file in which to save the key (/usr/shawn/.ssh/id_rsa):
    Created directory '/usr/shawn/.ssh'.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /usr/shawn/.ssh/id_rsa.
    Your public key has been saved in /usr/shawn/.ssh/id_rsa.pub.
    The key fingerprint is:
    4e:df:d2:1a:b0:73:e5:47:d1:a9:2f:03:93:f1:37:9a [email protected]
    The key's randomart image is:
    +--[ RSA 2048]----+
    | |
    | ..|
    | . ...|
    | + .. |
    | S +.o.o |
    | o + =o.= .|
    | + = +E.. |
    | o + .o |
    | . |
    +-----------------+

    [shawn@iZuf6g1m7s7snog7015pz9Z git-2.9.5]$ ssh-add ~/.ssh/id_rda
    Could not open a connection to your authentication agent.

    [shawn@iZuf6g1m7s7snog7015pz9Z git-2.9.5]$ eval `ssh-agent`
    Agent pid 5303

    [shawn@iZuf6g1m7s7snog7015pz9Z git-2.9.5]$ ssh-add ~/.ssh/id_rsa
    Identity added: /usr/shawn/.ssh/id_rsa (/usr/shawn/.ssh/id_rsa)

    # 查看RSA公钥
    $ cat ~/.ssh/id_rsa.pub

  2. 将公钥添加到github