JDK的安装与配置

方法一:下载tar包,解压、重命名为JDK1.8

方法二:yum 安装指定版本的JDK

列出可安装版本

yum  --showduplicate list java* | grep 1.8.0

选择你需要的版本安装

比如 :

yum install  java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64 

这样安装后安装后不支持jps 命令

[root@localhost ~]# jps
-bash: jps: command not found

解决方案:

yum install  java-1.8.0-openjdk-devel-1.8.0.222.b10-1.el7_7.x86_64

openjdk 、 openjdk-devel 、openjdk-headless的区别 

openjdk 为主要安装包,devel相当于加强版,openjdk-headless 与版本有关,比如,

直接安装yum install  java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64  会自动安装openjdk-headless 但不会安装devel,此时也不支持jps 

直接yum install  java-1.8.0-openjdk-devel.x86_64 (不指定小版本) 可直接安装不需要依赖(会自动安装openjdk)

直接 yum install  java-1.8.0-openjdk-devel-1.8.0.222.b10-1.el7_7.x86_64  会依赖于 java-1.8.0-openjdk-headless-1.8.0.222.b10-1.el7_7.x86_64
 

配置

编辑/etc/profle,在最后添加

source /etc/profile 使得上述3行配置生效 


后端Java项目发布

Spring boot 多环境打包

目前数据库连接为测试环境,如下

为让spring boot能够访问application-prod.properties文件,并用其中内容替换application.properties文件相关内容,实现多环境

-Dspring.profiles.active=prod

补充另一种方法:

springboot 多环境配置项指定

 application.properties内容如下:表示要使用构建后的配置文件

spring.profiles.active=@build.profile.id@

pom.xml中要添加以下内容:build、profiles配合使用确定${build.profile.id}的值

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>

        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <excludes>
                    <exclude>application-*.properties</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>false</filtering>
                <includes>
                    <include>application-${build.profile.id}.properties</include>
                </includes>
            </resource>

        </resources>


    </build>

    <profiles>
        <!--开发环境-->
        <profile>
            <id>dev</id>
            <properties>
                <build.profile.id>dev</build.profile.id>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <!--生产环境-->
        <profile>
            <id>prod</id>
            <properties>
                <build.profile.id>prod</build.profile.id>
            </properties>
        </profile>
    </profiles>

添加构建打包配置:

 

 

 

 

 接下来打包Spring boot项目

成功后:

 

再通过maven打包

 

为了能通过IDEA自定上传打包文件到远程ECS指定目录,用前面方法做映射

先修改pom.xml,注意图中路劲可能不对,应该在后端的target下的dist目录

 做映射

启动包:

使用application-prod.properties启动,在-jar后加参数,如下:

有字段为空,会影响执行结果正确性,所以初始化为0。解决办法:

后台启动脚本:

参考代码:

#!/bin/bash
echo "publish----------"

process_id=`ps -ef | grep wiki.jar | grep -v grep |awk '{print $2}'`
if [ $process_id ] ; then
sudo kill -9 $process_id
fi

source /etc/profile
nohup java -jar -Dspring.profiles.active=prod ~/wiki/wiki.jar > /dev/null 2>&1 &

echo "end publish"


nginx安装与配置

添加Nginx到YUM源(这步必须做,否则YUM源里没有nginx安装包)

sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

安装Ngin

sudo yum install -y nginx

启动Nginx

sudo systemctl start nginx.service

开放80端口

##Add
firewall-cmd --permanent --zone=public --add-port=80/tcp
##Reload
firewall-cmd --reload

Nginx配置信息

  • 网站文件存放默认目录
/usr/share/nginx/html
  • 网站默认站点配置
/etc/nginx/conf.d/default.conf
  • 自定义Nginx站点配置文件存放目录
/etc/nginx/conf.d/
  • Nginx全局配置
/etc/nginx/nginx.conf
  • Nginx启动
nginx -c nginx.conf

 进入/etc/nginx

编辑nginx.conf

 启动nginx服务;service nginx start  也可以用systemctl start nginx试试

curl http://IP,测试是否成功,默认是80端口


前端Vue项目发布

Vue多环境编译

生产环境下编译:

 

再在本地和远程做一个文件夹的映射,这样就可以同步了

 

nginx静态网站配置

 参考代码:

server{
  listen 80;
  # server_name 8.133.184.84;
  server_name wiki.courseimooc.com;

  location / {
    alias /root/web/;
    index index.html;
    try_files $uri $uri/ /index.html;
  }

}

 重新启动nginx


关于SELinux的坑

这是发现访问网站403错误,肯定是SELiunx的原因

临时解决办法:

先看看nginx的默认web文件目录的SELinux

ls -Zd /usr/share/nginx/html/
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /usr/share/nginx/html/

再看我们的web目录SELinux,/root/web

ls -Zd /root/web
drwxr-xr-x. root root system_u:object_r:usr_t:s0       /root/web

(因为我已经改过了,所以看到时一致的,可以用restorecon -Rv /root/web  恢复该目录的默认值,我们发现如下:注意类型:admin_home_t)

drwxr-xr-x. root root system_u:object_r:admin_home_t:s0 /root/web

临时修改命令:参考用nginx的默认SELINUX修改:--reference=

chcon -Rv --reference=/usr/share/nginx/ web/

再执行以下命令观察:一致。可以访问web了,403错误解决

ls -Zd /root/web
drwxr-xr-x. root root system_u:object_r:usr_t:s0       /root/web

永久修改参考:/ftpdir为示例文件夹,public_content_t为示例类型,改为想要的即可如:usr_t

修改为永久的安全上下文

[root@vm ftpdir]# semanage fcontext -l | grep /ftpdir   ####查看内核识别的安全上下文,发现/ftpdir不在列表中

semanage fcontext -a -t public_content_t '/ftpdir(/.*)?'   ####-a 添加 -t安全上下文类型

                                                                                                    ###/ftpdir(/.*) 对文件本身和里面的所有隐藏文件

                                                                                                     ###?匹配单个文件

restorecon -FvvR   /ftpdir  ###刷新列表,否则安全上下文还是没有改变

Logo

前往低代码交流专区

更多推荐