centos 7 服务器环境搭建

470

centos 7 环境搭建

centos 7服务器常用的环境搭建:jdk1.8、MySQL5.7、rabbitmq、redis、nginx等软件,还有word转PDF环境搭建

磁盘挂载

参考:baijiahao.baidu.com/s?id=164628…

1、查看磁盘情况

# 查看当前磁盘挂载情况
df -h

# 查看系统有几个磁盘
fdisk -l

image-20210913110216172

2、对磁盘进行分区

# 对新增磁盘进行分区(/dev/vdb为新增数据盘标识)
fdisk /dev/vdb

img

3、查看磁盘: fdisk -l

image-20210913110814815

4、磁盘格式化:使用命令:mkfs.ext4 /dev/vdb1(ext4为磁盘格式化的格式)对分区磁盘进行格式化。

image-20210913110923560

5、磁盘挂载到对应目录

# 在根目录下新建个目录
mkdir /data

# 挂载分区命令
mount /dev/vdb1 /data


6、开机自动挂载磁盘

先使用 df -h 查看是否挂载成功

image-20210913112049556

使用命令:blkid 来查看磁盘的UUID和格式

这里推荐大家只是使用blkid /dev/vdb1(blkid 设备名),精确点也少点调试错误。

blkid /dev/vdb1

image-20210913112205678

把UUID和格式复制出来

/dev/vdb1: UUID="7560b089-f5ac-4f5a-b0b4-e096e922c1c8" TYPE="ext4"

修改后:

UUID=7560b089-f5ac-4f5a-b0b4-e096e922c1c8 /data ext4 defaults 0 0

将磁盘信息写入开机文件

 vi /etc/fstab

image-20210913112757863

7、重启查看是否挂载成功

# 重启
reboot

# 重启后查看是否挂载成功
df -h

一、jdk 安装:

参考:blog.csdn.net/hui_2016/ar…

卸载旧版本

rpm -qa | grep java 或 rpm -qa | grep jdk

rpm -e --nodeps 查询出来的jdk名称

验证是否卸载:rpm -qa | grep java 或 rpm -qa | grep jdk

备注:查看jdk安装路径

  • echo $JAVA_HOME
  • which java

安装新的jdk

准备jdk安装包:去官网下载Linux安装包

解压安装包

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

编辑环境变量

vim /etc/profile

# 在最下边添加jdk环境变量
#java environment
export JAVA_HOME=/APP/soft/jdk1.8.0_271
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

环境变量生效

source /etc/profile

二、安装nacos

准备安装文件:nacos-server-1.1.0.tar.gz

解压文件

tar -zxvf nacos-server-1.1.0.tar.gz

运行单机版

sh startup.sh -m standalone

三、MySQL5.7安装

卸载旧版本

查找mysql相关安装

rpm -qa|grep -i mysql

卸载

rpm -ev mysql-community-common-5.7.23-1.el7.x86_64

查找老版本mysql相关的安装目录命令

find / -name mysql

image-20210831111002742

安装MySQL5.7

参考:blog.csdn.net/xiaolinlang…

准备安装文件:mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz

解压到当前目录

tar -zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz

mysql主目录处理

mv mysql-5.7.32-linux-glibc2.12-x86_64 /APP/soft/mysql

cd /data/soft/mysql

mkdir data

主目录权限处理

# 查看
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql

#若存在,则删除原mysql用户:userdel -r mysql,会删除其对应的组和用
userdel -r mysql

#在查看就会发现没有,说明你已经删掉了。
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql

创建mysql组和mysql用户

groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql /data/soft/mysql

创建配置文件

vim /etc/my.cnf
[client]
#password	= your_password
port = 3310
socket		= /tmp/mysql.sock

[mysqld]
binlog_cache_size = 32K
thread_stack = 256K
join_buffer_size = 256K
query_cache_type = 0
max_heap_table_size = 128M
port = 3310
socket		= /tmp/mysql.sock
datadir = /APP/soft/mysql/data
pid-file = /tmp/mysqld/mysqld.pid
log-error=/var/log/mysqld.log

character-set-server = utf8
default_storage_engine = InnoDB
performance_schema_max_table_instances = 400
table_definition_cache = 400
skip-external-locking
key_buffer_size = 1024M
max_allowed_packet = 100G
table_open_cache = 1024
sort_buffer_size = 4096K
net_buffer_length = 4K
read_buffer_size = 4096K
read_rnd_buffer_size = 256K
myisam_sort_buffer_size = 64M
thread_cache_size = 256
query_cache_size = 0M
tmp_table_size = 128M
sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

explicit_defaults_for_timestamp = true
#skip-name-resolve
max_connections = 1000
max_connect_errors = 100
open_files_limit = 65535

log-bin=mysql-bin
binlog_format=mixed
server-id = 1
expire_logs_days = 10
slow_query_log=1
slow-query-log-file=/APP/soft/mysql/data/mysql-slow.log
long_query_time=3
#log_queries_not_using_indexes=on
early-plugin-load = ""


innodb_data_home_dir = /APP/soft/mysql/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /APP/soft/mysql/data
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 512M
innodb_log_buffer_size = 128M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_max_dirty_pages_pct = 90
innodb_read_io_threads = 4
innodb_write_io_threads = 4

[mysqldump]
quick
max_allowed_packet = 500M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

创建文件/tmp/mysql.sock

cd /tmp

touch mysql.sock

chown mysql:mysql mysql.sock

chmod 755 mysql.sock

创建文件/tmp/mysqld/mysqld.pid

mkdir mysqld

cd mysqld

touch mysqld.pid

cd ..

chown -R mysql:mysql mysqld

cd mysqld

chmod 755 mysqld.pid

创建文件/var/log/mysqld.log

touch /var/log/mysqld.log

chown -R mysql:mysql /var/log

cd /var/log

chmod 755 mysqld.log

初始化数据库

cd /APP/soft/mysql/bin/

./mysqld --initialize --user=mysql --basedir=/APP/soft/mysql --datadir=/APP/soft/mysql/data


出现错误:

image-20210831115012689

解决错误:

yum -y install numactl

image-20210831115155358

再次执行:./mysqld --initialize --user=mysql --basedir=/APP/soft/mysql --datadir=/APP/soft/mysql/data

image-20210831115244496

安全启动:

./mysqld_safe --user=mysql &
# 查看初始化密码
cat /var/log/mysqld.log

image-20210831115336816

登录MySQL

./mysql -u root -p
show databases;

修改密码

mysql> set password=password("xh2018");

设置远程访问权限

mysql>grant all privileges on *.* to 'root'@'%' identified by 'xh2018';

创建用户:

CREATE USER 'pig'@'%' IDENTIFIED BY '123456';

授权:

命令:

GRANT privileges ON databasename.tablename TO 'username'@'host'

说明:

  • privileges:用户的操作权限,如SELECTINSERTUPDATE等,如果要授予所的权限则使用ALL
  • databasename:数据库名
  • tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*

例子:

GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';
GRANT ALL ON maindataplus.* TO 'pig'@'%';

注意:

用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

立即生效:

mysql> flush privileges;

四、rabbitmq 安装

安装erlang

准备安装包:erlang-22.3.4.12-1.el7.x86_64.rpm

运行安装命令:

rpm -ivh erlang-22.3.4.12-1.el7.x86_64.rpm

image-20210831134908542

注意:如果执行遇到以下问题,这样处理

image-20210909134209483

下载:openssl-libs-1.0.2k-19.el7.x86_64.rpm

rpm -ivh openssl-libs-1.0.2k-19.el7.x86_64.rpm --force

image-20210909134326267

安装rabbitmq

准备安装包:rabbitmq-server-generic-unix-3.8.7.tar

解压:

tar -xvf rabbitmq-server-generic-unix-3.8.7.tar

配置环境变量

echo 'export PATH=$PATH:/APP/soft/rabbitmq_server-3.8.7/sbin' >> /etc/profile

刷新环境变量

source /etc/profile

启动 | 停止 | 查看命令

# 启动命令
rabbitmq-server -detached

# 停止命令
rabbitmqctl stop

#查看状态
rabbitmqctl status

开启web插件:默认账号密码:guest guest(这个账号只允许本机访问)

rabbitmq-plugins enable rabbitmq_management

查看所有用户

rabbitmqctl list_users

添加个新用户

rabbitmqctl add_user zhaobl 123456

配置权限

rabbitmqctl set_permissions -p "/" zhaobl ".*" ".*" ".*"

查看用户权限

rabbitmqctl list_user_permissions zhaobl

设置tag

rabbitmqctl set_user_tags zhaobl administrator

五、redis 安装

准备文件:我这里是从之前的Linux拷贝过来的

# 上传文件夹
scp -r test      codinglog@192.168.0.101:/var/www/

# 上传文件
scp /path/local_filename username@servername:/path

启动命令:

 ./src/redis-server redis.conf &

验证redis是否启动

./redis-cli

六、安装nginx

准备安装包:nginx-1.18.0.tar.gz

解压:

tar -zxvf nginx-1.18.0.tar.gz

编译:

cd nginx-1.18.0
# 编译
./configure
#报错

image-20210831155039438

解决:

yum -y install pcre-devel openssl openssl-devel

再次安装nginx

./configure
make
make install

安装地址:/usr/local/nginx/

#启动命令:
./nginx
#重启命令:
./nginx -s reload

七、LibreOffice安装

7.1 环境准备

1、准备安装包

Linux版本:LibreOffice_7.1.5_Linux_x86-64_rpm.tar.gz

Window版本:LibreOffice_7.1.5_Win_x64.msi

7.2 解压

Window版本双击默认安装

Linux版本安装:参考blog.csdn.net/weiguang102…

解压:

tar -zxvf LibreOffice_7.1.5_Linux_x86-64_rpm.tar.gz

7.3 安装*.rpm

# 进入解压文件夹
cd LibreOffice_7.1.5.2_Linux_x86-64_rpm/RPMS
yum -y localinstall *.rpm

7.4 安装libreoffice-headless

yum install -y libreoffice-headless

7.5 检验是否安装完成

libreoffice7.1 --version

image-20210910155410480

7.6 测试Word转PDF并安装libreoffice-writer

libreoffice --headless --convert-to pdf 1.doc

报这个错误:缺少加载的源文件

[root@bogon Public]# libreoffice --headless --convert-to pdf 123.docx 
Error: source file could not be loaded
[root@bogon Public]# 

需要安装

yum install libreoffice-writer

7.7 把win10字体安装到centos中

windows 字体集在“C:\Windows\Fonts”。

centos字体集在“/usr/share/fonts”

1、在centos中创建一个window字体文件夹

mkdir /usr/share/fonts/windows

2、先从你本机 C:\Windows\Fonts 拷贝或者网络上下载你想要安装的字体文件(*.ttf文件)到/usr/share/fonts/windows目录下

3、修改字体文件的权限,使root用户以外的用户也可以使用

cd /usr/share/fonts/windows

chmod 755 *.ttf

4、建立字体缓存

#(如果提示 mkfontscale: command not found,需自行安装 # yum install mkfontscale )
mkfontscale 

mkfontdir

#(如果提示 fc-cache: command not found,则需要安装# yum install fontconfig )
fc-cache -fv 

5、重启计算机

reboot

7.7 转换格式说明

libreoffice --headless --convert-to pdf {文档路径} --outdir {导出目录路径}

7.8 通过java进行文档转换

八、vsftp 安装

8.1 查看是否安装

rpm -qa |grep vsftpd

# vsftpd-3.0.2-11.el7_2.x86_64 这就是已经安装
# 如果什么都没返回,就表示没有安装

8.2 安装vsftp服务

yum install -y vsftpd

8.3 启动vsftp

systemctl start vsftpd

8.4 验证服务是否启动

netstat -nltp|grep 21

8.5 创建用户组

# 创建一个组,用于存放ftp用户
groupadd ftpgroups

8.6 创建ftp用户

# 创建ftp用户,并加入ftpgroups组
useradd -d /APP/workspace/web/daping/jiamusi/video -g ftpgroups video

设置密码

# video 刚才创建的用户名,密码:videoftp
passwd video

设置不允许用于用户登录

usermod -s /sbin/nologin video

重启一下vsftpd服务

/bin/systemctl restart vsftpd.service
#或者 systemctl restart vsftpd

8.7 设置配置

vim /etc/vsftpd/vsftpd.conf
# 禁用匿名用户
anonymous_enable=NO 
# 禁止切换根目录 删除此行 或禁止#
# chroot_local_user=YES 

九、新增系统用户

9.1 新增用户

# 在root用户下创建用户
adduser video
# 设置密码
passwd video
# 提示输入密码 videoftp


# 创建一个组,用于存放ftp用户
# groupadd ftpgroups
# adduser -g ftpgroups video

9.2 设置指定目录

# 某个目录开放给某个用户
chown -R  video:video  /APP/workspace/web/daping/jiamusi/video

# chown -R  video:video  /home/gsgd/gsgd-longjian/jiamusi/video

9.3 删除用户

userdel video

9.4 查看用户

id video
cat /etc/passwd
cat /etc/group

十、Word模板转PDF

10.1 需求

客户提供word模板文件,要求根据系统中的数据和word模板下载为PDF文件

10.2 解决方案

使用FreeMarker把系统的数据填写到模板文件中,在使用LibreOffice软件把得到的文件转成PDF,最终转化为程序实现PDF下载

10.3 步骤

1、安装LibreOffice软件

LibreOffice是开源软件,支持window和Linux平台,注意:在window和Linux平台命令可能不一致。

2、准备FreeMarker的模板

在客户提供的模板文件中,把需要输出数据的地方使用FreeMarker语法字段替换。

image-20211009190126592

3、word转成xml:使用LibreOffice的命令把,word转换成xml

# window环境命令
soffice --convert-to xml .\xunshijilu.doc

4、FreeMarker模板:在把文件复制到工程中,并且改后缀为html,成为FreeMarker模板。

image-20211009190232624

5、填写数据:使用FreeMarker查询数据,填入模板中,并输出到指定路径下

image-20211009190742717

6、XML转成PDF:在程序中使用LibreOffice命令,把XML转成PDF

image-20211009190934816