linux系统下开发环境安装与配置

安装系统环境

CentOS 6.8 64位

jdk版本

7u80 64位

Tomcat版本

Tomcat7

maven版本

Apache Maven 3.6.0

vsftpd版本

vsftpd-2.2.2-24.el6.x86_64

Nginx版本

nginx-1.14.2

mysql版本

mysql-server-5.1.73-8.el6_8.x86_64

git版本

git version 2.18.0

阿里源配置

1
2
3
4
5
6
#备份
[root@192 yum.repos.d]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#下载新的CentOS-Base.repo 到/etc/yum.repos.d/
[root@192 yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
#生成缓存
[root@192 yum.repos.d]# yum makecache

设置开机时关闭防火墙

1
[root@192 vsftpd]# chkconfig iptables off

jdk安装

下载

清理系统默认自带jdk

1
2
3
4
5
[root@192 yum.repos.d]# rpm -qa | grep jdk
java-1.6.0-openjdk-1.6.0.38-1.13.10.4.el6.x86_64
java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64
[root@192 yum.repos.d]# yum remove java-1.6.0-openjdk-1.6.0.38-1.13.10.4.el6.x86_64
[root@192 yum.repos.d]# yum remove java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64

授权

1
[root@192 soft]# chmod 777 jdk-7u80-linux-x64.rpm

安装

1
[root@192 soft]# rpm -ivh jdk-7u80-linux-x64.rpm

默认安装路径/user/java

jdk配置环境变量,编辑/etc/profile文件,末尾追加

1
2
3
4
#jdk
export JAVA_HOME=/usr/java/jdk1.7.0_80
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

使得/etc/profile文件立即生效

1
[root@192 apache-maven-3.6.0]# source /etc/profile

Tomcat安装

下载

解压

1
2

[root@192 soft]# tar -zxvf apache-tomcat-7.0.93.tar.gz -C /opt/module/

Tomcat配置环境变量,编辑/etc/profile文件,末尾追加

1
2
3
#tomcat
export CATALINA_HOME=/opt/module/apache-tomcat-7.0.93
export PATH=$PATH:$CATALINA_HOME/bin

使得/etc/profile文件立即生效

1
[root@192 apache-maven-3.6.0]# source /etc/profile

配置UTF-8字符集,进入Tomcat安装的conf文件夹,编辑server.xml文件,找到配置8080默认端口的位置,在xml节点末尾增加URIEncoding="UTF-8"

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

启动Tomcat,进入/opt/module/apache-tomcat-7.0.93/bin目录,执行./startup.sh

访问http://192.168.1.104:8080/

Maven安装

下载

解压

1
[root@192 soft]# tar -zxvf apache-maven-3.6.0-bin.tar.gz -C /opt/module/

Maven配置环境变量,编辑/etc/profile文件,末尾追加

1
2
3
#maven
export MAVEN_HOME=/opt/module/apache-maven-3.6.0
export PATH=$PATH:$MAVEN_HOME/bin

使得/etc/profile文件立即生效

1
[root@192 apache-maven-3.6.0]# source /etc/profile

验证

1
[root@192 apache-maven-3.6.0]# mvn -version

vsftpd安装

安装

1
[root@192 apache-maven-3.6.0]# yum -y install vsftpd

查看是否已安装

1
2
[root@192 apache-maven-3.6.0]# rpm -qa | grep vsftpd
vsftpd-2.2.2-24.el6.x86_64

默认配置文件/etc/vsftpd/vsftpd.conf

创建虚拟用户

根目录下创建ftp文件夹

1
2
[root@192 vsftpd]# cd /
[root@192 /]# mkdir ftpfile

添加匿名用户

1
[root@192 /]# useradd ftpuser -d /ftpfile/ -s /sbin/nologin

修改ftpfile权限

1
[root@192 /]# chown -R ftpuser.ftpuser /ftpfile/

重设ftpuser密码

1
[root@192 /]# passwd ftpuser

将刚刚新增的虚拟用户添加到此配置文件中

1
2
3
4
[root@192 ~]# cd /etc/vsftpd/
[root@192 vsftpd]# vim chroo_list
[root@192 bin]# cat /etc/vsftpd/chroo_list
ftpuser

编辑配置文件/etc/vsftpd/vsftpd.conf,末尾追加

1
2
3
4
local_root=/ftpfile
anon_root=/ftpfile
use_localtime=YES
anonymous_enable=no

登录验证的时候出现500提示,编辑/etc/selinux/config文件,设置SELINUX=disabled

1
[root@192 vsftpd]# vim /etc/selinux/config

如果还报500,执行

1
[root@192 vsftpd]# setsebool -P ftp_home_dir 1

设置开启启动vsftpd服务

1
[root@192 vsftpd]# chkconfig vsftpd on

访问ftp://192.168.1.104/

安装Nginx

下载

安装依赖gcc、pcre、zlib、openssl

1
[root@192 vsftpd]# yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

解压

1
[root@192 soft]# tar -zxvf nginx-1.14.2.tar.gz -C /opt/module/

编译安装

1
2
3
4
5
[root@192 nginx-1.14.2]# pwd
/opt/module/nginx-1.14.2
[root@192 nginx-1.14.2]# ./configure
[root@192 nginx-1.14.2]# make
[root@192 nginx-1.14.2]# make install

查看Nginx安装目录、版本

1
2
3
4
[root@192 nginx-1.14.2]# whereis nginx
nginx: /usr/local/nginx
[root@192 nginx-1.14.2]# /usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.14.2

测试配置文件nginx.conf的正确性

1
[root@192 nginx-1.14.2]# /usr/local/nginx/sbin/nginx  -t

启动Nginx

1
2
3
4
5
[root@192 nginx-1.14.2]# /usr/local/nginx/sbin/nginx
[root@192 nginx-1.14.2]# ps -ef | grep nginx
root 5606 1 0 01:02 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody 5607 5606 0 01:02 ? 00:00:00 nginx: worker process
root 5626 2868 0 01:09 pts/0 00:00:00 grep nginx

停止Nginx

1
[root@192 nginx-1.14.2]# /usr/local/nginx/sbin/nginx -s stop

访问http://192.168.1.104/

Nginx配置虚拟域名

配置虚拟域名映射

1
2
3
4
5
6
7
8
[root@192 vhost]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6


#centos
#192.168.1.104 www.imooc.com
127.0.0.1 www.imooc.com

测试

1
2
3
4
[root@192 sbin]# ping www.imooc.com
PING www.imooc.com (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.013 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.032 ms

编辑/usr/local/nginx/conf/nginx.conf文件,追加

1
2
###########################vhost##############################################
include vhost/*.conf;

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

/usr/local/nginx/conf/vhost目录下,新建域名转发www.mytest.com.conf配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@192 vhost]# cat /usr/local/nginx/conf/vhost/www.mytest.com.conf 
#Start www.mytest.com
server {
listen 80;
server_name www.mytest.com;

access_log /usr/local/nginx/logs/access.log combined;
index index.html index.htm index.php;

if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}

# send request back to apach
location / {
proxy_pass http://127.0.0.1:8080/;
}
}

访问www.mytest.com

Nginx配置静态资源转发

编辑/usr/local/nginx/conf/nginx.conf文件,追加

1
2
###########################vhost##############################################
include vhost/*.conf;

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

/usr/local/nginx/conf/vhost目录下,新建域名转发www.mytest.com.conf配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@192 vhost]# cat /usr/local/nginx/conf/vhost/www.mytest.com.conf 
#Start www.mytest.com
server {
listen 80;
server_name www.mytest.com;

access_log /usr/local/nginx/logs/access.log combined;
index index.html index.htm index.php;

if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}

# send request back to apach
location / {
root /ftpfile/;
}
}

mysql安装

安装

1
[root@192 ~]# yum -y install mysql-server

配置字符集,编辑/etc/my.cnf文件,追加

1
2
#utf8
default-character-set=utf8

设置mysql服务随系统自动启动

1
2
3
[root@192 ~]# chkconfig mysqld on
[root@192 ~]# chkconfig --list mysqld
mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

启动mysql服务

1
2
[root@192 ~]# service mysqld start
正在启动 mysqld: [确定]

登录,使用非密码登录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@192 mysql]# mysql -uroot 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

查看mysql的用户

1
2
3
4
5
6
7
8
9
10
11
mysql> select user,host,password from  mysql.user;
+------+---------------+----------+
| user | host | password |
+------+---------------+----------+
| root | localhost | |
| root | 192.168.1.104 | |
| root | 127.0.0.1 | |
| | localhost | |
| | 192.168.1.104 | |
+------+---------------+----------+
5 rows in set (0.00 sec)

删除匿名用户

1
2
mysql> delete from mysql.user where user='';
Query OK, 2 rows affected (0.00 sec)

刷新,立即生效

1
2
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

修改root密码

1
2
mysql> set password for root@localhost=password("000000");
Query OK, 0 rows affected (0.00 sec)

插入mysql新用户

1
2
mysql> insert into mysql.user(Host,User,Password) values("localhost","admin",password("000000"));
Query OK, 1 row affected, 3 warnings (0.01 sec)

查看用户权限

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
mysql> select * from mysql.user \G
*************************** 1. row ***************************
Host: localhost
User: root
Password: *032197AE5731D4664921A6CCAC7CFCE6A0698693
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
*************************** 2. row ***************************
Host: 192.168.1.104
User: root
Password:
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
*************************** 3. row ***************************
Host: 127.0.0.1
User: root
Password:
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
*************************** 4. row ***************************
Host: localhost
User: admin
Password: *032197AE5731D4664921A6CCAC7CFCE6A0698693
Select_priv: N
Insert_priv: N
Update_priv: N
Delete_priv: N
Create_priv: N
Drop_priv: N
Reload_priv: N
Shutdown_priv: N
Process_priv: N
File_priv: N
Grant_priv: N
References_priv: N
Index_priv: N
Alter_priv: N
Show_db_priv: N
Super_priv: N
Create_tmp_table_priv: N
Lock_tables_priv: N
Execute_priv: N
Repl_slave_priv: N
Repl_client_priv: N
Create_view_priv: N
Show_view_priv: N
Create_routine_priv: N
Alter_routine_priv: N
Create_user_priv: N
Event_priv: N
Trigger_priv: N
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
4 rows in set (0.00 sec)

查库,新建database数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
3 rows in set (0.01 sec)
mysql> create database mytest default character set utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| mytest |
| test |
+--------------------+
4 rows in set (0.00 sec)

本地用户赋予所有权限、给账号开通外网所有权限

1
2
3
4
mysql> grant all privileges on mytest.* to admin@'%' identified by '000000' with grant option;
Query OK, 0 rows affected (0.00 sec)
mysql> grant select,delete,create on mytest.* to admin@'192.168.1.104' identified by '000000' with grant option;
Query OK, 0 rows affected (0.00 sec)

导入sql文件

1
mysql> source /opt/module/mmall.sql

git安装

下载

解压

1
[root@192 ~]# tar -zxvf git-2.18.0.tar.gz -C /opt/module/

安装依赖

1
[root@192 ~]# yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker cpio

编译安装

1
[root@192 git-2.18.0]# make prefix=/usr/local/ install

验证

1
2
[root@192 ~]# git --version
git version 2.18.0

生成公私密钥对

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@192 ~]# ssh-keygen -t rsa -C "782125244@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
85:1e:ef:5a:33:ab:e7:79:a4:46:f6:8e:8f:7f:af:cd 782125244@qq.com
The key's randomart image is:
+--[ RSA 2048]----+
| |
| . |
| o . |
| . + |
| S . |
| .o . |
| o=+ |
| o+Bo .o |
| o=*=+..oE|
+-----------------+

复制公钥粘贴到码云或者GitHub上SSH公钥上

1
2
[root@192 .ssh]# cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA1sZvTnjQyVn7r2C7G9Q/WyVTTmJYqWhQdVfh3tBCUX8kJHaAcThwR4sl8ROz6xXl/22wbzlsKtfsiyr5zrV0Ifnq7KuCeNVNUYjOQCTn+ODaRzdj7DYC4Mz9BvxZAr0MDfSbgpLp6ZLAvZlkP3DioOPda7VnfJSAHGEYztOVPITj31pVnP1nXkPZRQlsTwImXEGJpuU+zOaurMShpaukrY/ONxWHR6xlG5M1FgOLdBvEnlbhOFoME1HHziI4/08Xw/NrHIUhvjZZgkAzWUo5NvYZLEwrUjOPtlVxHbYwBEtgBWRgWLFMfTlxQnEJVKzbwUDPLvZWac9WSpGLx5xiww== 782125244@qq.com

配置用户名、邮箱,提交时会引用

1
2
3
4
5
[root@192 mytest]# git config --global user.name "shenlibng"
[root@192 mytest]# git config --global user.email "782125244@qq.com"
[root@192 mytest]# git config --global core.autocrlf false
[root@192 mytest]# git config --global core.quotepath off
[root@192 mytest]# git config --global gui.encoding utf-8

开启防火墙配置

查看防火墙初始化配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@192 ~]# cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [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

开放Tomcat端口

重启生效防火墙

1
2
3
4
5
[root@192 ~]# service iptables restart
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
iptables:应用防火墙规则: [确定]

查看防火墙状态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@192 ~]# service iptables status
表格:filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
6 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
num target prot opt source destination