关于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即可。
1.3进入安装
在安装好系统前确定实体服务器硬盘内不存在欧拉系统,在系统BIOS预先设置好U盘为优先启动后,插入U盘后会跳转到GNU GRUB界面:
重要!!!:在系统自动进入下一步前,按下“E”进行参数修改,将hd:后的数据进行更改。
红框部分修改成/dev/sda4
/dev/sda4
修改完成后,按下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
正常情况应该如下所示:
2.6进入Mysql安装初始化阶段(基本配置)
此部分出现了
亿点小问题,安装过程中偶尔(至少我没看到)没有告诉你初始密码(密码随机生成的),然后后面修改密码需要的密码强度较高,需要登录进mysql后进行修改。
初始化并找到安装过程中生成的随机初始密码
初始化mysql,会出现一个随机密码(在root@localhost后面)
mysqld --initialize --console
没注意到的话,需要在 位置找到
sudo mysql_secure_installation
进入初始化后,按照个人需求进行修改,以下是主要步骤:
- 设置密码策略:根据提示,在输入初始密码后,需要设置MySQL root用户的密码,并确认。
- 删除匿名用户:选择是否删除匿名用户,建议删除以加强安全性。
- 禁止远程root登录:选择是否禁止root用户从远程主机登录MySQL,建议禁止以减少潜在的安全风险。(笔者选择的否,测试环境不必这么严格)
- 删除test数据库:选择是否删除test数据库,建议删除以加强安全性。
- 重新加载权限表:选择是否重新加载权限表,以使更改生效。(这个建议重新加载)
设置完成后,可以再次检查mysql状态
sudo systemctl status mysqld
接下来登录mysql(因为密码要求强度高,看个人情况要不要修改)
mysql -h<IP地址> -u<用户名> -p<密码>
mysql -h127.0.0.1 -uroot -p<复杂的密码>
进入后显示当前的密码策略:
show variables like 'validate_password%';
主要含义:
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
然后通过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 /),下图给个正常的图,如果这样可以跳到服务配置的部分:
#ps -ef | grep nginx
find / -name nginx.conf
找到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
以下为正常状态:
附录:以下是部分常用命令:
停止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账号下载一下
通过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