美文网首页Java web我爱编程linux
[手把手] Centos 7.3配置Java Web环境(jdk

[手把手] Centos 7.3配置Java Web环境(jdk

作者: v587的毅哥 | 来源:发表于2017-04-25 11:24 被阅读768次

    本来这篇文章是作为自己私有记录的,所以也没有MarkDown(主要是不怎么写博客,也不熟悉)。稍微修改一下就发上来了,与其他文章的区别是一步一步地从空服务器开始,所以会有某方面不够全面的问题。当然,后面的Nginx与vsftpd没按步骤记录了...空了再补上来。


    1、安装JDK

    首先。确定安装jdk的路径为/usr/local/java下面。

    第一步:下载64位的jdk-8u131-linux-x64.tar.gz包

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

    下载的命令是:# curl -O那个tar.gz的url

    这里的基本操作不清楚的请看下面的:3、安装tomcat

    第二步:解压

    # tar -zxvf

    jdk-8u131-linux-x64.tar.gz(可能后面有一堆下载验证的码,无所谓,带上也行)

    第三步:配置环境变量

    # vim /etc/profile

    打开后在文末加上如下:

    #set java environment

    JAVA_HOME=/usr/local/java/jdk1.8.0_131

    JRE_HOME=/usr/local/java/jdk1.8.0_131/jre

    CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

    export JAVA_HOME JRE_HOME

    CLASS_PATH PATH

    2、安装MySQL

    因为MySQL被oracle收购后存在闭源风险,所以很多人都选择了mariadb。mariadb与MySQL完全兼容,但是我这里还是继续选择安装MySQL5.7。

    第一步:安装mysql-devel:

    # yum install mysql-devel

    第二步:安装mysql-server:

    https://dev.mysql.com/downloads/repo/yum/这个网址选择带download的第一项,因为我这里是centos7所以选择的第一项,复制括号里的mysql57-community-release-el7-10.noarch.rpm。然后,运行安装命令:

    # wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

    # rpm -ivh

    mysql57-community-release-el7-10.noarch.rpm

    # yum install

    mysql-conmmunity-server

    重启一下MySQL服务(好像不重启也没关系):# service mysqld restart

    第三步:进入mysql试试? # mysql -uroot -p

    what?要密码?是多少?我也不知道。既然不知道就重设密码吧!(网上有人说不要密码?反正我这里需要,不知道什么鬼!)方法如下:

    1.先把登录需要密码的功能给干掉

    # vim /etc/my.cnf

    再在最后加上这一句代码:skip-grant-tables然后保存退出。

    2.重启mysqld

    # service mysqld restart

    3.登录并修改密码

    # /usr/bin/mysql

    这样就直接进入了MySQL了,下面开始执行MySQL的命令:

    mysql> use mysql;

    mysql> update

    mysql.user set authentication_string=password('你想设置的密码')

    where user ='root';

    使之不用重启就生效:

    mysql> flush

    privileges;

    退出mysql:

    mysql> quit

    4.将MySQL的登录设置改回来(肯定需要密码吧,不能裸奔啊~)

    # vim /etc/my.conf

    把刚才加在最后面的最后那一句删掉(也就是这句:skip-grant-tables),然后保存退出。

    5.重启mysqld

    # service mysqld restart

    6.修改编码

    # vim /etc/my.cnf

    在里面的最后加上默认的编码:

    [mysql]

    default-character-set=utf8

    7.总不能把root账号作为开发账号吧?那就新建一个(具体多少个随你需求)账号:

    # mysql -uroot -p

    输入密码进入mysql后添加一个test账号试试?

    mysql> create user

    'username'@'%' identified by 'password';(注:%是通配符,也可以是其他ip地址或localhost)

    发现报错了:mysql error You must reset your password using

    ALTER USER statement before executing this statement.

    它是说你得先重设你的密码后才能继续操作,之前虽然改过密码了,但是这里不知道为什么还是要验证一下让我们重新设置,当然,我们可以设置为之前的密码。。。不过,如何解决呢?

    ①myql> SET PASSWORD =

    PASSWORD('your new password');

    mysql> set password

    for 'dev1'@'%' = password('dev1');

    如果你的密码太简单,比如就输入123456等等之类的

    发现又报错了:Your password does not satisfy the current

    policy requirements

    如何解决①这个错误呢?

    1.把优先级调成0(low):只验证密码的长度。

    mysql> set global

    validate_password_policy=0;

    2.设置最小密码长度为n位,比如你只想设置一个最低4位密码的验证,那n就为4吧!

    mysql> set global

    validate_password_length=4;

    现在你就可以执行①那句:mysql> SET PASSWORD =

    PASSWORD('your new password');

    ②mysql> alter user

    'root'@'localhost' password expire never;

    ③mysql> flush

    privileges;

    现在你就可以添加用户咯(如上):mysql> create user 'username'@'%'

    identified by 'password';

    ④为用户授权某个db的使用权

    语法:grant [select|update|all] on

    db_name.table_name to 'user'@'auth_option';详细请见mysql> help grant;

    mysql> grant all

    privileges on test_mydb.* to 'dev1'@'%';

    mysql> flush

    privileges;

    8.添加开机启动

    # vim /etc/rc.local

    添加如下代码:

    service mysqld start

    9.添加远程访问权限

    下面的root是账号,%是代表所有ip都能访问,把%替换为ip地址也是可以的.

    mysql> grant all

    privileges on *.* to 'root'@'%' identified by '123456' with grant option;

    mysql> use mysql;

    mysql> update user set

    host='%' where user='root';

    然后退出后重启一下mysql就好了。

    # systemctl restart

    mysqld

    3、安装tomcat

    我这里选择的是最新的tomcat最新版tomcat 9.0.0.M20,官方网址:

    http://tomcat.apache.org/download-90.cgi?Preferred=http%3A%2F%2Fmirror.bit.edu.cn%2Fapache%2F

    点击core:里面的tar.gz,这是在你浏览器里开始下载了,如果你是跟我一样的chrome浏览器:暂停下载,然后'显示下载内容'右键'复制链接地址',其实就是为了要的这个链接地址而已。

    1.进入目标目录

    # cd /usr/local

    2.创建tomcat目录(这一步不是必须的,因为我是想的新建一个tomcat目录可以再在里面安装tomcat的,目的是在这个文件夹里可以装几个版本的tomcat,如果你没这个需求就不用了,就放到/usr/local下面也没关系)

    # mkdir tomcat

    # cd tomcat

    3.下载tomcat的tar.gz文件

    # wget

    http://xxxxxxx/tomcat.xxx.tar.gz(这个网址就是之前在浏览器复制的那个包的地址,粘贴到这就行了)

    4.下载完成后就解压

    # tar -zxvf

    apache-tomcat-xxx.tar.gz(这里的xxx是看你下载的那边版本,反正就是你刚下载的那个文件)

    5.已经解压后就删除之前那个tar.gz的压缩包吧!

    # rm -rf

    apache-tomcat-xxx.tar.gz

    6.启动tomcat:

    # cd

    /usr/local/tomcat/apache-tomcat-9.0.0.M20/bin

    # ./startup.sh

    7.因为centos现在默认的是firewalld而不是iptables了,所以先禁用firewalld(防火墙!!!)

    # systemctl disable firewalld

    8.安装iptables(如果有停下来需要你确认的地方,按y然后回车就好了。如果不想按y,可以设置默认为y。例如:# yum -y iptables-service)

    # yum install

    iptables-services

    9.配置iptables,在里面添加8080等你需要的端口

    # vim

    /etc/sysconfig/iptables

    在里面你会发现默认有一些东西,如果没有你就自己上网搜如何配置吧!

    找到并鼠标选中后复制如下一行:

    -A INPUT -p tcp -m state

    --state NEW -m tcp --dport 22 -j ACCEPT

    再在它下面粘贴n行,如果你要开放某个端口就复制一行。我这里复制一行,然后就如下样子了:

    -A INPUT -p tcp -m state

    --state NEW -m tcp --dport 22 -j ACCEPT

    -A INPUT -p tcp -m state

    --state NEW -m tcp --dport 22 -j ACCEPT

    修改第二行的22端口为8080,然后保存退出。

    # :wq

    10.启用iptables服务

    # systemctl enable

    iptables

    # systemctl start

    iptables.service

    11.验证

    在你电脑上的浏览器输入your_ip:8080试试?

    12.配置tomcat环境变量

    配置的目的是随便在哪个路径下都可以./startup.sh来启动或./stutdown.sh来关闭tomcat。

    # vim /etc/profile

    我这里就直接粘贴的环境变量给大家了:

    #set java environment

    JAVA_HOME=/usr/local/java/jdk1.8.0_131

    JRE_HOME=/usr/local/java/jdk1.8.0_131/jre

    CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

    #set tomcat environment

    TOMCAT_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M20

    CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M20

    #path config

    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$TOMCAT_HOME/bin

    export JAVA_HOME JRE_HOME

    TOMCAT_HOME CATALINA_HOME CLASS_PATH PATH

    13.这时其实你会发现一个问题,那就是tomcat启动后,打开网址要转很久很久地圈,可能几十秒-十几分钟不等。具体原理是那个熵池的锅,具体是什么玩意儿我也不清楚。这里就贴网上的解决办法:

    # yum install rng-tools

    # systemctl start rngd

    这样应该就行了,但是如果你的cpu不支持DRNG特性或者使用的是虚拟机可以使用/dev/unrandom来模拟。

    # cp

    /usr/lib/systemd/system/rngd.service /etc/systemd/system

    # vim

    /etc/systemd/system/rngd.service

    以下是编辑内容:

    ExecStart=/sbin/rngd -f

    -r /dev/urandom

    重启一下:

    # systemctl daemon-reload

    # systemctl restart rngd

    14.配置tomcat的开机启动,毕竟服务器难免宕机(其实阿里云这玩意儿确实不怎么会,但是自己手动搞宕机了呢?不用再手动去重启一下tomcat呀!)

    ①tomcat需要增加一个pid文件

    在tomcat/bin目录下面,增加setenv.sh配置,catalina.sh启动的时候会调用,同时配置java内存参数

    # cd

    /usr/local/tomcat/apache-tomcat-9.0.0.M20/bin

    # vim setenv.sh

    复制如下代码到里面并保存退出:

    #tomcat启动pid

    export

    CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M20

    export

    CATALINA_BASE=/usr/local/tomcat/apache-tomcat-9.0.0.M20

    #add tomcat pid

    CATALINA_PID="$CATALINA_BASE/tomcat.pid"

    #add Java opts

    JAVA_OPTS="-server

    -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m

    ②在/usr/lib/systemd/system目录下增加tomcat.service,目录必须是绝对目录

    # vim /usr/lib/systemd/system/tomcat.service

    复制如下代码到里面并保存退出:

    [Service]

    Type=forking

    PIDFile=/usr/local/tomcat/apache-tomcat-9.0.0.M20/tomcat.pid

    ExecStart=/usr/local/tomcat/apache-tomcat-9.0.0.M20/bin/startup.sh

    ExecReload=/bin/kill -s

    HUP $MAINPID

    ExecStop=/bin/kill -s

    QUIT $MAINPID

    PrivateTmp=true

    [Install]

    WantedBy=multi-user.target

    ##[unit]配置了服务的描述,规定了在network启动之后执行,

    ##[service]配置服务的pid,服务的启动,停止,重启

    ##[install]配置了使用用户

    ③其实前面2步只是配置了一个tomcat.service。但是,现在就可以用systemctl命令来管理咯!下面是systemctl的基本使用方法(下面的name是服务的名称,后面的.service其实也可以不加):

    查看服务状态

    # systemctl status

    name.service

    启动服务

    # systemctl start

    name.service

    停止服务

    # systemctl stop

    name.service

    重启服务

    # systemctl restart

    name.service

    增加开机启动

    # systemctl enable

    name.service

    删除开机启动

    # systemctl disable

    name.service

    ④现在把tomcat.service加入到开机启动里面吧!

    # systemctl enable

    tomcat.service

    ⑤查看一下状态呢?

    # systemctl status

    tomcat.sercie

    如果不是类似如下状态那就是没配好:

    ● tomcat.service - Tomcat

    Loaded: loaded

    (/usr/lib/systemd/system/tomcat.service; enabled; vendor preset: disabled)

    Active:active (running)since Sat 2017-04-22

    18:34:42 CST; 13min ago

    Main PID: 2242 (java)

    CGroup:

    /system.slice/tomcat.service

    └─2242

    /usr/local/java/jdk1.8.0_131/jre/bin/java -Djava.util.loggi...

    Apr 22 18:34:42

    iz2ze0k7zwwksqhk2zq3c7z systemd[1]: Starting Tomcat...

    Apr 22 18:34:42

    iz2ze0k7zwwksqhk2zq3c7z startup.sh[2234]: /usr/local/tomcat/a...

    Apr 22 18:34:42

    iz2ze0k7zwwksqhk2zq3c7z startup.sh[2234]: /usr/local/tomcat/a...

    Apr 22 18:34:42

    iz2ze0k7zwwksqhk2zq3c7z startup.sh[2234]: Tomcat started.

    Apr 22 18:34:42

    iz2ze0k7zwwksqhk2zq3c7z systemd[1]: Started Tomcat.

    Hint: Some lines were

    ellipsized, use -l to show in full.

    如果提示的是如下:

    Neither the JAVA_HOME nor

    the JRE_HOME environment variable is defined

    哦,对了,那就是忘了配置catalina.sh里面的环境变量!

    # vim

    /usr/local/tomcat/apache-tomcat-9.0.0.M20/bin/catalina.sh

    再#!/bin/sh的下一行(因为前面那个是代表shell脚本,所以得在他下面)加入后保存退出:

    export

    JAVA_HOME=/usr/local/java/jdk1.8.0_131

    export

    JRE_HOME=/usr/local/java/jdk1.8.0_131/jre

    现在运行一下如下命令重新载入一下:

    # systemctl daemon-reload

    现在应该可以使用③里面的那些命令了(还不行?咱们使用一下重启大法:# reboot)。

    ⑥测试是否已正常加入开机启动?

    # reboot

    然后再在启动后运行:

    # systemctl status

    tomcat.service试试,看看active的状态是否是:active?或者直接访问yourip:8080看看是否正常启动了?

    ⑦改8080端口为80,因为我这里是买的阿里云的,所以你知道要为什么要改为80撒?你需不需要改看你自己的情况

    # vim

    /usr/local/tomcat/apache-tomcat-9.0.0.M20/conf/server.xml

    重启一下tomcat

    # systemctl restart

    tomcat

    ⑧在浏览器访问一下试试?

    http://yourip

    附:启动多个tomcat

    1、修改端口

    ①复制成2份tomcat(直接复制tomcat的文件夹),我这里的tomcat1为:apache-tomcat-9.0.0.M20,tomcat2为:apache-tomcat-9.0.0.M202,所以后面的操作均为我本机的改法,触类旁通吧!

    # cp tomcat1 tomcat2

    ②配置必须不同的端口

    # vim

    /usr/local/tomcat/apache-tomcat-9.0.0.M202/conf/server.xml

    修改如下端口:

    shutdown="SHUTDOWN">

    protocol="HTTP/1.1"

    connectionTimeout="20000"

    redirectPort="8444"

    />

    protocol="AJP/1.3" redirectPort="8444" />

    2、增加tomcat2.service来配置自启动(当然,你也可以直接在/etc/rc.d/rc.local中加入tomcat-path/bin/startup.sh的方式来配置自启动,当然,这样就不能用systemctl start tomcat的方式来启动了哈),其实方式跟新配置一个tomcat没什么区别,上面已经提到了。

    ①配置环境变量

    # vim /etc/profile

    ②增加pid

    # vim /usr/local/tomcat/apache-tomcat-9.0.0.M202/bin/setenv.sh

    复制粘贴如下代码:

    #tomcat启动pid

    export

    CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M202

    export

    CATALINA_BASE=/usr/local/tomcat/apache-tomcat-9.0.0.M202

    #add tomcat pid

    CATALINA_PID="$CATALINA_BASE/tomcat2.pid"

    #add Java opts

    JAVA_OPTS="-server

    -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m

    ③配置tomcat2.service

    # vim

    /usr/lib/systemd/system/tomcat2.service

    复制粘贴如下代码:

    [Service]

    Type=forking

    PIDFile=/usr/local/tomcat/apache-tomcat-9.0.0.M202/tomcat.pid

    ExecStart=/usr/local/tomcat/apache-tomcat-9.0.0.M202/bin/startup.sh

    ExecReload=/bin/kill -s

    HUP $MAINPID

    ExecStop=/bin/kill -s

    QUIT $MAINPID

    PrivateTmp=true

    [Install]

    WantedBy=multi-user.target

    ##[unit]配置了服务的描述,规定了在network启动之后执行,

    ##[service]配置服务的pid,服务的启动,停止,重启

    ##[install]配置了使用用户

    4、安装并配置ftp

    通过与chroot_local_user=YES/NO搭配能实现以下几种效果:

    1、当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。

    2、当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd/chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。

    3、当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。

    4、当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。

    #不加下面这一句会出现:500 OOPS: vsftpd: refusing to run withwritable root inside chroot()

    allow_writeable_chroot=YES

    #如果userlist_enable=YES

    #那么userlist_deny=NO就代表/etc/vsftpd/user_list里面的用户是白名单

    #否则userlist_deny=YES就代表/etc/vsftpd/user_list里面的用户是黑名单

    添加用户:

    useradd your_username

    #增加用户userName,设置该用户的主目录为/home/ftp,禁止登录SSH权限

    # -d:指定主目录

    # -g:设置用户的群组

    # -s:设置SSH权限

    # -p:设置密码

    useradd -d /home/ftp -g

    ftp -s /sbin/nologin userName -p password

    #修改用户密码:

    passwd userName

    5、安装并配置Nginx

    1、安装

    2、配置

    # vim /usr/local/nginx/conf/nginx.conf

    相关文章

      网友评论

      • ca5c07ce3ae7:刚弄了个京东云 java环境配置完了之后 安装mysql
        # yum install

        mysql-conmmunity-server 时报错
        [root@JD /]# yum install mysql-conmmunity-server
        Loaded plugins: fastestmirror
        Repository base is listed more than once in the configuration
        Repository updates is listed more than once in the configuration
        Repository extras is listed more than once in the configuration
        Repository centosplus is listed more than once in the configuration
        Loading mirror speeds from cached hostfile
        No package mysql-conmmunity-server available.
        Error: Nothing to do
        该怎么解决呢请问

      本文标题:[手把手] Centos 7.3配置Java Web环境(jdk

      本文链接:https://www.haomeiwen.com/subject/rhqvzttx.html