CentOS7 安装配置笔记
==============================
* 使用 UltraISO 9.7 或者 rufus-3.5p 制作ISO的启动U盘
运行安装前最好配置 IPv4 地址和 DNS, 注意要启用以太网卡
否则安装后,需要手动启用网卡和配置IP和DNS
/etc/sysconfig/network-scripts/ifcfg-xxxx
#修改
BOOTPROTO=static #将dhcp换成ststic
ONBOOT=yes #将no换成yes
#新增
IPADDR=192.168.85.100 #静态IP
GATEWAY=192.168.85.2 #默认网关
NETMASK=255.255.255.0 #子网掩码
/etc/resolv.conf
nameserver 8.8.8.8 #google域名服务器
nameserver 8.8.4.4 #google域名服务器
保存退出后,重启(reboot)或者重启网络服务
service network restart
==============================
* 不是必须的
yum -y install wget
==============================
* 不是必须的
cd /etc/yum.repos.d/
mv CentOS7-Base.repo CentOS7-Base.repo.buckup
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
yum makecache
yum -y update
==============================
yum install nano
==============================
//2.0 时代
//添加dotnet产品Feed
//rpm --import https://packages.microsoft.com/keys/microsoft.asc
//yum update
//安装.NET Core所需的组件
//yum install libunwind libicu
■安装 dotnet core SDK
//2.2 官方指导
rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
yum update
yum install dotnet-sdk-2.2
//如果须安装指定版本, 请通过 https://dotnet.microsoft.com/download/dotnet-core/2.2 查找 Package Manager Instructions 定位到特定版本
yum install dotnet-sdk-2.2-2.2.107-1
yum install dotnet-sdk-2.2-2.2.300-1
■安装 runtime
//Add the dotnet product feed, 参见 https://dotnet.microsoft.com/download/linux-package-manager/centos/runtime-current
rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
yum update
//如果安装 dotnet-core & aspnet-core(57M)
yum install aspnetcore-runtime-2.2
//如果仅安装 dotnet-core(27M)
yum install dotnet-runtime-2.2
//如果须安装指定版本, 请通过 https://dotnet.microsoft.com/download/dotnet-core/2.2 查找 Package Manager Instructions 定位到特定版本
yum install dotnet-runtime-2.2.5-1
yum install aspnetcore-runtime-2.2.5-1
//如果遇到报告 package xxx.rpm is not signed 在安装包时加参数 --nogpgcheck 即可
//安装完毕后可通过 dotnet --info 验证
* dotnet core 跨平台注意规避路径拼接 "/" 和 "\" 字符的问题,尽量使用 IO.Path.Combin()
** 手动下载和安装特定版本的 dotnet core 参见<CentOS 7 下安装部署.NET Core多版本环境>
==============================
yum -y install vsftpd
//创建新用户总是登录失败,暂时直接用 root 账号登录
修改 /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
pasv_enabld=YES
pasv_min_port=30000
pasv_min_port=30999
allow_writeable_chroot=YES
修改 /etc/vsftpd/ftpusers, 注释掉 root
修改 /etc/vsftpd/user_list, 注释掉 root
//配置下selinux
getsebool -a | grepftp //查看 selinux 配置
setsebool -P ftpd_full_access on
setsebool -P tftp_home_dir on
reboot
systemctl stop firewalld //暂时关闭防火墙
systemctl start vsftpd
//其他命令
systemctl restart vsftpd //重启vsftpd
systemctl enable vsftpd //开机启用ftp
systemctl disable firewalld //开机不启用防火墙
==============================
放行 TCP 8080, UDP 2020
//启用某个服务/端口
firewall-cmd --zone=public --add-service=https #临时
firewall-cmd --zone=public --add-port=8080-8081/tcp #临时
firewall-cmd --permanent --zone=public --add-service=https #永久
firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp #永久
//如果是要删除,直接修改成remove-service或者remove-port
//修改配置文件后 使用命令重新加载
firewall-cmd --reload
//查看开启的端口和服务
firewall-cmd --permanent --zone=public --list-services #服务空格隔开 例如 dhcpv6-client https ss
firewall-cmd --permanent --zone=public --list-ports #端口空格隔开 例如 8080-8081
//在每次修改 端口和服务后 /etc/firewalld/zones/public.xml 文件就会被修改。
防火墙预定义的服务配置文件是xml文件,目录在 /usr/lib/firewalld/services/;
在 /etc/firewalld/services/ 这个目录中也有配置文件,但是 /etc/firewalld/services/ 目录优先于 /usr/lib/firewalld/services/ 目录。
==============================
//安装 supervisor
yum install epel-release
yum install -y supervisor
systemctl enable supervisord # 开机自启动
systemctl start supervisord # 启动supervisord服务
systemctl status supervisord # 查看supervisord服务状态
ps -ef|grep supervisord # 查看是否存在supervisord进程
//安装完成之后,如果不存在 /etc/supervisord.conf 则初始化配置
echo_supervisord_conf > /etc/supervisord.conf
■ Supervisor UI 管理台
Supervisor 默认给我们提供了一个图形界面来供我们管理进程和任务,在 Linux 中我们需要手动开启一下。打开位于/etc/supervisord.conf文件,去掉 inet_http_server 节点的注释
[inet_http_server]
port=*:9001
然后可通过 http://IP:9001 来查看运行的进程了,记得防火墙放行 tcp 9001
//创建 /etc/supervisor 目录
mkdir /etc/supervisor
在 /etc/supervisor/config.d/ 目录下新建一个配置文件
mkdir /etc/supervisor/config.d/
touch cmscore.conf
//编辑 cmscorewas.conf
[program:cmscorewas]
command=dotnet CmsCoreWAS.dll
directory=/home/cmdcorewas/
environment=ASPNETCORE_ENVIRONMENT=Production
autostart=true
autorestart=true
;startsecs=1
stopsignal=INT
user=root
stderr_logfile=/var/log/CmsCoreWAS.err.log
;stdout_logfile=/var/log/CmsCoreWAS.out.log
//还要修改 /etc/supervisord.conf, 去掉对 include 节点的注释,指定应用的配置路径
[include]
files=/etc/supervisor/config.d/*.conf
//保存退出后,需要重新加载一下配置
supervisorctl reload
==============================
//安装 GPG-Key
rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
//安装 MariaDB
yum -y install MariaDB-server MariaDB-client
//安装成功之后启动MariaDB服务,并设为开机自启, 记得开放 tcp 3306
systemctl start mariadb #启动服务
systemctl enable mariadb #设置开机启动
systemctl restart mariadb #重新启动
systemctl stop mariadb.service #停止MariaDB
//登录数据库,缺省口令为空
mysql -uroot -p
//MariaDB的相关简单配置
mysql_secure_installation
---------------------
//首先是设置密码,会提示先输入密码
Enter current password for root (enter for none):<–初次运行直接回车
//设置密码
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码
//其他配置
Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车(后面授权配置)
Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
---------------------
//配置MariaDB的字符集
//使用vim /etc/my.cnf.d/server.cnf命令编辑server.cnf文件,在[mysqld]标签下添加:
---------------------
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
---------------------
//配置初始化完成,重启Mariadb。
systemctl restart mariadb
//创建用户命令(用户名,密码请自行修改),先登录 MariaDB
create user username@localhost identified by 'password';
//授予外网登陆权限
grant all privileges on *.* to username@'%' identified by 'password';
flush privileges;
//如果启用了防火墙
firewall-cmd --permanent --zone=public --add-service=mariadb
================
//下载了安装用的yum Repository,大概25KB的样子
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum -y install mysql57-community-release-el7-11.noarch.rpm
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
//开始安装MySQL服务器
yum -y install mysql-community-server
//修改大小写敏感设置
nano /etc/my.cnf
在最后添加一行
lower_case_table_names=1
说明
0=区分大小写
1=不区分大小写
skip-name-resolve //不做主机名解析, 可加快客户端连接速度
//启动MySQL
systemctl start mysqld
//启动失败 [ERROR] –initialize specified but the data directory has files in it. Aborting.
//mv /var/lib/mysql/mysql /var/lib/mysql/mysql.bak 后重新启动服务
//查看MySQL运行状态
systemctl status mysqld
//重启动MySQL
systemctl restart mysqld
//找出此时root用户的密码
grep "password" /var/log/mysqld.log
//找到的密码可能已过期,如果无法登陆mysql,需要重置密码
mysql_secure_installation
//进入mysql
mysql-uroot -p
//查看密码策略
mysql> SHOW VARIABLES LIKE 'validate_password%';
//修改密码策略
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=4;
//上述修改时临时性的,服务重启即失效
//要持久化密码策略,需要修改 /etc/my.cnf, 添加
validate_password_policy=0
validate_password_length=4
//修改密码
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
mysql>FLUSH PRIVILEGES;
//导入数据库脚本
mysql -uroot -p<dbInit.sql
//因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉
yum -y remove mysql57-community-release-el7-11.noarch
//授予外网登陆权限
grant all privileges on *.* to username@'%' identified by 'password';
flush privileges;
//如果启用了防火墙
firewall-cmd --permanent --zone=public --add-service=mysql
###################
#手动下载rpm安装包#
到mysql网站或者其他镜像站点下载rpm包,共5个rpm包
http://mirror.centos.org/altarch/7/os/aarch64/Packages/libaio-0.3.109-13.el7.aarch64.rpm
http://mysql.mirror.kangaroot.net/Downloads/MySQL-5.7/mysql-community-server-5.7.25-1.el7.x86_64.rpm
http://mysql.mirror.kangaroot.net/Downloads/MySQL-5.7/mysql-community-libs-5.7.25-1.el7.x86_64.rpm
http://mysql.mirror.kangaroot.net/Downloads/MySQL-5.7/mysql-community-common-5.7.25-1.el7.x86_64.rpm
http://mysql.mirror.kangaroot.net/Downloads/MySQL-5.7/mysql-community-client-5.7.25-1.el7.x86_64.rpm
mysql-community-libs会与maridb-libs包冲突
卸载
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
libaio可以直接yum安装,也可以下载安装
安装mysql5.7,可以rpm -ivh一个一个安装,也可以一条命令全部安装。
安装时注意按照上面给出的软件顺序安装
启动
systemctl start mysqld
查找临时密码
grep "password" /var/log/mysqld.log
2018-09-24T09:30:44.743765Z 1 [Note] A temporary password is generated for root@localhost: g9bbd.r?Cj40
登录
mysql -uroot -pg9bbd.r?Cj40
修改密码
mysql> set password=password("Mysql@657");
######################
* FX4.0 同时支持 4.1-5.7 的 MySQL.Data.dll 版本为 v6.2.5.0
==============================
推荐版本 1.6.10
http://files.freeswitch.org/releases/freeswitch/
要支持 WebRTC 推荐 CentOS8 下安装 1.10.6
客户端注册异常, 可尝试删除 db/ 下所有文件后重启服务
==============================
rpm -qa|grep xxxx 查询已安装的rpm列表 (q表示query,a表示查询所有,grep表示过滤)
rpm -e xxxx 删除 xxxx 软件包
rpm -ivh xxxx.rpm 安装rpm包 (i=install 安装, v=verbose 提示, h=hash 进度条)
rpm -e xxxx 卸载rpm包
ps -ef|grep 要查找的进程关键字
netstat -nap | grep 进程pid #查看pid占用端口
cat 要查看的文件
mkdir 创建目录
rm 删除文件
mv 移动文件
cp 复制文件
ls
ls -l 查看软链接
systemctl {start|stop|status|restart|quit}
ip addr 查询本机IP
firewall-cmd
磁盘相关命令:
df -hl 查看磁盘剩余空间
df -h 查看每个根路径的分区大小
du -sh [目录名] 返回该目录的大小
du -sm [文件夹] 返回该文件夹总M数
du -h [目录名] 查看指定文件夹下的所有文件大小(包含子文件夹)
du -lh --max-depth=1 看下一级各文件夹大小
查看硬盘的分区 #sudo fdisk -l
查看IDE硬盘信息 #sudo hdparm -i /dev/hda
查看STAT硬盘信息 #sudo hdparm -I /dev/sda
或
#sudo apt-get install blktool
#sudo blktool /dev/sda id
查看硬盘剩余空间 #df -h #df -H
查看目录占用空间 #du -hs {目录名}
优盘没法卸载 #sync fuser -km /media/usbdisk
允许所有用户运行权限 #chmod 777 {文件名}
禁止所有用户运行权限 #chmod a-x {文件名}
查看文件属性 #lsattr {文件名}
修改文件属性,禁止只读 #chsattr -i {文件名}
Linux下通过 rm -rf 删除大量文件时报错:Argument list too long
#ls |[grep {关键字}|] xargs -n 10 rm -fr
文件硬/软链接 #ln [-s] {源文件} {目标文件链接}
文件夹软链接(--不允许给文件夹创建硬连接) #ln -s {源文件夹}/ {目的文件夹软链接}
如将 zlmedia 的 record 目录迁移到 1T大硬盘
#cd /usr/local/tehike/thmediaserver/www
#mv ./record /data/tehike/
#ln -s /data/tehike/record ./record
注意:在删除时软连接时,软连接后面不要加ls / , 加了 / 相当于删除源文件夹的所有内容。
可以直接在软连接下创建文件 就相当于在原文件夹下创建了文件。删除了软连接,源文件夹的内容不会变。
你对连接的任何操作几乎都是在操作源文件
修改时区
#timedatectl status
#timedatectl set-timezone "Asia/Shanghai"
修改日期时间
#date -R
#date -s MMDDhhmmYYYY.ss //月日时分年.秒
查找文件, 排除 Nfc 目录
find . -path ./Nfc -prune -o -type f -name *.mk -print
==============================
方案1.使用 ZKWeb.System.Drawing 并将 将项目中所有“System.Drawing”改为“System.DrawingCore”
方案2.使用 System.Drawing.Common 或者 Mono.System.Drawing
方案1或2都依赖 libgdiplus,安装步骤
yum install -y epel-release
yum makecache fast
yum install -y libgdiplus-devel
####################
解决绘制验证码时 Arial 字体乱码
fc-list //CentOS中查看当前系统已安装的字体列表
//如果不存在此命令,请使用下面的命令安装:
yum -y install fontconfig
//然后从Windows系统的C:\Windows\Fonts目录中,复制出arial.ttf,并上传到CentOS主机中的/usr/share/fonts/lyx目录下,然后更新字体缓存
fc-cache
==============================
安装工具程序
yum install rpm-build
yum install rpmdevtools
创建工作目录树
cd
rpmdev-setuptree
生成6个目录 BUILD,RPMS,SOURCES,SPECS,SRPMS
创建或修改 *.spec 文件
cd SPECS
nano cmscorewas.spec
===================== cmscorewas.spec 示例 ===================
Name: cmscorewas
Version: 1.2.5
Release: 20200512
Summary: The "CmsCoreWAS" program
License: GPLv3+
%define _prefix /usr/local/tehike/cmscorewas
%description
%install
rm -rf %{buildroot}
mkdir -p %{buildroot}%{_prefix}
cp -r /mnt/e/Projects/VSPCore/CmsCoreWAS/bin/Release/netcoreapp2.2/publish/* %{buildroot}%{_prefix}
%post
rm -f /etc/supervisord.d/cmscorewas.ini
cp %{_prefix}/install/cmscorewas.ini /etc/supervisord.d/
%preun
%postun
rm -rf %{_prefix}
rm -f /etc/supervisord.d/cmscorewas.ini
%files
%defattr(-,root,root,-)
%{_prefix}/*
%changelog
==============================================================
执行打包命令
rpmbuild -bb ./rpmbuild/SPECS/*.spec
或者在SPECS目录下直接
rpmbuild -bb *.spec
==============================
下载alien(yum源中没有alien可用包)
wget http://linux4you.in/alien-8.81-2.noarch.rpm
安装 epel
yum install epel-release
安装alien
yum install alien
转换为rpm
alien xxx.deb generated
==============================
配置安装mono程序的yum来源
参考文献:
https://www.mono-project.com/download/stable/#download-lin-centos
https://www.monodevelop.com/download/#fndtn-download-lin-centos
1. > rpm --import "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"
2. > curl https://download.mono-project.com/repo/centos7-stable.repo | tee /etc/yum.repos.d/mono-centos7-stable.repo
step 2也可以使用以下命令代替:
> yum-config-manager --add-repo https://download.mono-project.com/repo/centos/
安装monodevelop 这是一个开发工具。
yum install monodevelop -y
已知问题:
monodevelop 在 linux 安装后 debug 报错 Debugger operation failed, 不同的版本报错不一样, 有的显示了文件名,有的不显示,是文件找不到的错误。归根结底是找不到这个文件:gnome-terminal-server。
故障原因:
It was because the folder "gnome-terminal-server" had moved from /usr/lib/gnome-terminal/ to /usr/libexec/
解决方案:
cd /usr/lib
sudo mkdir gnome-terminal
cd gnome-terminal
sudo ln -s /usr/libexec/gnome-terminal-server
已知问题:
yum 上的版本 7.8.4(build2) 支持3.1, 不支持 net5
==============================
参考文献:
https://blog.csdn.net/weixin_46091818/article/details/110446614
1. 卸载旧版本 docker
> yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2. 安装yum-utils软件包(提供yum-config-manager 实用程序)并设置稳定的存储库
> yum install -y yum-utils
> yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
3. 安装docker
> yum install docker-ce docker-ce-cli containerd.io
4. 启动docker并设置开机启动
> systemctl start docker #启动docker
> systemctl enable docker #设置开机启动docker
5. 测试
> docker version #查看一下docker版本
> docker run hello-world #运行hello-world,验证docker是否安装成功
> docker ps --all #查看执行过的docker进程
> docker stop 容器id #停止
> docker rm 容器id #删除
==============================
1.赋予脚本可执行权限(/opt/script/autostart.sh是你的脚本路径)
>chmod +x /opt/script/autostart.sh1
2、打开/etc/rc.d/rc/local文件,在末尾增加如下内容
/opt/script/autostart.sh
3、在centos7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限
>chmod +x /etc/rc.d/rc.local
==============================
由于CentOS没有官方FFmpeg rpm软件包。但是,我们可以使用第三方YUM源完成此工作。
1. Nux Dextop 源. v2.8.15
CentOS 7
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
yum install ffmpeg ffmpeg-devel -y
2. okay 源, v3.2.4
参见 https://okay.com.mx/blog-news/rpm-repositories-for-centos-6-and-7.html
yum install epel-release
rpm -ivh http://repo.okay.com.mx/centos/7/x86_64/release/okay-release-1-5.el7.noarch.rpm
yum install ffmpeg
安装完成后可运行 ffmpeg 测试
==============================
连不上 SVN, 检查 /etc/sysconfig/svnserve
[root@source ~]# cat /etc/sysconfig/svnserve
# OPTIONS is used to pass command-line arguments to svnserve.
#
# Specify the repository location in -r parameter:
OPTIONS="-r /home/svn/repos/"
看服务是否正常
systemctl status svnserve
systemctl start svnserve
SVN不能打开文件,权限不够的问题解决方式
配置selinux
[root@make_blog ~]# cat /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.(关闭selinux)
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
##最后,再重启即可.
==============================
yum 官方源的版本太老, okay 源的新一点,但是下载很慢
因此从官网 https://nodejs.org/en/download/ 下载LTS二进制文件 Linux Binaries(x64)
cd ~
wget https://nodejs.org/dist/v14.17.5/node-v14.17.5-linux-x64.tar.xz
xz -d node-v14.17.5-linux-x64.tar.xz
tar -xvf node-v14.17.5-linux-x64.tar
mv node-v14.17.5-linux-x64 /usr/local/node
#v14.15.4
wget https://nodejs.org/dist/v14.15.4/node-v14.15.4-linux-x64.tar.xz
xz -d node-v14.15.4-linux-x64.tar.xz
tar -xvf node-v14.15.4-linux-x64.tar
mv node-v14.15.4-linux-x64 /usr/local/node
到此为止,nodejs 就算是安装好了一半,可以执行如下命令测试:
cd /usr/local/node/bin
node -v
npm -v
加入环境变量,让npm和node命令全局生效
nano /etc/profile
在文件末尾增加配置
# set for nodejs
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH
执行命令使配置文件生效
source /etc/profile
也可以采用软链接方式(推荐)
ln -s /usr/local/nodejs/bin/npm /usr/local/bin/
ln -s /usr/local/nodejs/bin/node /usr/local/bin/
另外也可以通过 nvm 来安装和管理,方便在多个版本之间切换
#curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.35.3/install.sh | bash
或者
#wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.35.3/install.sh | bash
之后
#source ~/.bashrc
PS:通常不要用root权限安装软件,因为线上任何服务部署都不允许用root,其他软件用root安装了,很可能导致部署的时候各种日志文件为root权限
如果出现 SSL connect error, 有可能ssl证书可能过期了, 解决方案
#yum update -y nss curl libcurl
安装node
#nvm install stable #安装最新稳定版
#nvm install v14.15.4 #安装指定版本
查看
#nvm list
切换版本
#nvm use 版本号
==============================
export http_proxy=your.proxy.address:10809
export https_proxy=your.proxy.address:10809