linux软件安装手册
本文记录了在linux CentOS6.8系统下,各种软件的安装配置过程,以供今后参考查阅。
打算把之前做的练手项目发布在线上,在阿里云申请了一台服务器,申请过程这里先略过了,今后有时间在写。
为了更熟悉linux系统以及linux命令,我申请的是空白的系统,里面没有安装任何软件,需要手动配置安装,这里记录了安装过程,以供将来查阅。
最终,由于阿里云的备案条件变更,新开的服务器在3个月内不能备案,导致项目最终上线失败,不过用ip直接访问服务器并测试了一部分功能是可以用的。等备案通过后,将再次进行上线测试。
安装JDK
- 从官网下载jdk1.8
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
将安装包jdk-8u201-linux-x64.rpm复制到/opt/目录下, 可以通过xftp软件
- 安装rpm包
1 | cd /opt/ |
- 配置环境变量
1 | sudo vim /etc/profile |
在文档末尾添加
1 | export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64 |
- 保存退出后执行,验证
1
2
3
4
5
6
7
8source /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
- 从官网下载tomcat8.5.38
https://tomcat.apache.org/download-80.cgi
将安装包apache-tomcat-8.5.38.tar.gz放到/opt/目录下
- 解压安装包
1 | cd /opt/ |
- 编辑server.xml
1 | sudo vim /opt/apache-tomcat-8.5.38/conf/server.xml |
添加URIEncoding,解决乱码问题
1 | <Connector port="8080" protocol="HTTP/1.1" |
- 开启防火墙
阿里云通过添加安全组规则开放8080端口
也可以手动开启防火墙,
在centos6.8中,防火墙在iptables中配置,centos7以上版本通过firewall配置
1 | sudo vim /etc/sysconfig/iptables |
- 启动tomcat
1 | cd /opt/apache-tomcat-8.5.38/bin/ |
- 外接访问测试
- 浏览器中输入
阿里云公网ip:8080
访问tomcat
安装Maven
- 从官网下载maven
https://maven.apache.org/download.cgi
将安装包apache-maven-3.6.0-bin.tar.gz复制到/opt/目录下
解压安装包
1
2cd /opt/
sudo tar -zxvf apache-maven-3.6.0-bin.tar.gz配置环境变量
1
sudo vim /etc/profile
在profile中添加
1
2
3
4export 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保存退出后执行,验证
1
2sudo source /etc/profile
sudo mvn -version
1 | [shawn@iZuf6g1m7s7snog7015pz9Z java]$ mvn -v |
安装Nginx
Nginx是什么
Nginx是一款轻量级web服务器,也是一款反向代理服务器
用途
- 直接支持rails和PHP的程序
- HTTP反向代理服务器
- 负载均衡服务器
- 邮件代理服务器
- 帮助实现前端动静分离
特点
- 高稳定
- 高性能
- 资源占用少
- 功能丰富
- 模块化结构
- 支持热部署
安装步骤
- 安装gcc
- 安装pcre
- 安装zlib
- 安装openssl
- 综合安装以上4个依赖
1
$ yum -y install gcc pcre-devel zlib zlib-devel openssl openssl-devel
- 下载源码包
在官网选择稳定版本下载
https://nginx.org/en/download.html
- 源码包下载至/opt/,并解压缩
1
2cd /opt/
sudo tar -zxvf nginx-1.14.2.tar.gz
- Nginx安装
- 进入nginx目录后执行./configure
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18cd 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
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
验证
浏览器中输入公网的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虚拟域名配置及测试验证
- 编辑nginx.conf找到
1
$ sudo vim /usr/local/nginx/conf/nginx.conf
another virtual host using mix of IP-,
增加 include vhost/*.conf;
,保存并退出
1 | ##########################vhost##################################### |
- 配置域名转发
首先配置host文件,设置完成后重启浏览器
1 | $ sudo vim /etc/hosts |
- 创建域名转发配置文件
在/usr/local/nginx/conf目录新建vhost文件夹
1 | $ cd /usr/local/nginx/conf |
- 创建域名转发配置文件
将网址映射到本地的8080端口,即tomcat
1 | $ cd vhost |
1 | # 添加以下内容 |
- 启动(重启)验证
启动
1
$ ${nginx}/sbin/nginx
重启
1
$ ${nginx}/sbin/nginx -s reload
${nginx}代表在系统中安装的路径,例如/usr/local/nginx
- 访问验证
安装MySQL
- 从官网获得yum库
1 | 检查是否已安装 |
安装yum包
1
2
3
4
5
6
7
8
9
10sudo 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
, 查询到需要的版本已经enabled1
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安装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 | vim /etc/my.cnf |
- 自启动配置
1 | chkconfig mysqld on |
- 防火墙配置
1 | sudo vim /etc/sysconfig/iptables |
- 启动mysql
1
sudo service mysqld start
安装FTP工具
选择vsftpd作为ftp工具
yum安装
1
2sudo yum remove vsftpd
sudo yum -y install vsftpd创建ftpfile文件
此文件夹用于接受ftp上传的文件1
2
3
4由用户选择装在哪里
cd /
sudo mkdir ftpfile
cd ftpfile/创建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文件,内容随便写
配置vsftpd
1
sudo vim /etc/vsftpd/vsftpd.conf
查找banner,修改成如下
1
2
3
4
5
6
7You 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
4chroot_list_enable=YES
(default follows)
chroot_list_file=/etc/vsftpd/chroot_list查找anonymous_enable,修改为如下
1
2Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO
- 创建chroot_list
1
2cd /etc/vsftpd
sudo vim chroot_list
- 在chroot_list中添加ftpuser
1
ftpuser
重启vsftpd服务
1
sudo service vsftpd restart
使用PASV工作模式
- 在设置/etc/vsftpd/vsftpd.conf中设置端口范围,为了让防火墙的设置可以更严格
1
2
3pasv_enable=YES
pasv_min_port=61001
pasv_max_port=62000
- 设置防火墙iptables
1
sudo vim /etc/sysconfig/iptables
- 在配置中添加
1
2
3
4
5
6
7
8vsftpd
-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
- 验证
- 在浏览器中输入公网的ip地址
ftp://ip地址
,分别输入ftpuser用户名和密码登录 - 在bash命令行输入
ftp ip地址
,分别输入ftpuser用户名和密码,dir查看ftp文件夹
安装git
- 下载安装包
https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
或者
1 | cd /opt/ |
安装依赖
1
yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker perl-ExtUtils-CBuilder cpio
解压安装包并编译
1
2
3
4
5
6
7sudo 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检验
1
2
3
4
5git --version
[shawn@iZuf6g1m7s7snog7015pz9Z git-2.9.5]$ git --version
git version 2.9.5配置git config
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将公钥添加到github