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,故按图选择:
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方式)
详细:
源安装包下载: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,官网,下载完传到服务器上。
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.html1.查看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
(回车输入刚修改的密码)