专栏首页云服务器运维实践CentOS 安装 nginx+tomcat+java+mysql运行环境
原创

CentOS 安装 nginx+tomcat+java+mysql运行环境

本文介绍了CentOS7 64 Java,Tomcat,MySQL,Maven热部署等服务器环境的搭建过程。

服务器:腾讯云服务器

已经将所需要的工具(Xshell,Xftp、FileZilla等sftp上传工具,jdk-8u101-linux-x64.tar.gz和apache-tomcat-9.0.0.M10.tar.gz)上传至百度云 http://pan.baidu.com/s/1qYRms8G

1、tomcat官网 https://tomcat.apache.org/  下载

Java环境配置

环境准备

通过 uname -r 判断系统是多少位

  • 64位 : 出现x86_64
  • 32位 : 出现i686或i386

安装Java JDK8.0

  1. 建立Java目录,存放Java和Tomcat
    • cd /usr/local/
    • mkdir java
    • cd java
  2. 使用FileZilla将下载好的jdk-8u101-linux-x64.tar.gz 和 apache-tomcat-9.0.0.M10.tar.gz上传至Java目录下(传送的国外服务器很慢,国内几乎是国外的十倍,但是也只有两三百KB,也可能是电脑问题)
  3. 将上传的jdk解压,然后重命名为jdk
    • tar -zxv -f jdk-8u101-linux-x64.tar.gz
    • mv jdk1.8.0_101 jdk
    • cd jdk
  4. 配置环境变量Environment=JAVA_HOME=/usr/local/Java/jdk 1. vim /etc/profile 2. 打开之后按键盘(i)进入编辑模式,将下面的内容复制到底部 JAVA_HOME=/usr/local/java/jdk PATH=$JAVA_HOME/bin:$PATH CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar export PATH JAVA_HOME CLASSPATH 3. 写完之后我们按键盘(ESC)按钮退出,然后按(:wq)保存并且关闭Vim。 4. 使用 source /etc/profile 命令使其立即生效 5. 通过 java -version 验证Java是否配置成功。

安装Tomcat9.0

  1. 在Java目录下解压上面一步已经上传上去的Tomcat9.0
    • tar -zxv -f apache-tomcat-9.0.0.M10.tar.gz
    • mv apache-tomcat-9.0.0.M10 tomcat
    • cd tomcat
  2. 启动命令为 /usr/local/java/tomcat/bin/startup.sh
  3. 启动完成后还需开放8080端口(CentOS7这个版本的防火墙默认使用的是firewall,与之前的版本使用iptables不一样。 关于防火墙端口可以查看后面的参考文档) - firewall-cmd --zone=public --add-port=8080/tcp --permanent 出现success表明添加成功 - 更新防火墙规则即可: firewall-cmd --reload - 重启防火墙 systemctl restart firewalld.service
  4. 然后再次在浏览器中输入http://ip:8080,如果看到tomcat系统界面,说明安装成功。
  5. Tomcat 8080 端口无法访问
    • 查看8080端口被那个程序占用(应该是Java) netstat -anp 然后再杀死占用进程。
    • 可能是你的服务器提供商有安全组来控制端口,你需要去提供商那里开启端口(PS:我的阿里云服务器就是必须要设置端口安全组才可以访问端口)
  6. 关闭命令为 /usr/local/Java/tomcat/bin/shutdown.sh

自启动

编辑文件 /usr/local/java/tomcat/bin/catalina.sh (根据你自己的jdk路径进行修改) 在文件的正文开头,即正式代码前,大概在99行添加如下代码

export JAVA_HOME=/usr/local/java/jdk

export JRE_HOME=/usr/local/java/jdk/jre

第一步:

vim /lib/systemd/system/tomcat.service

[Unit]
Description=tomcat
After=network.target
 
[Service]
Type=oneshot
ExecStart=/usr/local/java/tomcat/bin/startup.sh   //自已的tomcat目录
ExecStop=/usr/local/java/tomcat/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPID
RemainAfterExit=yes
 
[Install]
WantedBy=multi-user.target

(2).设置权限

chmod 754 tomcat.service

(3).启动关闭服务,设置开机启动

#启动服务 
systemctl start tomcat.service   
#关闭服务   
systemctl stop tomcat.service   
#开机启动   
systemctl enable tomcat.service 

MySQL

一、系统环境

yum update升级以后的系统版本为

[root@yl-web yl]# cat /etc/redhat-release 
CentOS Linux release 7.1.1503 (Core) 

一开始是通过这个命令来直接安装的:

1 [root@yl-web yl]# yum install mysql
2 [root@yl-web yl]# yum install mysql-server
3 [root@yl-web yl]# yum install mysql-devel

安装mysql和mysql-devel都成功,但是安装mysql-server失败,如下:

[root@yl-web yl]# yum install mysql-server
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.sina.cn
 * extras: mirrors.sina.cn
 * updates: mirrors.sina.cn
No package mysql-server available.
Error: Nothing to do

查资料发现是CentOS 7 版本将MySQL数据库软件从默认的程序列表中移除,用mariadb代替了。

有两种解决办法:

1、方法一:安装mariadb

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

安装mariadb,大小59 M。

[root@yl-web yl]# yum install mariadb-server mariadb 

mariadb数据库的相关命令是:

systemctl start mariadb  #启动MariaDB

systemctl stop mariadb  #停止MariaDB

systemctl restart mariadb  #重启MariaDB

systemctl enable mariadb  #设置开机启动

所以先启动数据库

[root@yl-web yl]# systemctl start mariadb

然后就可以正常使用mysql了

[root@yl-web yl]# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.41-MariaDB MariaDB Server

Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> 

安装mariadb后显示的也是 MariaDB (none)> ,可能看起来有点不习惯。下面是第二种方法。

2、方法二:官网下载安装mysql-server

# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum install mysql-community-server

安装成功后重启mysql服务。

# service mysqld restart

初次安装mysql,root账户没有密码。

[root@yl-web yl]# mysql -u root 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.26 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, 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> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.01 sec)

mysql> 

设置密码

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

mysql> 

不需要重启数据库即可生效。

在mysql安装过程中如下内容:

Installed:
  mysql-community-client.x86_64 0:5.6.26-2.el7                mysql-community-devel.x86_64 0:5.6.26-2.el7                
  mysql-community-libs.x86_64 0:5.6.26-2.el7                  mysql-community-server.x86_64 0:5.6.26-2.el7               

Dependency Installed:
  mysql-community-common.x86_64 0:5.6.26-2.el7                                                                            

Replaced:
  mariadb.x86_64 1:5.5.41-2.el7_0          mariadb-devel.x86_64 1:5.5.41-2.el7_0   mariadb-libs.x86_64 1:5.5.41-2.el7_0  
  mariadb-server.x86_64 1:5.5.41-2.el7_0  

所以安装完以后mariadb自动就被替换了,将不再生效。

[root@yl-web yl]# rpm -qa |grep mariadb
[root@yl-web yl]# 

三、配置mysql

1、编码

mysql配置文件为/etc/my.cnf

最后加上编码配置

[mysql]
default-character-set =utf8

这里的字符编码必须和/usr/share/mysql/charsets/Index.xml中一致。

2、远程连接设置

把在所有数据库的所有表的所有权限赋值给位于所有IP地址的root用户。

mysql> grant all privileges on *.* to root@'%'identified by 'password';

如果是新用户而不是root,则要先新建用户

mysql>create user 'username'@'%' identified by 'password';  

此时就可以进行远程连接了。

Maven 热部署

Maven 热部署可以通过一行命令部署到本地服务器,没有问题的话就一行命令部署到正式服务器。及其方便了开发和部署。因为我的Tomcat9遇到很多问题。

可以参考 maven自动部署到远程tomcat教程 进行部署和测试。

下面是我遇到的一个错误,因为没有配置IDEA的make 导致出错。

[ERROR] Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy (default-cli) on project liwenhao: Cannot invoke Tomcat manager: Connect
ion reset by peer: socket write error -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1]

可以通过将make如下配置

即可成功

war包部署在服务器乱码

可以通过配置如下属性,解决中文war包服务器乱码。

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>

配置完图。

在我通过mvn tomcat7:deploy命令热部署时,会出现mysql无法连接的情况,后来在我重新进行热部署的时候,没有出现这个问题。

猜测

应该是我的配置文件的问题

参考文档

  1. centos 7 开放 80端口
  2. centos7 设置中文
  3. CentOS 7下彻底卸载MySQL数据库
  4. CentOS7 远程访问MySQL
  5. How To Install Apache Tomcat 8 on CentOS 7

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

相关文章

  • Nginx系列教程(6)Nginx location 匹配规则详细解说

    Nginx 的 location 实现了对请求的细分处理,有些 URI 返回静态内容,有些分发到后端服务器等,今天来彻底弄懂它的匹配规则

    haikangweishi
  • Nginx系列教程(7)nginx rewrite配置规则详细说明

    注:nginx官方文档:http://nginx.org/en/docs/http/ngx_http_rewrite_module.html

    haikangweishi
  • Nginx实战教程(9)Nginx配置SSL证书实现https访问

    本文主要记录Nginx怎么配置SSL证书,前提是Nginx安装成功和SSL证书已经获取。

    haikangweishi
  • linux二进制安装MariaDB

    咻一咻
  • CentOS系统编译安装MariaDB数据库实现多实例

    咻一咻
  • MYSQL完整安装和主从双机配置

    ################################# mysql 完整安装 ########################### groupad...

    一见
  • 【MySQL】标准化安装教程

    yum-y install make gcc-c++cmake bison-devel ncurses-devel numactl libaio

    MySQL技术
  • MariaDB的二进制格式安装

    MariaDB是MySQL的一个分支,由MySQL的创始人Michael Widenius主导开发,当期主要由开源社区在维护,采用GPL授权许可。MariaDB...

    用户1456517
  • 安装MySQL

    吟风者
  • mysql安装GENERALMyISAMSAFETYDATA STORAGEBINARY LOGGINGREPLICATIONCACHES AND LIMITSINNODBLOGGINGFOR SLA

    MYSQL数据库安装文档 本文档是MYSQL-5.6.25在CENTOS 6.5 64位版本上安装的文档,经过测试并没有发现问题。 安装以前先查看服务器里是...

    98k

扫码关注云+社区

领取腾讯云代金券