关于openEuler系统的基本环境配置(包括nginx,mysql5.7和java1.8)

关于openEuler系统的基本环境配置(包括nginx,mysql5.7和java1.8)

观前BB:

openEuler虽然是国产系统,但是本质还是centos的套壳系统,你可以通过(uname -a)命令得以观察出,而且系统更类似于centos8(这个还有待确认),这就导致了安装环境的时候经常会出现奇奇怪怪的错误(比如yum找不到源什么的),本人搜索了很多方法,最终总结出了以下方法。当然本方法是用于进行开发环境测试使用的,对于安全性的要求不是那么严格,只是用于可行性分析,因此,如果其中有什么错误,恳请指出。

1.准备阶段

1.1安装openEuler系统

首先是安装openEuler系统,安装系统比较奇怪,由于中途出现了亿点意外,这里仅仅使用U盘安装的方式。

openEuler官网地址:https://www.openeuler.org/en/download/?version=openEuler 22.03 LTS SP3

小Tip:系统不是越新越好

由于是服务器版本,笔者选择了openEuler 22.03 LTS SP3 的x86_64 Server版本,下方的安装包选择普通的标准包Offline Standard ISO即可,约3.5GB即可。

1.2下载刻录软件

下载UltralSO软碟通,官网地址:https://www.cn.ultraiso.net/xiazai.html,正常安装点击试用。然后从本地目录选择上一步下载好的ISO,在菜单栏选择。进入后选择对应的U盘,进行格式化后写入,安装的U盘写入完成。

这边有一个问题,由于写入需要看内存,笔者一开始导入的是完全版(Everything)共17.3G,但是由于交换空间不足,会卡死。因此使用基本的ISO即可。

image-20240403161041228

1.3进入安装

在安装好系统前确定实体服务器硬盘内不存在欧拉系统,在系统BIOS预先设置好U盘为优先启动后,插入U盘后会跳转到GNU GRUB界面

image-20240403161917524

重要!!!:在系统自动进入下一步前,按下“E”进行参数修改,将hd:后的数据进行更改。

红框部分修改成/dev/sda4

/dev/sda4

image-20240403162525482

image-20240403162809516

修改完成后,按下F10保存退出并且重启。

再次启动后,进入图形化安装界面,按照需求配置即可,主要注意以下几点:

1.安装目的地,根据自己需求即可,可以小盘装系统,大盘去拓展;或者直接自动分区

2.软件选择部分,基本环境为最小安装,可以选上必要的开发工具,系统工具,传统UNIX兼容性(看自己需求)

3.ROOT用户:默认没有root用户,因此你要记得启用一下并设置密码

4.网络和主机名:笔者使用的有线连接服务器,因此在这里把有线连接开了下来。(暂时不清楚这一步不动会不会导致后面系统内操作会不会没有网络)

全部准备好后,即可点击开始。安装完成后,点击重启系统,并拔掉U盘

再次启动系统后,输入root账号密码,进入。可以使用此命令来查看安装的版本是否正确:

cat /etc/os-release

2.安装mysql5.7

接下来进入正式安装,首先你需要检查自己的网络状态。此外,确保自己具有管理员权限(即sudo),此处主要采用的是dnf的安装方式。接下来的操作,可以通过SSH远程连接或者直接在服务器上操作。(笔者使用的XShell7的SSH连接)

2.1添加MySQL5.7的软件源:

sudo dnf install https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

2.2下载MySQL公钥:

sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql

2.3确认公钥已正确导入:

sudo rpm -qa gpg-pubkey*

2.4安装 MySQL 5.7:

问题主要在这,通常你用其他网上方式去安装的时候,经常会显示GPG检查失败,导致无法安装的事情。笔者也遇到了这个问题,虽然没有解决,但是找到一个绕过的方法。

正常安装的方式:

sudo dnf install mysql-community-server -y

若出现GPG密钥检查失败,使用 --nogpgcheck 选项禁用 GPG 检查:

sudo dnf install mysql-community-server --nogpgcheck -y

2.5安装完成后,启动mysql服务

sudo systemctl start mysqld

启动开机自启

sudo systemctl enable mysqld

查询Mysql的运行状态:

sudo systemctl status mysqld

正常情况应该如下所示:

image-20240403170334013

2.6进入Mysql安装初始化阶段(基本配置)

此部分出现了亿点小问题,安装过程中偶尔(至少我没看到)没有告诉你初始密码(密码随机生成的),然后后面修改密码需要的密码强度较高,需要登录进mysql后进行修改。

初始化并找到安装过程中生成的随机初始密码

初始化mysql,会出现一个随机密码(在root@localhost后面)

mysqld --initialize --console

没注意到的话,需要在 位置找到

image-20240403172732356

sudo mysql_secure_installation

进入初始化后,按照个人需求进行修改,以下是主要步骤:

  1. 设置密码策略:根据提示,在输入初始密码后,需要设置MySQL root用户的密码,并确认。
  2. 删除匿名用户:选择是否删除匿名用户,建议删除以加强安全性。
  3. 禁止远程root登录:选择是否禁止root用户从远程主机登录MySQL,建议禁止以减少潜在的安全风险。(笔者选择的否,测试环境不必这么严格)
  4. 删除test数据库:选择是否删除test数据库,建议删除以加强安全性。
  5. 重新加载权限表:选择是否重新加载权限表,以使更改生效。(这个建议重新加载)

设置完成后,可以再次检查mysql状态

sudo systemctl status mysqld

接下来登录mysql(因为密码要求强度高,看个人情况要不要修改)

mysql -h<IP地址> -u<用户名> -p<密码>
mysql -h127.0.0.1 -uroot -p<复杂的密码>

进入后显示当前的密码策略:

show variables like 'validate_password%';

image-20240403173229986

主要含义:

validate_password_length #密码长度

validate_password_mixed_case_count #大小写字符个数

validate_password_number_count #数字个数

validate_password_policy #密码强度(修改此强制需要全局权限,语句稍微有点不一样,分为三种:LOW、MEDIUM、STRONG)

validate_password_special_char_count #特殊字符个数

以下是修改案例(举例)

//修改权限
set global validate_password_length=6;
set global validate_password_mixed_case_count=0;
set global validate_password_special_char_count=0;
set global validate_password_policy=LOW;
flush privileges;
//修改密码
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’;

然后配置就算完成了,之后使用Navicat连接服务器去远程操作数据库即可,此处不再赘述。

3.安装nginx

3.1安装必要的依赖项

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

3.2下载Nginx

从官网下载最新的稳定版本(linux使用的PGP版本),官方网址:https://nginx.org/en/download.html

image-20240403192636766

然后通过XShell7的Ftp功能上传至服务器(比如/root文件夹下,就是~路径下),当然直接使用wget进行下载也可以

wget https://nginx.org/download/nginx-1.24.0.tar.gz

3.3解压,编译,安装

tar -zxvf nginx-1.24.0.tar.gz
# 切换到 Nginx 解压目录
cd nginx-1.24.0
# 编译前的配置和依赖检查
./configure
# 编译安装
make && make install

Nginx安装完成后,默认自动创建 /usr/local/nginx 目录,并创建必要的文件和目录,包括配置文件、日志文件、HTML文件等

3.4关闭防火墙

这步是为了能够在浏览器测试自己的网页,通常来说没有必要彻底关闭防火墙,只需要开启对应的端口即可。但是这是测试环境,能简单就简单(懒~)

# 查看防火墙状态
systemctl status firewalld

# 关闭防火墙
systemctl stop firewalld

# 开机禁用防火墙
systemctl disable firewalld

3.5启动Nginx

进入Nginx安装目录,并且启动Nginx服务器

cd /usr/local/nginx/sbin
./nginx

但是,不出意外就要出意外了,当你尝试输入服务器IP地址尝试访问的时候,发现无法访问。(PS:在Ubuntu中用docker装就没这事情)我们需要尝试找出其中的问题:

首先检查Nginx运行状态

systemctl status nginx

发现其没有在运行,且失败了,通过检查对应的log(就是下面的红字),我们发现它的80端口貌似被占用了,所以我们得找到nginx的配置文件,通过以下两个命令:(其实只要第二个,记得先cd /),下图给个正常的图,如果这样可以跳到服务配置的部分:

image-20240403195118183

#ps -ef | grep nginx
find / -name nginx.conf

image-20240403194154712

找到nginx.conf,把其中的listen(监听端口)改成8080,具体文档如下(中文注释部分,你需要注意的部分):

⚠警告:这里改成8080是因为我没有弄tomcat,我是用jar包直接部署的网页,可以根据自己的需求改成其他端口(最好避开那些软件的常用端口)

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        #改这个,改成需要的端口
        listen       8080;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            #这边改成了springboot打包的静态网页dist文件
            root   /usr/local/nginx/html/dist;
            index  index.html index.htm;
            #加了一点跳过错误网页(应该是504)
            try_files $uri $uri/ /index.html;
        }


        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
}

然后可以更新配置(虽然我当时没更新)

nginx -s reload

3.6配置nginx为系统服务

接着,我们为其配置服务,需要在 /etc/systemd/system/ 目录下创建一个新的服务文件,例如 nginx.service

vi /etc/systemd/system/nginx.service

然后在打开的文件中,添加以下内容(先输入i,进入INSERT模式,再复制一下SHIFT+INSERT即可):

[Unit]
Description=Nginx HTTP Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

重新加载systemd配置文件

systemctl daemon-reload
启动Nginx服务
systemctl start nginx
设置其为开机自启动
systemctl enable nginx
检查其运行状态
systemctl status nginx

以下为正常状态:

image-20240403195614366

附录:以下是部分常用命令:

停止nginx服务
systemctl stop nginx
重启nginx服务
systemctl restart nginx

卸载nginx

执行以下命令停止 Nginx 服务:

systemctl stop nginx

如果你使用的是非系统服务方式启动Nginx,可以使用以下命令停止Nginx:

/usr/local/nginx/sbin/nginx -s stop

确定Nginx的安装位置

执行以下命令查找Nginx的安装位置:

whereis nginx

该命令将返回Nginx可执行文件的路径,例如 /usr/local/nginx。

删除Nginx安装目录:

执行以下命令删除Nginx的安装目录:

rm -rf /usr/local/nginx

查找并删除相关文件:

执行以下命令查找可能与Nginx相关的文件:

find / -name nginx

删除其中所有包括nginx的文件,nginx将会被彻底卸载。

4.安装jdk1.8

这个比windows简单太多了,无脑抄就行:下载-解压-配置环境-检测

官网地址:需要注册一个Oracle账号下载一下

image-20240403200451917

通过Ftp上传到服务器,找一个喜欢的目录进行存放,然后进行解压(版本号可能有变化,按照实际来

tar -zxvf jdk-8u401-linux-x64.tar.gz

配置环境变量(你们可能没装vim,但vi大家都有

vi /etc/profile

在文件下方添加

export JAVA_HOME=/source/java/jdk1.8.0_401 #你自己的安装路径,记得改,别照抄
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

按ESC+:wq保存退出,并且更新环境配置

. /etc/profile

然后检测是否安装完毕

java -version
javac

Done!

Plus:部署网页

将打包的静态网页dist文件夹,放到/usr/local/nginx/html路径下,并且返回3.5部分照着那个nginx.conf文件进行修改。再重新通过浏览器访问即可

PLus+:部署jar包

如果你理论上没有问题的话,将jar包通过Ftp传入服务器,然后对照包名输入以下命令即可:(使得jar包在服务器后台运行,并且将运行文档写入当前文件夹中的log.txt中),当然记得开防火墙端口(我全关了,所以不需要开)

想起可以参考此:https://blog.csdn.net/zhhelnice/article/details/103828731

nohup java -jar springboot1-0.0.1-SNAPSHOT.jar >log.txt &

彻底Done了

小结:

老实说,这国产系统确实折腾,这上面这点东西试了快小1天,个人实力太菜还是得多练,润了。

参考文献:

https://blog.csdn.net/zhhelnice/article/details/103828731

https://blog.csdn.net/qq_43329216/article/details/118385502

https://www.cnblogs.com/kwoky/p/17954448

https://blog.csdn.net/u013737132/article/details/134271857

其他忘了(

祝你一天心情愉快!

2024/04/03

posted @ 2024-04-03 20:22  NaHC03  阅读(540)  评论(0编辑  收藏  举报