linux环境从头安装-java开发环境相关

linux环境从头安装

安装前说明:
1.该文实践于centos系统。
2.软件安装应安装至/opt下,该文已做修正。

0.安装前准备

# 查看自己系统架构:(X86、ARM)
uname -a
# 查看centos版本
cat /etc/redhat-release
# 开机命令允许执行
chomd +x /etc/rc.local

1.安装基础工具

lrzsz 用处:用来传输文件使用(主要是我习惯了这种方式)

yum -y install lrzsz

zip unzip 用处:解压和压缩文件夹,方便传输

yum install -y unzip zip

安装gcc-c++依赖(常用软件会使用到该依赖,例如nginx、redis)

# 查询是否安装gcc-c++,若安装了不必再装
yum list installed | grep "gcc-c++"
yum -y install gcc-c++

安装wget:(最简版系统不自带)

# 查看是否安装了wget,若安装不必再装
rpm -qa | grep "wget"
yum -y install wget

安装make:安装工具(最简版系统不自带)

rpm -qa | grep "make"
yum -y install make

2.mysql旧版本安装(rpm安装)

(参考)Linux系统安装mysql(rpm方式安装)_程序员_Cc的博客-CSDN博客_rpm安装mysql

mysql下载访问:MySQL :: Download MySQL Community Server

按系统选择,这里使用的是centos 8,故按图选择:

image.png

Product Version:mysql版本
Operating System:系统版本(centos对应Red Hat...)
OS Version:系统版本号和对应指令集

下载以下文件:

  • RPM Package, MySQL Server

  • RPM Package, Client Utilities

  • RPM Package, MySQL Configuration

  • RPM Package, Shared Libraries

创建mysql文件夹,并将下载好的安装包上传至此文件夹:

[root@192 ~]# mkdir /opt/mysql
[root@192 ~]# cd /opt/mysql/

将安装包上传至/opt/mysql/

开始安装:

检查是否自带mariadb数据库

rpm -qa|grep mariadb
# 删除mariadb数据库
# 注意:如果没有安装mariadb,则不需要执行如下命令。
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
cd /opt/mysql

# rpm -ivh命令安装3个rpm包(第4个单拿出来谈)
# 注意:你一定要按照顺序进行安装,因为rpm包之间相互依赖。
rpm -ivh mysql-community-common-8.0.20-1.el8.x86_64.rpm 
rpm -ivh mysql-community-libs-8.0.20-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-8.0.20-1.el8.x86_64.rpm 

# 安装完成后检查是否安装成功:
rpm -qa | grep mysql

安装最后一个rpm包:

rpm -ivh mysql-community-server-8.0.20-1.el8.x86_64.rpm --force --nodeps

安装完成后:

# 查看版本:
[root@192 mysql]# mysql --version
mysql  Ver 8.0.20 for Linux on x86_64 (MySQL Community Server - GPL)
# 启动mysql
[root@192 mysql]# systemctl start mysqld
# 设置开机启动mysql服务
[root@192 mysql]# systemctl enable mysqld
# 查看mysql运行状态
[root@192 mysql]# systemctl status mysqld
# 获取自动生成的临时密码
[root@192 mysql]# grep 'A temporary password' /var/log/mysqld.log
2022-11-26T09:19:16.363419Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 【密码】
# 利用临时密码登录到Mysql客户端
[root@192 mysql]# mysql -u root -p 
(回车输入临时密码,此时已登录上了)

后续需要【mysql修改密码】,详情见【补充】部分.

设置远程访问:
(没有退出mysql命令不需要重新登录,从use mysql开始执行)

修改完密码以后登录进mysql,按序执行完:
/usr/bin/mysql -uroot -p(刚修改的密码)

use mysql;
update user set Host='%' where User='root';

执行完,最后补充(使修改生效):
FLUSH PRIVILEGES;

服务器添加安全组配置,打开3306端口,linux服务器防火墙打开3306端口

exit退出mysql命令,重启mysql服务,尝试远程连接

mysql不再解析主机名:
mysql默认都会根据ip解析主机名,通过该配置可跳过反解析,加快mysql连接速度

[mysqld] 
# 跳过ip反解析主机名
skip-name-resolve

参考:mysql could not be resolved: Name or service not known_Mysql_脚本之家

mysql生命周期相关命令:

# 1、启动
systemctl start mysqld
# 或 service mysqld start
# 2、停止
systemctl stop mysqld
# 或 service mysqld stop
# 3、重启
systemctl restart mysqld
# 或 service mysqld restart

默认的配置文件在/etc/my.conf,Linux下是my.conf,windows下是my.ini
参考:Linux下MySQL配置文件my.ini位置

扩展:

rpm安装默认目录:
数据文件:/var/lib/mysql/
配置文件模板:/usr/share/mysql
mysql客户端工具目录:/usr/bin
日志文件:/var/log/mysqld.log
pid,sock文件目录:/tmp/

3.mysql最新版安装(yum方式)

参考:记一次阿里云安装mysql (rpm安装)

详细:

源安装包下载:https://dev.mysql.com/downloads/repo/yum/
选择自己系统。

mkdir /opt/mysql
上传至该文件夹

安装mysql源(根据自己下载的文件修改):
yum localinstall -y mysql57-community-release-el7-8.noarch.rpm

检测是否安装完成
yum repolist enabled | grep "mysql.*-community.*"

安装mysql
yum install mysql-community-server

可能会报错,如报错请先执行,再执行安装即可:
yum module disable mysql

参考:centos7.8安装mysql5.7时Error: Unable to find a match: mysql-community-server

设置开机启动mysql服务
systemctl enable mysqld

查看安装的mysql版本
rpm -aq | grep -i mysql

启动mysql服务
systemctl restart mysqld

查看mysql初始密码
grep 'A temporary password' /var/log/mysqld.log

执行上面步骤可以获得mysql初始数据库密码,对应mysql用户为root

后续需要【mysql修改密码】,详情见【补充】部分.

设置远程访问:
(没有退出mysql命令不需要重新登录,从use mysql开始执行)

修改完密码以后登录进mysql,按序执行完:
/usr/bin/mysql -uroot -p(刚修改的密码)

use mysql;
update user set Host='%' where User='root';

执行完,最后补充(使修改生效):
FLUSH PRIVILEGES;

服务器添加安全组配置,打开3306端口,linux服务器防火墙打开3306端口

exit退出mysql命令,重启mysql服务,尝试远程连接

mysql不再解析主机名:
mysql默认都会根据ip解析主机名,通过该配置可跳过反解析,加快mysql连接速度

[mysqld] 
# 跳过ip反解析主机名
skip-name-resolve

参考:mysql could not be resolved: Name or service not known_Mysql_脚本之家

mysql生命周期相关命令:

# 1、启动
systemctl start mysqld
# 或 service mysqld start
# 2、停止
systemctl stop mysqld
# 或 service mysqld stop
# 3、重启
systemctl restart mysqld
# 或 service mysqld restart

默认的配置文件在/etc/my.conf,Linux下是my.conf,windows下是my.ini
参考:Linux下MySQL配置文件my.ini位置

扩展:

rpm安装默认目录:
数据文件:/var/lib/mysql/
配置文件模板:/usr/share/mysql
mysql客户端工具目录:/usr/bin
日志文件:/var/log/mysqld.log
pid,sock文件目录:/tmp/


4.redis安装

安装redis完全步骤:linux 安装redis 完整步骤

1.先下载redis,官网,下载完传到服务器上。

image.png

2.解压(我以6.2.6版本为例)

tar -zxvf redis-6.2.6.tar.gz

3.安装过程

# 依次执行:
cd redis-6.2.6/
make
cd src
make install PREFIX=/usr/local/redis

如果make报错,请直接跳到下边的解决make报错,可尝试解决。无误则继续👇

4.移动配置文件到安装目录下

# 依次执行
cd ../
mkdir /usr/local/redis/etc
mv redis.conf /usr/local/redis/etc

5.配置文件修改

vi /usr/local/redis/etc/redis.conf

都可以搜索关键字查找对应配置

### 设置守护进程开启
daemonize no  修改为 yes
### 设置redis密码(非必要但强烈建议!因为要避免暴露在外网访问!)
requirepass 【密码】
### 允许外网访问,把下行注释掉
#bind 127.0.0.1 
### 关闭保护模式,允许外网访问
protected-mode yes 修改为 no

6.将redis加入到开机启动(* 非必要但最好做)

vi /etc/rc.local在里面添加内容/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

现在手动执行一遍/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

7.自行修改防火墙开放端口

按上面安装一般不会出错,报错尝试下边的做法
官网下载的redis,在make这一步的时候会报错:

make[1]: ***  [redis-server] Error 1
make[1]:  Leaving directory '/xx/xx/redis-x.x.x/src'
make:    ***  [all] Error 2

解决:安装gcc

[root@bogon redis-4.0.6]# yum install gcc-c++         yum安装gcc
[root@bogon redis-4.0.6]# make distclean      清空上次编译失败残留文件
[root@bogon redis-4.0.6]# make && make install    执行编译及安装

安装完成后可删除安装包
rm -rf /opt/redis-7.0.5

5.java环境安装

1.首先检查是否已经安装了jdk

[root@localhost ~]# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)

如果java命令没找到,则可以直接安装(跳过第2步)
像上边这种情况,linux已经安装了openjdk,需要卸载,自己安装jdk。

2.卸载

参考:https://www.cnblogs.com/SunshineKimi/p/10803419.html
其次参考:https://www.cnblogs.com/yyjf/p/10287301.html

1.查看java版本是否是openjdk
java -version

2.使用rpm -qa命令查看安装了多少java软件包
rpm -qa | grep java

3.把所有带openjdk的程序包卸载了:rpm -e --nodeps 程序包,如下
rpm -e --nodeps *****

3.下载安装jdk

Java SE Development Kit 8 - Downloads

命令参考:
mkdir /opt/jdk
cd /opt/jdk(上传jdk)
tar -zxvf jdk-8u261-linux-x64.tar.gz
vi /etc/profile ->文件尾添加环境变量

export JAVA_HOME=/opt/jdk/jdk1.8.0_261
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

source /etc/profile
测试:java -version
the end 结束。

6.tomcat安装

下载解压:

tomcat官网下载tar.gz文件,存放/root目录下即可(根据自己需要选择目录)

tar -zxvf tomcat8.5.60.tar.gz

改名:tomcat8_1

(可以再解压,改名。就拥有多个服务器了)

修改配置:

1.修改端口和编码:

/conf/server.xml(大概60行左右)

8080修改成自己喜欢的端口,增加URIEncoding="UTF-8"

<Connector port="8081" protocol="HTTP/1.1"
            connectionTimeout="20000"
            redirectPort="8443" URIEncoding="UTF-8"/>

2.修改静态文件传输编码:

/conf/web.xml(大概113行左右)

增加fileEncoding配置

<servlet>
     <servlet-name>default</servlet-name>
     <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
     <init-param>
         <param-name>debug</param-name>
         <param-value>0</param-value>
     </init-param>
     <init-param>
         <param-name>fileEncoding</param-name>
         <param-value>UTF-8</param-value>
     </init-param>
     <init-param>
         <param-name>listings</param-name>
         <param-value>false</param-value>
     </init-param>
     <load-on-startup>1</load-on-startup>
 </servlet>

设置开机自启:

vi /etc/rc.local在里面添加内容:

# tomcat启动(echo $JAVA_HOME打印java目录)
export JAVA_HOME=/usr/local/jdk1
/usr/local/tomcat/bin/startup.sh 

7.nginx安装

官网:http://nginx.org/en/download.html

1.下载:官网下载最新版本

选择Stable version下的nginx-1.18.0

存放/opt/下解压:

tar -zxvf nginx-1.18.0.tar.gz

2.在安装nginx前首先要确认系统中安装了gcc、pcre-devel、zlib-devel、openssl-devel

参考:linux下检查是否安装过某软件包 - 景岳 - 博客园

依次执行:
yum list installed | grep "gcc" # 非gcc-c++。一定是gcc
yum list installed | grep "pcre-devel"
yum list installed | grep "zlib-devel"
yum list installed | grep "openssl-devel"
未安装的要去安装

附安装命令
gcc: 略
pcre-devel:Linux 安装 pcre - 走看看
yum install -y pcre pcre-devel
zlib-devel: linux centos7下载安装zlib_Silence丶你的名字的博客-CSDN博客_centos7安装zlib
yum install -y zlib zlib-devel
openssl-devel:Linux系统openssl库的安装与报错处理 - 简书
yum install -y openssl-devel

3.配置&安装

# 1.进入解压出来的文件夹内:
cd nginx-1.18.0/
# 2.配置nginx及相关插件(prefix:指定安装位置):
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
# 3.安装(两个顺序执行):
make && make install

4.修改nginx配置文件

user root root;
worker_processes auto; #设置值和CPU核心数一致
error_log /usr/local/nginx/logs/nginx_error.log crit; #日志位置和日志级别
pid /usr/local/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
  use epoll;
  worker_connections 65535;
}
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';
  
#charset gb2312;
     
  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 8m;
     
  sendfile on;
  tcp_nopush on;
  keepalive_timeout 60;
  tcp_nodelay on;
  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 64k;
  fastcgi_buffers 4 64k;
  fastcgi_busy_buffers_size 128k;
  fastcgi_temp_file_write_size 128k;
  gzip on; 
  gzip_min_length 1k;
  gzip_buffers 4 16k;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_types text/plain application/x-javascript text/css application/xml;
  gzip_vary on;
 
  #limit_zone crawler $binary_remote_addr 10m;
 #下面是server虚拟主机的配置
 server
  {
    listen 80;#监听端口
    server_name localhost;#域名
    index index.html index.htm index.php;
    root /usr/local/nginx/html;#站点目录
      location ~ .*\.(php|php5)?$
    {
      #fastcgi_pass unix:/tmp/php-cgi.sock;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      include fastcgi.conf;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
    {
      expires 30d;
  # access_log off;
    }
    location ~ .*\.(js|css)?$
    {
      expires 15d;
   # access_log off;
    }
    access_log off;
  }

}

5.启动准备

# 测试配置文件编写
/usr/local/nginx/sbin/nginx -t
# 启动
/usr/local/nginx/sbin/nginx
# 完成!保证服务器安全组和防火墙开启80端口的情况下访问一下公网IP地址。
拓展:
/usr/local/nginx/sbin/nginx # 启动nginx(默认加载../conf/nginx.conf)
/usr/local/nginx/sbin/nginx -c /path/nginx.conf # 启动nginx,指定配置文件
/usr/local/nginx/sbin/nginx -t -c /path/nginx.conf # 测试该nginx配置文件是否正确
/usr/local/nginx/sbin/nginx -s reload            # 重新载入配置文件
/usr/local/nginx/sbin/nginx -s reopen            # 重新打开日志文件
/usr/local/nginx/sbin/nginx -s stop              # 停止 Nginx

6.将nginx加入到开机启动(* 非必要但最好做)

vi /etc/rc.local在里面添加内容/usr/local/nginx/sbin/nginx

安装完成可删除安装包

rm -rf /opt/nginx-1.22.1

补充

【mysql修改密码】

单独记录:区分5.7版本和8.0版本,命令不同

进入mysql:

/usr/bin/mysql -uroot -p
回车然后输入刚才获取到的密码,即进入mysql中

设置密码规则(密码强度检查等级和最小长度):

该方式修改,重启mysql会重置配置,可自行百度如何配置相关my.conf

先进行修改密码:
alter user 'root'@'localhost' identified by 'Root_12root';

根据自己安装的mysql版本选择:

  • mysql 5.7+:

set global validate_password_policy=0;

set global validate_password_length=1;

  • mysql 8.0+:

set global validate_password.policy=0;
set global validate_password.length=1;

查看mysql密码规则(length好像最小就是4):
SHOW VARIABLES LIKE 'validate_password%';

重新设置密码:
alter user 'root'@'localhost' identified by '自己设置密码';

此时完成密码设置。可进行登陆验证:

exit,退出mysql命令。

/usr/bin/mysql -uroot -p
(回车输入刚修改的密码)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容