centos7 java web项目环境搭配

首先进行系统安装,此处不进行详细介绍,自行百度安装

一、配置ip地址信息(云服务器跳过次步)

1、进入/etc/sysconfig/network-scripts/

2、ls查看文件夹内文件

3、编写 ifcfg-ens****文件(本机为ifcfg-ens33)

cd /etc/sysconfig/network-scripts/
ls
vi ifcfg-ens33

4、配置ip信息(按i进入输入模式,按esc退出输入,输入:wq 进行保存退出,其他请自行百度学习vi操作)


TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static    #静态ip
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=3ae4be2f-7000-4147-8ac2-c5a4fa848f31
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.100   #ip地址
NETMASK=255.255.255.0  #子网掩码
GATEWAY=192.168.1.1    #网关
DNS1=202.99.160.68     #dns
DNS2=202.99.166.4
ZONE=public

5、重启网络,并进行测试 ping(按ctrl+c)

service network restart

ping www.baidu.com

详细页面

二、开启防火墙

1、查看防火墙是否打开

firewall-cmd --state

2、打开防火墙

systemctl start firewalld

3、设置防火墙开机启动

systemctl enable firewalld

4、添加端口并重启防火墙(开放常用端口,如:22、80、3306、8080、443、6379等)

firewall-cmd --zone=public --add-port=3306/tcp --permanent

firewall-cmd --reload

5、查看开放端口状况

firewall-cmd --list-all

三、安装SSH服务(远程连接使用)

1、查看是否安装了相关软件

rpm -qa|grep -E "openssh"

2、安装缺失的软件:

sudo yum install openssh*

3、注册使用服务:

sudo systemctl enable sshd
service sshd start 

4、开启防火墙的22端口(如果已开启请跳过此部)

firewall-cmd --zone=public --add-port=22/tcp --permanent

firewall-cmd --reload

5、使用ssh连接服务器(如软件xshell、putty)

四、更新阿里云yum源(建议更改,加快速度)

1、安装wget服务

yum -y install wget

2、下载repo文件 

wget http://mirrors.aliyun.com/repo/Centos-7.repo

3、备份并替换系统的repo文件 

cp Centos-7.repo /etc/yum.repos.d/
rm -rf Centos-7.repo
cd /etc/yum.repos.d/ 
mv CentOS-Base.repo CentOS-Base.repo.bak 
mv Centos-7.repo CentOS-Base.repo

4、执行yum源更新命令(执行最后一步假如报错正在尝试其他映像,请按ctrl+c,然后再次执行最后一步)

yum clean all 
yum makecache 
yum update

5、安装vim

yum -y install vim*

五、jdk安装

1、进入/usr/local目录下载

cd /usr/local/

wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz?AuthParam=1531973178_bfda57895bf56fc4e64f754387fe008d

2、解压jdk并删除源文件

 tar  -zxvf jdk-8u181-linux-x64.tar.gz\?AuthParam\=1531973178_bfda57895bf56fc4e64f754387fe008d 

rm -rf jdk-8u181-linux-x64.tar.gz\?AuthParam\=1531973178_bfda57895bf56fc4e64f754387fe008d 

mv jdk1.8.0_181/ jdk1.8

3、修改环境变量(用vim编辑器来编辑profile文件,在文件末尾添加一下内容(按“i”进入编辑)

vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

4、跟新配置并测试

source /etc/profile
java

出现以下情况成功

六、tomcat8.0安装

1、下载安装包

cd /usr/local/
wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v8.0.53/bin/apache-tomcat-8.0.53.tar.gz

2、解压并删除源文件

tar  -zxvf apache-tomcat-8.0.53.tar.gz 
rm -rf apache-tomcat-8.0.53.tar.gz 
mv apache-tomcat-8.0.53/ tomcat8

3、创建快捷键

cd /root
ln -s /usr/local/tomcat8/ tomcat8

4、配置脚本

vim /etc/init.d/tomcat8
#!/bin/bash
#
## description: Tomcat Start Stop Restart
# processname: tomcat
# chkconfig: 234 20 80

export JAVA_HOME=/usr/local/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH

CATALINA_HOME=/usr/local/tomcat8

case $1 in

start)

sh $CATALINA_HOME/bin/startup.sh

;;

stop)

sh $CATALINA_HOME/bin/shutdown.sh

;;

restart)

sh $CATALINA_HOME/bin/shutdown.sh

sh $CATALINA_HOME/bin/startup.sh

;;

esac

exit 0

5、为tomcat8.service添加执行权限并开机启动

chmod a+x /etc/init.d/tomcat8
chkconfig tomcat8 on

6、tomcat8服务

启动:service tomcat8 start
重启:service tomcat8 restart
关闭:service tomcat8 stop

7、进行访问 (网址ip:8080,如本机192.168.1.150:8080)

8、开启ssl安全访问

申领ssl证书(百度云、阿里云、腾讯云都有免费证书)

1、首先将申请好的证书下载解压,上传到服务器上,我上传到了tomcat目录下的ssl_cert文件夹下

2、 修改tomcat/conf 文件夹的 server.xml文件,开启https

#默认开启8080端口,并且自动转发到8443这是tomcat自带代码不用修改 
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 

#在他下边添加一下代码,开启8443端口作为tomcat的ssl端口,如果未使用其他服务器(nginx)建议将8080换成80,8443换成443这样访问时不用加端口号默认http是80https是443

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" defaultSSLHostConfigName="默认域名">
            <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
            <SSLHostConfig hostName="域名1">
                <Certificate certificateKeystoreFile="./ssl_cert/域名1ssl证书" certificateKeystorePassword="域名1ssl证书密码" type="RSA" />
            </SSLHostConfig>
            <SSLHostConfig hostName="域名2">
                <Certificate certificateKeystoreFile="./ssl_cert/域名2ssl证书" certificateKeystorePassword="域名2ssl证书密码" type="RSA" />
            </SSLHostConfig>
        </Connector>


3、修改域名对应路径webapps位置

#appBase这个目录下面的子目录将自动被部署为应用,且war文件将被自动解压缩并部署为应用,默认为tomcat下webapps目录,如果不想访问默认ROOT目录,修改这里,同理如果想访问配置目录下应用为默认应用,在此目录下新增ROOT目录文件夹。

<Host name="域名1" appBase="项目文件夹位置(默认为webapps)" unpackWARs="true" autoDeploy="true">

                <Alias>域名1</Alias>  
                <Alias>域名2</Alias>

# 设置默认项目名称 path 位虚拟目录网址 docBase 为实际目录,访问域名时会访问appBase路径/docBase路径查找项目,可设置为空
<Context path="" docBase="具体项目路径" reloadable="true" /> 
                
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>


这里的关键在于<Alias>域名</Alias>,将两个域名主机指向了同一个项目

4、 如需配置两个域名访问不同的项目,则按照如下配置
 

 #域名1服务
<Host name="域名1" appBase="域名1项目文件夹(本人设置为webapps/top)" unpackWARs="true" autoDeploy="true">
               
                <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
            </Host>
#域名2服务
            <Host name="域名2" appBase="域名2项目文件夹(本人设置为webapps/vip)" unpackWARs="true" autoDeploy="true">
               <Context path="" docBase="" reloadable="true" /> 
                <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
            </Host>

 

 

七、mysql安装

1、下载安装包

cd /usr/local/
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

2、解压并删除源文件

tar  -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz 
rm -rf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz 
mv mysql-5.7.22-linux-glibc2.12-x86_64/ mysql

3、新建data目录

mkdir /usr/local/mysql/data

4、新建mysql用户、mysql用户组

groupadd mysql
useradd mysql -g mysql

5、将/usr/local/mysql的所有者及所属组改为mysql

chown -R mysql.mysql /usr/local/mysql

6、配置

/usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
# 如果出现以下错误:

2018-07-14 06:40:32 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2018-07-14 06:40:32 [ERROR]   Child process: /usr/local/mysql/bin/mysqldterminated prematurely with errno= 32
2018-07-14 06:40:32 [ERROR]   Failed to execute /usr/local/mysql/bin/mysqld --bootstrap --datadir=/usr/local/mysql/data --lc-messages-dir=/usr/local/mysql/share --lc-messages=en_US --basedir=/usr/local/mysql
-- server log begin --

-- server log end --
# 则使用以下命令:

/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize

# 如果出现以下错误:
2018-12-12T08:47:44.114511Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-12-12T08:47:44.116565Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
2018-12-12T08:47:44.116618Z 0 [ERROR] Aborting
# 则使用以下命令:

 /usr/local/mysql5.7/bin/mysqld --user=mysql --basedir=/usr/local/mysql5.7/ --datadir=/usr/local/mysql5.7/data --explicit_defaults_for_timestamp


# 如果出现以下错误:

/usr/local/mysql/bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
# 则执行以下命令:

yum -y install numactl

# 则执行以下命令:

yum -y install numactl

# 完成后继续安装:

/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize

7、编辑配置文件

vim /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server=utf8
# 取消密码验证
skip-grant-tables
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# skip-grant-tables
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

8、开启服务

# 将mysql加入服务

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

# 开机自启

chkconfig mysql on

# 开启

service mysql start

9、设置密码

# 登录(由于/etc/my.cnf中设置了取消密码验证,所以此处密码任意)

/usr/local/mysql/bin/mysql -u root -p

# 操作mysql数据库

>>use mysql;

# 修改密码

>>update user set authentication_string=password('你的密码') where user='root';

>>flush privileges;

>>exit;

10、将/etc/my.cnf中的skip-grant-tables删除(注释掉 前边加上#)

 vim /etc/my.cnf

11、登录再次设置密码

/usr/local/mysql/bin/mysql -u root -p
 >>ALTER USER 'root'@'localhost' IDENTIFIED BY '修改后的密码';
 >>exit;

12、允许远程连接

/usr/local/mysql/bin/mysql -u root -p
>>use mysql;
>>update user set host='%' where user = 'root';
>>flush privileges;
>>exit;

13、添加快捷方式

ln -s /usr/local/mysql/bin/mysql /usr/bin

八、ngnix安装

1、安装运行库

yum install wget gcc gcc-c++ pcre-devel zlib-devel

2、下载ngnix

cd /usr/local/
wget http://nginx.org/download/nginx-1.14.0.tar.gz

3、解压,删除源文件、改名

tar zxvf nginx-1.14.0.tar.gz
rm -rf nginx-1.14.0.tar.gz
mv nginx-1.14.0/ nginx1.14
cd nginx1.14

4、检测系统配置, 生成make相关文件

./configure

5、编译并安装

make && make install

6、创建nginx启动命令脚本

vim /etc/init.d/nginx
#! /bin/bash
# Startup script for the nginx Web Server
# chkconfig: - 85 15
# description: nginx is a World Wide Web server. It is used to serve
# HTML files and CGI.
# processname: nginx
PATH=/usr/local/nginx
DESC="nginx daemon"
NAME=nginx
DAEMON=$PATH/sbin/$NAME
CONFIGFILE=$PATH/conf/$NAME.conf
PIDFILE=$PATH/logs/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
set -e
[ -x "$DAEMON" ] || exit 0
do_start() {
$DAEMON -c $CONFIGFILE || echo -n "nginx already running"
}
do_stop() {
$DAEMON -s stop || echo -n "nginx not running"
}
do_reload() {
$DAEMON -s reload || echo -n "nginx can't reload"
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
do_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
do_stop
echo "."
;;
reload|graceful)
echo -n "Reloading $DESC configuration..."
do_reload
echo "."
;;
restart)
echo -n "Restarting $DESC: $NAME"
do_stop
do_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2
exit 3
;;
esac
exit 0

echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2
exit 3
;;
esac
exit 0

7、开机自启

设置执行权限

chmod a+x /etc/init.d/nginx

注册成服务

chkconfig --add nginx

设置开机启动

chkconfig nginx on

重启, 查看nginx服务是否自动启动

shutdown -h 0 -r
netstat -apn|grep nginx

8、服务信息

#启动nginx服务
/etc/init.d/nginx start
#systemctl start nginx.service

#停止nginx服务
/etc/init.d/nginx stop
#systemctl stop nginx.service

#重启nginx服务
/etc/init.d/nginx restart
#systemctl restart nginx.service

#重新读取nginx配置(这个最常用, 不用停止nginx服务就能使修改的配置生效)
#/etc/init.d/nginx reload
#systemctl reload nginx.service

9、开启ssl

安装OpenSSL 

#进入安装路径
cd /usr/local/
#下载OpenSSL
wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz
#解压
tar zxvf openssl-1.1.1a.tar.gz 
#删除压缩包
rm -rf openssl-1.1.1a.tar.gz 
#安装
cd openssl-1.1.1a/
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
make &&  make install
#查看版本
openssl version -a
#安装openssl-devel
yum install openssl-devel

添加http_ssl_module模块

.#看下编译安装nginx的时候,都编译安装的哪些模块。
/usr/local/nginx/sbin/nginx -V
#进入之前下载并解压了的源码包目录;重新编译nginx
cd /usr/local/nginx1.14.2/

#开启权限
 chmod +x ./configure
#编译
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

make

#停止nginx
/etc/init.d/nginx stop
#备份一下原来的启动脚本。
cp /etc/init.d/nginx /etc/init.d/nginx.back

#替换nginx二进制文件
cp objs/nginx /usr/local/nginx/sbin/
cp: overwrite ‘/usr/local/nginx/sbin/nginx’? yes

#看看是否启动了对应模块
/usr/local/nginx/sbin/nginx -V

#提示
nginx version: nginx/1.14.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

#启动nginx
/etc/init.d/nginx start
#查看是否正常监听80端口
netstat -lnp|grep nginx

 

九、Redis安装

1、下载redis

cd /usr/local/
wget http://download.redis.io/releases/redis-4.0.10.tar.gz

2、解压,删除源文件、改名

tar -zxvf redis-4.0.10.tar.gz 
rm -rf redis-4.0.10.tar.gz 
mv redis-4.0.10/ redis

3、yum安装gcc依赖

yum install gcc tcl

4、安装

cd redis
make MALLOC=libc
cd src && make install

5、测试是否成功

./redis-server 

出现以下情况成功(按 ctrl + c可以关闭窗口)

6、修改配置文件

cd /usr/local/redis/
vim redis.conf
1、修改daemonize 

将
daemonize no #默认为no
修改为
daemonize yes #后台进程方式改为yes

2、修改bind 配置 
将
bind 127.0.0.1 #默认只有本机才能够连接
修改为
bind 0.0.0.0 #所有ip都可以访问(也可修改为限定ip)

3、修改protected-mode配置 
将
protected-mode yes #在默认保护模式下启用
修改为
protected-mode no #禁用它,任何client不用认证即可连接

4、修改port端口号 
将
port 6379 #默认为6379端口
修改为其他端口
port 6379  #可根据实际情况配置

5、设置密码
将 requirepass foobared
变为
requirepass 你的密码


7、再次启动

指定redis.conf文件启动

cd /usr/local/redis/src/
./redis-server ../redis.conf 

测试redis

./redis-cli -h 127.0.0.1 -p 6379 -a 你的密码

127.0.0.1:6379> set ko 'ok'
OK
127.0.0.1:6379> keys *
1) "ko"
127.0.0.1:6379> get ko
"ok"
127.0.0.1:6379> exit

关闭redis进程 

首先使用ps -aux | grep redis查看redis进程,使用kill命令杀死进程

ps -aux | grep redis

root       2852  0.1  0.2 141832  2028 ?        Ssl  16:45   0:00 ./redis-server 127.0.0.1:6379
root       2857  0.0  0.0 112704   976 pts/0    S+   16:46   0:00 grep --color=auto 
redis


kill -9 2852

8、设置redis开机自启动

在/etc目录下新建redis目录

cd /etc/
mkdir redis

将/usr/local/redis/redis.conf 文件复制一份到/etc/redis目录下,并命名为6379.conf 

cp /usr/local/redis/redis.conf  /etc/redis/6379.conf

将redis的启动脚本复制一份放到/etc/init.d目录下

cp /usr/local/redis-4.0.10/utils/redis_init_script  /etc/init.d/redis

设置redis开机自启动 。先切换到/etc/init.d目录下,然后执行自启命令

cd /etc/init.d/
chkconfig redis on

service redis does not support chkconfig  
看结果是redisd不支持chkconfig 
解决方法:使用vim编辑redis文件,在第一行加入如下两行注释,保存退出

# chkconfig:   2345 90 10
# description:  Redis is a persistent key-value database

再次执行开机自启命令,成功

chkconfig redis on

9、服务

启动:

service redis start

关闭:

service redis stop

10、如果设置密码,关闭时会验证密码,需要更改启动脚本

cd /etc/init.d/
vi /etc/init.d/redis

然后

配置密码常量  PWD=你的密码

将关闭处代码更改为

 $CLIEXEC -a $PWD -p $REDISPORT shutdown       

或

$CLIEXEC -a "root" -p $REDISPORT shutdown  

不更改会影响关闭效率。

猜你喜欢

转载自blog.csdn.net/h18733517027/article/details/81111894