虚拟机编程环境和软件工具安装

278 阅读7分钟

实验环境:

linux虚拟机(可与宿主机互通)

软件下载链接

链接:pan.baidu.com/s/16OERnL73… 提取码:1234

1、Xshell安装

下载完成,双击运行,开始安装

image-20230629180530626.png

选"我接受"

image-20230629180611867.png

更改安装位置

image-20230630090045424.png

默认就可以

image-20230630090150659.png

安装中...(很快)

image-20230630090159726.png

安装完成(因为之前安装过,保留了以前的会话信息)

image-20230630090324799.png

2、Xftp安装

与Xshell安装步骤一致

开始安装 --> 接受协议 --> 更改安装位置 --> 默认 --> 安装中...

image-20230630090429057.png

image-20230630090442059.png

image-20230630090516760.png

image-20230630090530458.png

image-20230630090539972.png

image-20230630090621372.png

3、Xshell连接虚拟机

启动虚拟机

新建连接会话

image-20230630091317274.png

设置会话名称(建议与虚拟机名称一致)、虚拟机ip、端口号

image-20230630091606022.png

输入root、root密码

image-20230630091659823.png

接受并保存密钥

image-20230630091718378.png

连接成功

image-20230630091812908.png

4、测试Xftp传输文件

4.1、传输文件

可以直接在Xshell中直接打开Xftp

Xftp左侧为宿主机(也就是本机),右侧为虚拟机

image-20230630092131810.png

在/usr/local目录下新建java、mysql、redis、nginx文件夹

 cd /usr/local
 mkdir /usr/local/java
 mkdir /usr/local/mysql
 mkdir /usr/local/redis
 mkdir /usr/local/nginx
 # 查看目录下文件(详细)
 ll

image-20230630094232303.png

传输文件(这里以传jdk为例)

image-20230630094810331.png

传输成功

image-20230630094912316.png

分别再将mysql、redis、nginx上传至指定文件夹

image-20230630095039109.png image-20230630095103708.png image-20230630095119925.png

4.2、上传文件失败解决方案

如果上传文件失败,需要修改/usr/local目录下的权限,不修改可能会导致文件上传失败(正常情况不会上传失败)

 # 修改 /usr/local 目录权限,777表最高权限
 sudo chmod -R 777 /opt/software
 # 修改 /usr/local 目录及其下所有目录的权限
 sudo chmod -R 777 /opt/software/
 ​
 # 若是 root 用户
 chmod -R 777 /opt/software
 chmod -R 777 /opt/software/

5、配置用户(clannad)权限

5.1、修改 sudoers 文件
 # 切换为 root 用户,需要输入 root 密码
 su -
 # 进入 sudoers 文件
 vi /etc/sudoers
 # 修改 sudoers 文件,添加 NOPASSWD:ALL 使用 sudo 不需要重新输入密码
 # sudo 表示什么? 用户 clannad 可以直接使用 root 权限
 clannad ALL= (ALL) NOPASSWD:ALL

修改后,如下图所示:

image-20230630100215451.png

5.2、测试是否成功
 # 切换至 clannad 用户
 su clannad
 # 使用 root 权限,查看 sudoers 内容
 sudo cat /etc/sudoers

image-20230630100524914.png

6、JDK安装

6.1、卸载已有的 OPENJDK(如果有)
 # 如果系统⾃带有 OpenJDK ,可以按照如下步骤提前卸载之。
 # ⾸先查找已经安装的 OpenJDK 包:
 rpm -qa | grep java
 # 接下来可以将 java 开头的安装包均卸载即可:
 yum -y remove java-1.7.0-openjdk-headless.x86_64
 yum -y remove javapackages-tools.noarch
 ...

image-20230701164209853.png

6.2、安装

安装包解压

 # 进入 java 文件夹
 cd /usr/local/java
 # 解压,解压完之后, /usr/local/java ⽬录中会出现⼀个 jdk1.8.0_161 的⽬录
 tar -zxvf jdk-8u161-linux-x64.tar.gz

image-20230630102513789.png

image-20230630102629568.png

 # 编辑 /etc/profile ⽂件,在⽂件尾部加⼊如下 JDK 环境配置即可
 vim /etc/profile
 # 配置环境变量
 JAVA_HOME=/usr/local/java/jdk1.8.0_161
 CLASSPATH=$JAVA_HOME/lib/
 PATH=$PATH:$JAVA_HOME/bin
 export PATH JAVA_HOME CLASSPATH

image-20230630102829700.png

 # 然后执⾏如下命令让环境变量⽣效
 source /etc/profile
 # 输⼊如下命令即可检查安装结果
 java -version
 javac

image-20230701165350755.png

7、mysql

7.1、卸载系统⾃带的MARIADB(如果有)
# 查询已安装的 Mariadb 安装包
rpm -qa|grep mariadb
# 移除
yum -y remove mariadb-libs-5.5.56-2.el7.x86_64

image-20230630105038531.png image-20230630105020955.png

安装包解压

# 进入 mysql 文件夹
cd /usr/local/mysql
# 解压
tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

image-20230630105919545.png image-20230630105937352.png

# 复制 mysql-5.7.30-linux-glibc2.12-x86_64 至 /usr/local 目录下
cp -rp mysql-5.7.30-linux-glibc2.12-x86_64 /usr/local/
# 删除原 mysql 目录
rm -rf mysql
# mysql-5.7.30-linux-glibc2.12-x86_64 重命名为 mysql
mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql

image-20230630111201586.png

7.2、准备工作

创建MYSQL⽤户和⽤户组

# 进入 mysql 文件夹
cd /usr/local/mysql

# 创建MYSQL⽤户和⽤户组
groupadd mysql
useradd -g mysql mysql
# 同时新建 /usr/local/mysql/data ⽬录,后续备⽤
mkdir /usr/local/mysql/data
# 修改MYSQL⽬录的归属⽤户
chown -R mysql:mysql ./

image-20230630112120418.png image-20230630111201586.png

准备MYSQL的配置⽂件

# 准备MYSQL的配置⽂件
# 在 /etc ⽬录下新建 my.cnf ⽂件
vim /etcmy.cnf

# 写⼊如下简化配置:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
skip-name-resolve
#设置3306端⼝
port = 3306
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装⽬录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放⽬录
datadir=/usr/local/mysql/data
# 允许最⼤连接数
max_connections=200
# 服务端使⽤的字符集默认为8⽐特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使⽤的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M

image-20230630112154538.png

# 同时使⽤如下命令创建 /var/lib/mysql ⽬录,并修改权限:
mkdir /var/lib/mysql
chmod 777 /var/lib/mysql

image-20230630112223000.png

7.3、开始安装MYSQL
# 执⾏如下命令正式开始安装:
cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

# 注意:记住下⾯打印出来的 root 的密码,后⾯⾸次登陆需要使⽤(每个人的并不相同)
# nJT,KgBMZ3af

image-20230630182632600.png

复制启动脚本到资源⽬录

# 执⾏如下命令复制:
cp ./support-files/mysql.server /etc/init.d/mysqld
# 并修改 /etc/init.d/mysqld ,修改其 basedir 和 datadir 为实际对应⽬录:
vim /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

image-20230630182845119.png image-20230630182830332.png

7.4、MYSQL开机自启动设置
# ⾸先增加 mysqld 服务控制脚本执⾏权限:
chmod +x /etc/init.d/mysqld
# 同时将 mysqld 服务加⼊到系统服务:
chkconfig --add mysqld
# 最后检查 mysqld 服务是否已经⽣效即可:
chkconfig --list mysqld


# 如下图,这样就表明 mysqld 服务已经⽣效了,在2、3、4、5运⾏级别随系统启动⽽⾃动启动,以后可以直接使⽤ service 命令控制 mysql 的启停。

image-20230630183451610.png

7.6、启动MYSQL
# 直接执⾏:
service mysqld start

SUCCESS!表示成功

image-20230630183532259.png

将 MYSQL 的 BIN ⽬录加⼊ PATH 环境变量

# 这样⽅便以后在任意⽬录上都可以使⽤ mysql 提供的命令。
# 编辑 ~/.bash_profile ⽂件,~字符代表当前用户的主目录
vim ~/.bash_profile
# 在⽂件末尾处追加如下信息
export PATH=$PATH:/usr/local/mysql/bin
# 最后执⾏如下命令使环境变量⽣效
source ~/.bash_profile

image-20230630183939804.png image-20230630184006786.png

⾸次登陆MYSQL

# 以 root 账户登录 mysql ,使⽤上⽂安装完成提示的密码进⾏登⼊(密码在上面有记录)
mysql -u root -p

# 接下来修改ROOT账户密码
mysql>alter user user() identified by "123456";
mysql>flush privileges;
# ⽐如这⾥将密码设置成简单的"123456"

登录成功!

image-20230630184221757.png

7.7、设置远程主机登录
mysql> use mysql;
mysql> update user set user.Host='%' where user.User='root';
mysql> flush privileges;

image-20230630184344340.png

最后利⽤NAVICAT等⼯具进⾏测试即可

image-20230630185115193.png 如果连接失败(报错10060),可能是防火墙开着,关闭后就可以

也可以选择禁止firewall开机启动,自己的虚拟机,问题不大

image-20230630185521977.png

8、redis

安装包解压

# 进入 redis 文件夹
cd /usr/local/redis
# 解压,解压完之后, /usr/local/redis ⽬录中会出现⼀个 redis-5.0.8 的⽬录
tar -zxvf redis-5.0.8.tar.gz

image-20230630191132541.png

8.1、编译并安装
cd redis-5.0.8/
# 拆分执行效果一致
make && make install
# 拆分
make
make insatll

image-20230630191503057.png

安装过程中,若出现以下错误消息(关于GCC)

# 表明缺少 GCC 编译器,执行以下命令在系统上安装 GCC
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc-c++ perl-ExtUtils-MakeMaker
# 安装 GCC 完成后,建议删除  redis-5.0.8 文件夹,重新解压安装
# 删除命令
rm -rf /usr/local/redis/redis-5.0.8

image-20230630194554075.png

安装中...

PS:遇到停顿,输入 y 并回车

image-20230630194846728.png

将 REDIS 安装为系统服务并后台启动

# 进⼊ utils ⽬录,并执⾏如下脚本即可:
cd utils/
./install_server.sh
# 此处我全部选择的默认配置即可,有需要可以按需定制

image-20230630195854856.png

8.2、查看REDIS服务启动情况
# 查看 redis 状态
systemctl status redis_6379.service
# 若redis服务停止,重启 Redis 服务即可
systemctl restart redis_6379.service

image-20230630200222070.png

启动REDIS客户端并测试

# 进入 redis 
redis-cli
# 但是此时只能在本地访问,⽆法远程连接,因此还需要做部分设置

image-20230630200529235.png

8.3、设置允许远程连接
# 编辑 redis 配置⽂件
vim /etc/redis/6379.conf
# 将 bind 127.0.0.1 修改为 0.0.0.0

image-20230630200652400.png

8.4、访问密码设置
# 编辑 redis 配置⽂件
vim /etc/redis/6379.conf
# 找到如下内容:requirepass foobared
# 进入vim编辑器后,按下/键进入搜索模式。
# 输入"requirepass"并按下回车键。Vim将会跳转到第一个匹配到的"requirepass"所在的行
# 去掉注释,将 foobared 修改为⾃⼰想要的密码,保存即可。
requirepass 123

# 保存,重启 Redis 服务即可
systemctl restart redis_6379.service
# 这样后续的访问需要先输⼊密码认证通过

image-20230630201329876.png image-20230630201744240.png

取消密码

# 启动redis,执行 config set requirepass '',即可
config set requirepass ''

image-20230630201844255.png

8.5、redis设置开机自启动

在系统服务目录里创建 redis.service 文件

vi /usr/lib/systemd/system/redis.service

写入内容如下:

[Unit]
Description=Redis Server
After=network.target

[Service]
ExecStart=/usr/local/bin/redis-server /usr/local/redis/redis-5.0.8/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target

image-20230630203728391.png

更新Systemd服务列表并启用Redis服务

systemctl daemon-reload
systemctl enable redis.service
# 验证Redis服务是否已启用:
sudo systemctl is-enabled redis.service
# 如果返回值为enabled,则表示Redis服务已成功设置为开机自启动。

image-20230630203938524.png

新Systemd服务列表并启用Redis服务

# 重启服务器(稍等一会再连接)
reboot
# 再次连接后,查看 redis 服务状态,确保它处于活动状态。   
sudo systemctl start redis.service      # 启动Redis服务
sudo systemctl stop redis.service       # 停止Redis服务
sudo systemctl restart redis.service    # 重启Redis服务
sudo systemctl status redis.service     # 检查Redis服务状态

image-20230630204242858.png

9、ngnix

安装包解压

# 进入 nginx 文件夹
cd /usr/local/nginx
# 解压,解压完之后, /usr/local/nginx ⽬录中会出现⼀个 redis-5.0.8 的⽬录
tar -zxvf redis-5.0.8.tar.gz

image-20230630205654486.png

9.1、预先安装额外的依赖
yum -y install pcre-devel
yum -y install openssl openssl-devel

image-20230630205738174.png

9.2、编译安装NGINX
cd nginx-1.17.10
./configure
make && make install
# 安装完成后,Nginx的可执⾏⽂件位置位于
/usr/local/nginx/sbin/nginx

image-20230630205903294.png image-20230630210000140.png

直接执⾏如下命令即可运行

/usr/local/nginx/sbin/nginx
# 浏览器输入 ip 地址,即可访问 nginx
# 虚拟机ip

image-20230630210755505.png

9.3、nginx设置开机自启动

1、在系统服务目录里创建nginx.service文件

vim /usr/lib/systemd/system/nginx.service

2、写入内容如下:

[Unit]
Description=nginx
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 quit
PrivateTmp=true
  
[Install]
WantedBy=multi-user.target

# [Unit]:服务的说明
# Description:描述服务
# After:描述服务类别
# [Service]服务运行参数的设置
# Type=forking是后台运行的形式
# ExecStart为服务的具体运行命令
# ExecReload为重启命令
# ExecStop为停止命令
# PrivateTmp=True表示给服务分配独立的临时空间
# 注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
# [Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

image-20230630211101306.png

设置开机自启动

systemctl enable nginx.service
# 验证Redis服务是否已启用:
sudo systemctl is-enabled nginx.service
# 如果返回值为enabled,则表示 nginx 服务已成功设置为开机自启动。

sudo systemctl start nginx		# 启动Nginx服务
sudo systemctl stop nginx		# 停止Nginx服务
sudo systemctl restart nginx	# 重启Nginx服务
sudo systemctl status nginx		# 检查Nginx服务状态

image-20230630211313658.png

9.4、显示Active: inactive (dead)?

为什么显示Active: inactive (dead)?

解决方法:杀死nginx重启nginx

# 杀死nginx
pkill -9 nginx
# 再次查看
ps aux | grep nginx
# 重启 nginx 服务
systemctl start nginx

再次查看状态,变成了active

image-20230630211444142.png 重启服务器,验证是否成功

reboot
# 再次连接后,查看服务状态
systemctl status nginx.service

image-20230630211751794.png 看到nginx已经启动,至此,nginx自启动配置成功