centos 7 环境搭建
centos 7服务器常用的环境搭建:jdk1.8、MySQL5.7、rabbitmq、redis、nginx等软件,还有word转PDF环境搭建
磁盘挂载
1、查看磁盘情况
# 查看当前磁盘挂载情况
df -h
# 查看系统有几个磁盘
fdisk -l
2、对磁盘进行分区
# 对新增磁盘进行分区(/dev/vdb为新增数据盘标识)
fdisk /dev/vdb
3、查看磁盘: fdisk -l
4、磁盘格式化:使用命令:mkfs.ext4 /dev/vdb1(ext4为磁盘格式化的格式)对分区磁盘进行格式化。
5、磁盘挂载到对应目录
# 在根目录下新建个目录
mkdir /data
# 挂载分区命令
mount /dev/vdb1 /data
6、开机自动挂载磁盘
先使用 df -h 查看是否挂载成功
使用命令:blkid 来查看磁盘的UUID和格式
这里推荐大家只是使用blkid /dev/vdb1(blkid 设备名),精确点也少点调试错误。
blkid /dev/vdb1
把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
7、重启查看是否挂载成功
# 重启
reboot
# 重启后查看是否挂载成功
df -h
一、jdk 安装:
卸载旧版本
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
安装MySQL5.7
准备安装文件: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
出现错误:
解决错误:
yum -y install numactl
再次执行:./mysqld --initialize --user=mysql --basedir=/APP/soft/mysql --datadir=/APP/soft/mysql/data
安全启动:
./mysqld_safe --user=mysql &
# 查看初始化密码
cat /var/log/mysqld.log
登录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:用户的操作权限,如
SELECT
,INSERT
,UPDATE
等,如果要授予所的权限则使用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
注意:如果执行遇到以下问题,这样处理
下载:openssl-libs-1.0.2k-19.el7.x86_64.rpm
rpm -ivh openssl-libs-1.0.2k-19.el7.x86_64.rpm --force
安装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
#报错
解决:
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
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语法字段替换。
3、word转成xml:使用LibreOffice的命令把,word转换成xml
# window环境命令
soffice --convert-to xml .\xunshijilu.doc
4、FreeMarker模板:在把文件复制到工程中,并且改后缀为html,成为FreeMarker模板。
5、填写数据:使用FreeMarker查询数据,填入模板中,并输出到指定路径下
6、XML转成PDF:在程序中使用LibreOffice命令,把XML转成PDF