很久前,我曾在Ubuntu服务器上在线给/home扩了块2T新硬盘,CentOS下应该一样。贴出过程供参考:
ll /dev/sd* # 开机,看到了新安装的2T硬盘sdb sudo fdisk /dev/sdb # 把sdb做成1个主分区(8e:LVM标识) sudo fdisk -l # 查看分区列表,多出一个/dev/sdb1 ll /dev/sd* # 确实有/dev/sdb1 sudo pvcreate /dev/sdb1 # 把/dev/sdb1创建成pv(物理卷) sudo pvdisplay # 查看pv,其中多了/dev/sdb1 sudo vgdisplay # 查看vg,名字叫ubuntu sudo vgextend ubuntu /dev/sdb1 # 在名字叫ubuntu的vg中添加/dev/sdb1 sudo vgdisplay # 查看vg,Free PE多了-PE(约2T) sudo lvdisplay # 查看lv,/dev/ubuntu/home还是老样子 sudo lvextend -l + /dev/ubuntu/home # 把vg中新增的-PE都加入/dev/ubuntu/home sudo vgdisplay # 查看vg,Free PE又变成0了 #sudo e2fsck -f /dev/ubuntu/home # 给/dev/ubuntu/home查错,发现需要umount,放弃! df # 查看文件系统,/home还是约90% sudo resize2fs /dev/ubuntu/home # 更新文件系统 df # 查看文件系统,/home变成13%了,收工!
用lvm调整分区的操作还是有风险的,网上相关文章的一些操作并不适合本服务器。例如umount之后再操作:/home要是umount了,估计我这次登陆也就歇了,何况我要在线扩容?而e2fsck -f操作也是需要umount的,我认为它不是必须的。有篇文章直接把新lvm分区格式化后mount到/home,我想这会与原先的/home冲突,千万别尝试。
正确的思路是:把新空间做成pv后直接添加进/home所在的vg,然后用这些空间扩展/home。 仅仅扩展/home分区的大小还不够,还要用resize2fs更新文件系统。 这里提醒,lv调整与fs更新是有严格的先后顺序的:分区容量扩大时:先lvextend,再resize2fs;分区容量减小时:先resize2fs,再lvreduse。
在 CentOS 7 中更改 Docker 仓库的步骤如下:
- 备份
/etc/docker/daemon.json
文件:
sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.backup
2.编辑 /etc/docker/daemon.json
文件,修改 "registry-mirrors"
键对应的值为新的 Docker 仓库地址:
sudo vi /etc/docker/daemon.json
在 daemon.json
文件中添加以下内容:
{ "registry-mirrors": ["https://dockerhub.azk8s.cn"] }
3.重启 Docker 服务:
Copy code sudo systemctl restart docker
这样就成功更改了 CentOS 7 中的 Docker 仓库为 https://dockerhub.azk8s.cn
。
Samba 是一种可以在 Linux 和 Windows 系统之间共享文件和打印机的协议。在 CentOS 7 系统中,可以通过以下步骤使用 Samba 共享文件夹:
- 安装 Samba
在终端中执行以下命令安装 Samba:
sudo yum install samba samba-client samba-common
- 创建共享目录并设置权限
在终端中创建一个共享目录,例如:
sudo mkdir /shared_folder
然后设置共享目录的权限,例如:
sudo chmod -R 0777 /shared_folder
这将授予任何用户都可以访问共享目录的权限。
- 配置 Samba
编辑 Samba 配置文件 /etc/samba/smb.conf
,可以使用任何文本编辑器进行编辑。例如,使用 nano
编辑器:
sudo nano /etc/samba/smb.conf
在文件末尾添加以下内容:
[shared_folder] path = /shared_folder read only = no guest ok = yes
这将创建一个名为 shared_folder
的共享文件夹,指向 /shared_folder
目录,并允许任何人都可以访问它。
- 启动 Samba 服务
在终端中执行以下命令启动 Samba 服务:
sudo systemctl start smb
- 配置防火墙规则
如果 CentOS 7 的防火墙是启动的,则需要配置防火墙规则以允许 Samba 服务通过。例如,使用以下命令允许 Samba 服务通过:
sudo firewall-cmd --permanent --add-service=samba sudo firewall-cmd --reload
现在,您应该可以通过其他计算机上的 Windows 系统访问 CentOS 7 上的共享文件夹了。
要在CentOS系统中设置静态IP地址并启用桥接模式,可以按照以下步骤进行操作:
1、打开网络配置文件
使用文本编辑器打开网络配置文件 ifcfg-br0,该文件通常位于 /etc/sysconfig/network-scripts/ 目录下。例如,使用vi编辑器可以输入以下命令:
bashCopy code vi /etc/sysconfig/network-scripts/ifcfg-br0
2、配置IP地址
在ifcfg-br0文件中,将IPADDR、NETMASK和GATEWAY设置为您想要的静态IP地址、子网掩码和网关地址。例如:
IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1
3、配置桥接参数
在ifcfg-br0文件中,将以下参数设置为适当的值:
DEVICE=br0 TYPE=Bridge ONBOOT=yes BOOTPROTO=static DELAY=0
4、配置物理接口
在ifcfg-eth0文件中,将以下参数设置为适当的值:
DEVICE=eth0 TYPE=Ethernet ONBOOT=yes BRIDGE=br0
注意:以上示例中,假设使用的是eth0物理接口,如果您使用的是其他接口,请相应地更改ifcfg-eth0文件名以及在ifcfg-eth0文件和ifcfg-br0文件中使用的接口名称。
5、重启网络服务
完成上述更改后,请重启网络服务以使更改生效。您可以使用以下命令来重启网络服务:
systemctl restart network
完成上述步骤后,CentOS系统应该已经成功地配置了静态IP地址并启用了桥接模式。
(1)环境信息
CentOS Linux release 7.9.2009、Linux version 3.10.0-1160.el7.x86_64、Python 3.6.8
(2)依赖包
MarkupSafe==2.0.0、dataclasses==0.8、Werkzeug==2.0.0、Jinja2==3.0.0、click==8.0.0、itsdangerous==2.0.0
(3)安装软件包
第一步:安装依赖包
tar -xzvf xxxx.tar.gz && cd xxxx && python setup.py install
第二步:安装Flask软件包
tar -xzvf Flask-2.0.0.tar.gz && cd Flask-2.0.0 && python setup.py install
(4)代码示例
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run(host='IP地址', debug=True)
(5)浏览器访问测试

1)操作系统:CentOS7.9
2)Docker版本:20.10.9
3)NVIDIA 显卡型号:RTX 3090
4)NVIDIA 驱动版本:526.86
https://download.docker.com/linux/static/stable/x86_64/docker-20.10.9.tgz
其他版本可通过一下地址访问,选择对应版本
https://download.docker.com/linux/static/stable/x86_64/

# 拷贝文件到GPU服务器并解压安装文件 tar xzvf docker-20.10.9.tgz

# 拷贝到系统脚本目录 sudo cp docker/* /usr/bin/ # 后台启动docker sudo dockerd &
出现如下内容表名docker 启动完成,回车退出即可
INFO[2023-07-03T14:05:58.+08:00] Docker daemon commit=79ea9d3 graphdriver(s)=overlay2 version=20.10.9
INFO[2023-07-03T14:05:58.+08:00] Daemon has completed initialization

#查看docker 版本信息 docker -v #查看docker 详细信息 docker info

1)nvidia-docker-runtime作用
通过nvidia-docker-runtime,可以实现在docker容器内部使用nvidia的gpu 进行相关的模型训练和推理。
docker 安装完成后,可通过docker run 创建常规的docker容器,但是不安装nvidia相关组件无法使用NVIDIA的显卡,docker run 添加 --runtime=nvidia 或者添加--gpus参数报错,并且普通创建的容器执行nvidia-smi 没有返回结果,会出现如下提示。
docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
unknown flag: --gpus
2)不同版本docker 安装nvidia gpu SDK区别
在docker19.x以前的版本需要下载nvidia-docker2来启动容器;通过使用nvidia-docker run或者docker run --runtime=nvidia的方式来指定gpu;
docker19.x后版本使用gpu只需要加个参数–gpus all即可(all:使用所有的gpu,如果要使用2个gpu:–gpus 2,也可直接指定哪几个卡:–gpus '"device=1,2"'
3)nvidia-container-runtime 离线包下载
下载nvidia-container-runtime依赖包到本地,找一台可以上网的centos7.x的虚拟机(vmware虚拟机即可完成)按顺序执行如下命令:
#安装yum-utils,通过该包的repotrack模块可以快速下载指定包及其所有依赖包。 sudo yum -y install yum-utils #指定yum镜像源包含nvidia-github distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.repo | sudo tee /etc/yum.repos.d/nvidia-container-runtime.repo

#下载离线安装包到本地 cd /app/soft/nvidia-container-runtime/ repotrack nvidia-container-runtime

# 打包nvidia-container-runtime离线包 cd /app/soft/ tar -zcvf nvidia-container-runtime.tar.gz nvidia-container-runtime/
4)nvidia-container-runtime离线包安装
拷贝nvidia-container-runtime.tar.gz文件到离线GPU服务器,按顺序执行下列命令进行安装、验证。
#解压nvidia-container-runtime.tar.gz tar -zxvf nvidia-container-runtime.tar.gz #离线安装所有rpm包 cd nvidia-container-runtime rpm -Uvh --force --nodeps *.rpm #安装完后需要重启容器,未设置为系统启动服务,也可以通过kill docker进程再启动方式重启 systemctl restart docker #查看安装结果 whereis nvidia-container-runtime

CentOS Docker NVIDIA环境离线安装已经完成,下一章将继续离线Docker镜像制作并安装
在 CentOS 7 上使用 iptables -A
添加规则后,规则没有在重启虚拟机后保存,这个问题经常困扰许多用户。
iptables-save
是一个用于保存当前 iptables
规则的命令,执行后,它会将这些规则输出到标准输出。一般来说,我们可以将输出重定向到一个文件,如 /etc/sysconfig/iptables
,这个文件通常用于存储 iptables
规则。

让我们来看一下典型的步骤:
- 添加规则
当你使用iptables -A
添加规则时,该规则会立即生效。例如,你可能输入以下命令:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
这条命令允许所有 TCP 端口 80 的流量(通常用于 HTTP)。执行后,你可以用 iptables -L
查看规则已成功添加到 INPUT
链中。
- 保存规则
规则已经生效,但为了在系统重启后保留,你需要保存它们。iptables-save
可以输出规则的状态,通常保存的规则格式是机器可读的。例如:
iptables-save > /etc/sysconfig/iptables
这一步将当前的 iptables
规则保存到 /etc/sysconfig/iptables
文件中。

- 为什么重启后规则消失?
虽然你执行了 iptables-save
,并将输出保存到文件中,但这个文件并不会自动在系统启动时被加载。重启时,系统并不会自动应用保存的规则。因此,重启后规则消失的现象可能是因为系统没有在启动时从 /etc/sysconfig/iptables
文件中加载规则。
真实场景中的案例:某企业在部署一套 Web 服务器时,发现即使在防火墙上设置了正确的 iptables
规则,服务器每次重启后,所有的规则都会丢失。尽管管理员使用了 iptables-save
,但并没有设置让系统在启动时加载这些规则,导致重启后规则无法恢复,服务器对外暴露了非预期端口,存在安全隐患。
- 解决方案:确保规则在重启后生效
要确保iptables
规则在系统重启后仍然有效,你需要做两件事情:
- 使用
iptables-save
保存规则:
正如前面提到的,使用iptables-save
将当前的规则保存到文件中。例如:
iptables-save > /etc/sysconfig/iptables 这一步保证了规则被正确保存到文件中。
- 使用
iptables-restore
自动恢复规则:
系统启动时,需要确保这些规则被自动恢复。你可以通过启用iptables
服务来自动加载规则。在 CentOS 7 中,你需要执行以下命令:

systemctl enable iptables
这个命令会确保系统启动时,iptables
服务会自动从 /etc/sysconfig/iptables
文件中加载规则。确认服务已经启动后,可以使用以下命令手动加载保存的规则:
iptables-restore < /etc/sysconfig/iptables
这一步可以立即应用保存的规则,而无需等待重启。

- 更多示例
假设你添加了一条规则,拒绝所有的 ICMP 包(通常用于 ping 命令),规则如下:
iptables -A INPUT -p icmp -j REJECT
你确认这条规则已经生效了,并且希望在重启后仍然存在。此时,可以使用 iptables-save
命令将规则保存到 /etc/sysconfig/iptables
文件中。
重启系统后,系统不会自动应用这个规则,如果没有执行 systemctl enable iptables
,规则仍然会丢失。因此,关键的步骤是确保 iptables
服务在启动时自动加载保存的规则。
现实中的案例研究:一家云服务提供商在其服务器上应用了复杂的防火墙规则,以防止未经授权的访问。然而,由于运维团队未能正确启用 iptables
服务,每次服务器重启后,这些规则都会消失。该问题导致多次系统漏洞曝光,迫使公司重新审查其系统配置。通过启用 iptables
服务并定期检查规则保存情况,团队确保了系统防火墙规则的持久性。
- 总结解决方案步骤:
- 使用
iptables -A
添加规则,并确认规则已经生效。 - 使用
iptables-save > /etc/sysconfig/iptables
保存规则到文件中。 - 确保
iptables
服务在系统启动时被启用:
systemctl enable iptables
- 可选地,手动恢复规则,使用以下命令:
iptables-restore < /etc/sysconfig/iptables
- 其他注意事项
虽然在 CentOS 7 中iptables
仍然广泛使用,但对于较新的发行版,可能会使用firewalld
作为替代。如果你发现系统已经启用了firewalld
,它可能会覆盖你的iptables
配置。你可以通过以下命令检查firewalld
是否运行:
systemctl status firewalld
如果你只想使用 iptables
,你可以禁用 firewalld
:
systemctl stop firewalld systemctl disable firewalld
现实中的经验:有些团队为了简化防火墙管理,转而使用了 firewalld
,因为它提供了更高级别的抽象。尽管如此,许多传统用户仍然偏好 iptables
,特别是在处理大规模数据中心和特定的网络安全规则时。无论选择哪种工具,都需要确保相关服务在系统启动时正确加载配置,以避免规则丢失问题。
这种情况下,重点不仅在于保存规则,更在于系统的启动过程能正确加载这些规则。通过使用 iptables-save
保存并启用 iptables
服务,可以确保每次重启后规则仍然有效。
适合计算机小白的 VMware部署centos7系统步骤详解
1.安装并打开VMWARE(使用管理员身份运行)
2.在VMware中新建虚拟机

3.新手小白可以选择自定义安装可以更好的了解一台客户机的组成

4.虚拟机兼容性,系统会默认选择你下载的workstation的最新版本,直接单机下一步即可,

5.安装来源,选择稍后安装操作系统

6.操作系统类型,选择linux centos7 64

7.虚拟机的名称和位置这个可以自己随意选择,懒惰的朋友可以直接单击下一步

8.虚拟机CPU,默认一个即可单击下一步

9.内存选择,可以默认1024MB 1个G如果有需要可以自行选择,然后单击下一步

10.网络连接,选择NAT方便后期链接上网然后下一步

11..IO类型,默认下一步

12.虚拟磁盘类型,默认下一步

13.虚拟磁盘类型,选择创建新虚拟磁盘然后下一步

14.磁盘大小,选择20G即可,默认下一步

15.磁盘文件名,默认下一步,然后点击玩成即可

16..在新的虚拟机,双击DVD,,选择使用ISO 镜像,选择CENTOS7 安装镜像,单击确定即可

17.启动已经安装好带有CentOS 7的客户机 ,进入此页面选择 Install CentOS 7开始安装CentOS 7

18.等待系统自行进入下图选择语言的页面,系统会默认选择English英文语言,如果你是计算机小白,又不是英语大神的情况下,可以下拉到最下面选择中文语音,便于自己的学习和操作,单击继续

19.安装信息摘要,大部分选择默认即可,注意时间地区选择上海时区,其中最要的一个选项是软件的选择,对于计算机小白来说一定要选择带GUI的服务器,并且勾选后面的兼容性和开发工具,方便之后我们的操作。安装位置点进去默认完成即可,网络选择大家主机名默认不要改变,之后点击开始安装



20.设置root密码,用户可以不用创建然后等待系统自己安装即可需要20分钟左右,之后重启,然后同意许可,完成配置时区,用户名,密码root身份进入系统桌面

前提在windows环境下,使用UltraISO软件制作系统U盘启动盘。





- 什么也不需要选择默认的自动配置分区就可以了




- 这里注意由于设置的密码过于简单,需要点击两次完成,才可以生效














在Linux当中有一些命令只有root账户才能使用,怎么样才能使普通的用户可以执行root权限的命令呢,就是要使用一个名字叫做sudo的命令,下面是对sudo命令的一些介绍
sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。使用权限:在 /etc/sudoers 中有出现的使用者。



















本专栏所有文章均为南京课工场学员投稿,如有问题欢迎指出讨论,未经允许,禁止转载!
以下内容基于曙光服务器CentOS 7系统上安装Ansys 19.2软件的过程记录
过程部分参考如下知乎链接
午初刚玉:Linux ANSYS Fluent计算集群配置实录
一、软件及安装视频链接
Ansys 19.2 linux 安装包及激活成功教程文件如下:(由于没有百度云盘超级会员,视频中iso文件被解压后再压缩为3个zip文件了,可选择解压后合并文件,剩余安装过程与视频相同)
https:// pan.baidu.com/s/1YT2sOs Gxt-f9Jngx-EMb6w链接:https://pan.baidu.com/s/1YT2sOsGxt-f9Jngx-EMb6w
提取码:02ge
安装视频链接如下:
Ansys 19.2 linux
链接:https://pan.baidu.com/s/1X4bWIF__esI2SjAKgDBJCQ
提取码:znnb
按照视频将软件安装到共享文件夹后,便可以在各节点单独调度fluent,cfx等软件;
其中挂载ntfs格式硬盘的方法如下:
使用ntfs-3g挂载NTFS格式的移动硬盘_微鸽-CSDN博客
ntfs-3g软件包如下
https:// pan.baidu.com/s/17bCnTp HGwxszjz9MHaUBow链接:https://pan.baidu.com/s/17bCnTpHGwxszjz9MHaUBow
提取码:4f14
二、实现多节点并行设置
- 在软件安装完成后还需要利用ssh实现多节点的并行计算,在此过程碰到的问题如下:cfx并行时不接受子节点名称带有-或者_的形式(具体如下),因此初始命名的comput-0-0等需要起个别名,具体操作如下:
如何实现Rocks集群系统的CentOS 服务器计算集群进行 CFX分布式并行计算
由于可使用图形化界面,故在手动找到etc文件夹下hosts文件夹,在原有内容下面添加
ip地址 原名称 现名称 其它名称...
如:(记得中间加空格)
10.1.1.130 comput-0-0 node0
即可实现使用node0名称调用该子节点;
2. 防火墙开启造成的并行错误
关闭防火墙可参考以下链接:
CentOS7 关闭防火墙_数据源博客-CSDN博客_centos7关闭防火墙
3. 由于初始设置中ssh node0时设置了密码,在实现并行时由于来不及输入密码会造成并行错误,此时召唤了远程曙光工程师协助,完成了脱密;(安装的clusconf-2.4.tar.gz包如下);之后调用时就不会报错了;
https:// pan.baidu.com/s/1Xa7MIc 63F2E_0ZYW3utmyw链接:https://pan.baidu.com/s/1Xa7MIc63F2E_0ZYW3utmyw
提取码:dvwc
具体代码操作如下:
https:// pan.baidu.com/s/11TSUCF bVRkgWdy72C0FwHQ链接:https://pan.baidu.com/s/11TSUCFbVRkgWdy72C0FwHQ
提取码:mcom
三、断电重新链接
为了保证服务器在断电重连后软件还能继续使用,进行了断电测试,碰到如下问题:
在admin账户挂载节点输入以下命令来挂载主节点
mount -t nfs 10.1.1.1:/public /public
挂载成功,但此后其它节点无法正常挂载;
后先挂载子节点再挂载主节点没任何问题;(唉,其实主节点并不需要挂载)
四、其他问题
实际操作中发现,由于分辨率不够(很奇怪,最终发现在开启主节点时不要连接VGA线,开启后再连接VGA线,主节点的分辨率会变回正常分辨率范围),fluent调取节点部分无法显示在可视范围,可通过能实现分辨率高的子节点打开运行fluent从而调用其它子节点;
主要分享一下安装CentOS7在物理机安装过程中遇到的问题
(一开始安装的CentOS 8,但是安装源那过不去了,换过好多安装源,也重新下载过新的CentOS 8,都没解决,然后换的CentOS 7)
1.用过windows pe的分区工具很容易看懂,物理机的硬盘只能分个基础分区,也就是只能分“逻辑分区”,不要在继续什么c、d盘了,否则安装界面显示你没有可用空间。(主分区我试过,一样安装不上)。
2.具体什么报错忘了,反正就是黑底白字,安装进行不下去了
解决办法:
输入:cd /dev
然后:ls(是小写“L”)
u盘盘符应该是:sd(第一个“ * ”是字母“a或b或c或d...,第二个“ *“是数字)(比如我的u盘盘符是“sdc4”)
记住盘符
然后:reboot(重启)
在这个界面(用的CentOS 8的界面,别介意,道理一样):

选择第一行,按:Tab键或“E”键,把"hd"后修改为“/dev/(你的盘符)”
就这个(用的CentOS 8的界面,别介意,道理一样):

然后“ctrl+X”或“enter”键运行,就过去了。
后边的都按流程走就ok了。
然后还有分区了,具体没看太明白,遇到分区有问题了可以看看大神的经验(大神链接:https://www.cnblogs.com/xiashiwendac
CentOS7安装,GPT分区_ruanhao1203的专栏-CSDN博客_centos gpt分区
)。
自以为的经验
cat /etc/redhat-release
uname -r
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available 已加载插件:fastestmirror Error getting repository data for elrepo-kernel, repository not found # 看到error说明没有安装ELRepo
#更新yum源仓库 yum -y update #载入ELRepo仓库的公共密钥 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
或者:
#安装ELRepo仓库的yum源 yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm # 或升级 rpm -Uvh https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
#查看可用的系统内核包 yum --disablerepo="*" --enablerepo="elrepo-kernel" list available # 长期维护版本为lt,最新主线稳定版为ml
# 我这里选择的是长期维护版本kernel-lt 如需更新最新稳定版选择kernel-ml yum --enablerepo=elrepo-kernel install -y kernel-lt ...... 正在安装 : kernel-lt-5.4.108-1.el7.elrepo.x86_64 ...... 已安装: kernel-lt.x86_64 0:5.4.108-1.el7.elrepo
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg 0 : CentOS Linux (5.4.108-1.el7.elrepo.x86_64) 7 (Core) 1 : CentOS Linux (3.10.0-1160.11.1.el7.x86_64) 7 (Core) 2 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core) 3 : CentOS Linux (0-rescue-) 7 (Core)
yum install -y grub2-pc
grub2-set-default 0
或者
grub-set-default 'CentOS Linux (5.4.96-1.el7.elrepo.x86_64) 7 (Core)' # CentOS Linux (5.4.96-1.el7.elrepo.x86_64) 7 (Core) 这个是具体的版本
#编辑/etc/default/grub文件 vim /etc/default/grub 设置 GRUB_DEFAULT=0 # 只需要修改这里即可 GRUB_TIMEOUT=1 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved #---将这里的saved修改成0---- GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="crashkernel=auto spectre_v2=retpoline rhgb quiet net.ifnames=0 console=tty0 console=ttyS0,n8 noibrs" GRUB_DISABLE_RECOVERY="true"
# 运行grub2-mkconfig命令来重新创建内核配置 grub2-mkconfig -o /boot/grub2/grub.cfg
reboot # 或者 shutdown -r now #重启完成后,查看内核版本是否正确 uname -r
rpm -qa | grep kernel kernel-devel-3.10.0-1160.11.1.el7.x86_64 kernel-tools-3.10.0-1160.11.1.el7.x86_64 kernel-3.10.0-1160.el7.x86_64 kernel-3.10.0-1160.11.1.el7.x86_64 kernel-lt-5.4.108-1.el7.elrepo.x86_64 kernel-tools-libs-3.10.0-1160.11.1.el7.x86_64 kernel-headers-3.10.0-1160.11.1.el7.x86_64
yum remove -y kernel-devel-3.10.0 kernel-3.10.0 kernel-headers-3.10.0 # 查看已安装内核 rpm -qa | grep kernel # 也可以安装 yum-utils 工具,当系统安装的内核大于3个时,会自动删除旧的内核版本 yum install -y yum-utils
# 删除旧版本工具包--可选 yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64 # 安装新版本工具包 yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-lt-tools.x86_64 # 查看已安装内核 rpm -qa | grep kernel
对想要linux深入了解的,感兴趣 的可以看下这本书,讲的很细
详细步骤(下面步骤都是ROOT权限执行):
一、更新系统软件包
yum update -y
二、安装软件管理包和可能使用的依赖
yum -y groupinstall "Development tools"yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel
三、下载Pyhton3到/usr/local 目录
cd /usr/local wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz
解压
tar -zxvf Python-3.6.6.tgz
进入 Python-3.6.6路径
cd Python-3.6.6
编译安装到指定路径
https://www.zhihu.com/topic//configure --prefix=/usr/local/python3
注意:/usr/local/python3 路径可以自己指定,自己记着就行,下边要用到。
安装python3
makemake install
安装完成之后 建立软链接 添加变量 方便在终端中直接使用python3
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3
四、查看Python3和pip3安装情况

五、安装virtualenv ,建议大家都安装一个virtualenv,方便不同版本项目管理。
pip3 install virtualenv
建立软链接
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
安装成功在根目录下建立两个文件夹,主要用于存放env和网站文件的。(个人习惯,其它人可根据自己的实际情况处理)
mkdir -p /data/envmkdir -p /data/wwwroot
六、切换到/data/env/下,创建指定版本的虚拟环境。
virtualenv --python=/usr/bin/python3 pyweb
source activate

留意我标记的位置,出现(pyweb),说明是成功进入虚拟环境。
七、虚拟环境里用pip3安django和uwsgi
pip3 install django (如果用于生产的话,则需要指定安装和你项目相同的版本) pip3 install uwsgi
留意:uwsgi要安装两次,先在系统里安装一次,然后进入对应的虚拟环境安装一次。
给uwsgi建立软链接,方便使用
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
注意:如果是项目在本地,想部署到线上的,之后这几步可以不用看,建议跳转到:本地项目搬迁到服务器
八、切换到网站目录/data/wwwroot,创建Django项目
django-admin.py startproject mysite
创建成功之后,/data/wwwroot下面就会多出一个mysite文件夹,我们的项目就在这个文件夹里。

然后新建立一个名叫blog的APP
python3 manage.py startapp blog
vim /data/wwwroot/mysite/mysite/settings.py

修改ALLOWED_HOSTS,['*'],可以让任何IP访

TEMPLATES的DIRS里添加模板路径
os.path.join(BASE_DIR, 'templates')

STATICFILES_DIRS = ( os.path.join(BASE_DIR,'static'), )

然后 :wq 保存
九、在templates下添加index.html文件,输入下面内容。
vim /data/wwwroot/mystie/templates/index.html
<!DOCTYPE html><html><head><meta charset="utf-8"><title>我的网站</title></head><body><h1>欢迎光临我的网站!</h1></body></html>
十、配置URL
vim /data/wwwroot/mysite/mysite/urls.pyfrom blog import views #导入viewsurlpatterns = [ ... path('', views.index), #添加这行 .... ]

十一、编辑blog APP下的views.py
vim /data/wwwroot/mysite/blog/views.pydef index(request): return render(request, 'index.html')

十二、启动项目
python3 manage.py runserver

十三、Django正常运行之后我们就开始配置一下uwsgi。
我们网站项目路径是 /data/wwwroot/mysite/,在项目根目录下创建
mysite.xml文件,输入如下内容:
<uwsgi> <socket>127.0.0.1:8997</socket> <!-- 内部端口,自定义 --> <chdir>/data/wwwroot/mysite/</chdir> <!-- 项目路径 --> <module>mysite.wsgi</module> <!-- mysite为wsgi.py所在目录名--> <processes>4</processes> <!-- 进程数 --> <daemonize>uwsgi.log</daemonize> <!-- 日志文件 --></uwsgi>
十四、安装nginx和配置nginx.conf文件
进入home目录,执行下面命令
cd /home/ wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -zxvf nginx-1.13.7.tar.gz
https://www.zhihu.com/topic//configure make make install
nginx一般默认安装好的路径为/usr/local/nginx
在/usr/local/nginx/conf/中先备份一下nginx.conf文件,以防意外。
cp nginx.conf nginx.conf.bak
然后打开nginx.conf,把原来的内容删除,直接加入以下内容:
events { worker_connections 1024; }http { include mime.types; default_type application/octet-stream; sendfile on; server { listen 80; server_name www.django.cn; #改为自己的域名,没域名修改为127.0.0.1:80 charset utf-8; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8997; #端口要和uwsgi里配置的一样 uwsgi_param UWSGI_SCRIPT mysite.wsgi; #wsgi.py所在的目录名+.wsgi uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite/; #项目路径 } location /static/ { alias /data/wwwroot/mysite/static/; #静态资源路径 } } }
要留意备注的地方,要和UWSGI配置文件mysite.xml,还有项目路径对应上。
进入/usr/local/nginx/sbin/目录
执行https://www.zhihu.com/topic//nginx -t命令先检查配置文件是否有错,没有错就执行以下命令:
https://www.zhihu.com/topic//nginx
之后,在settings.py里设置:
ALLOWED_HOSTS = ['*']
十五、访问项目的页面。
进入网站项目目录
cd /data/wwwroot/mysite/
uwsgi -x mysite.xml
以上步骤都没有出错的话。
进入/usr/local/nginx/sbin/目录
执行:
https://www.zhihu.com/topic//nginx -s reload

成功访问!
里面最值得留意的就是项目的路径不要弄错,还有,项目的所有操作都要在虚拟环境下进行。
环境部署部份,懒的话,直接复制我的代码直接部署就行。
本地项目想要部署上线,可以参考下面的步骤:
1、备份本地数据库。使用sqlite数据库的话,直接打包数据库文件上传到服务器即可。使用Mysql数据库,要先在本地Mysql里备份导出数据,然后在服务器上安装Mysql数据库软件,Mysql安装具体操作请看:
pip freeze > requirements.txt
3、把项目源码压缩打包。
4、把项目上传到服务器对应的目录里,解压。
6、进入虚拟环境然后进入项目路径安装requirements.txt里的依赖包。
pip3 install -r requirements.txt
7、导入数据库到服务器。(如果用的是Mysql的话)
如果是Mysql数据库的,则在命令行里输入:
#导出Mysql,django为你的数据库mysqldump -uroot -ppassword django>django.sql#把django.sql上传到服务器,在服务器里用下面命令导入mysql -uroot -ppassword use dajngo;source your Path\django.sql
8、通过python3 manage.py runserver 运行一下项目,如果能正常启动则进行下一步,不能正常运行往上检查。
9、在项目根目录里添加uwsgi配置文件(参照上面第十三步)
10、配置Nginx配置文件。(参考上面第十四步)
留意:一定要注意Uwsgi和Nginx配置文件里的项目路径和静态资源路径,填写正确了才能成功访问。不然会出现502错误。还有就是,修改Django文件和其它配置文件之后,一定要重启Uwsgi和Nginx,不然不生效。
Uwsgi和Nginx重启方法:
#查看Uwsgi进程ps -ef|grep uwsgi #用kill方法把uwsgi进程杀死,然后启动uwsgikillall -9 uwsgi#启动方法uwsgi -x mysite.xml#Nginx平滑重启方法/usr/local/nginx/sbin/nginx -s reload
关于线上部署admin后台样式没有生效的问题:
1、在settings.py尾部:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')#指定样式收集目录#或STATIC_ROOT = '/www/mysite/mysite/static' #指定样式收集目录
python manage.py collectstatic
Django启用SSL证书(https域名)
群里好多朋友都需要使用SSL证书,在使用我这个部署教程的基础上部署SSL证书,总是遇到不少坑。在这,我在这补充一下安装SSL证书的方法,供大家参考。
1、进入之前我们下载nginx的源码目录
cd /home/nginx-1.13.7/
2、安装PCRE库
yum -y install pcre
yum -y install openssl openssl-devel
https://www.zhihu.com/topic//configure https://www.zhihu.com/topic//configure --with-http_ssl_module
make
注意:是make而不是make install
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
7、将新的 nginx 覆盖旧安装目录
cp objs/nginx /usr/local/nginx/sbin/nginx
cp -rfp objs/nginx /usr/local/nginx/sbin/nginx
8、免费证书下载后有两个文件。(以阿里云免费证书为例)一个是扩展名为.pem的文件,一个是扩展名为.key的文件。.pem文件中已经包含服务器证书和CA中间证书,第一段为服务器证书,第二段为CA中间证书,您可以使用文本编辑器自行提取。.key文件是证书私钥。这里我们直接把域名证书复制到网站根目录里去就行。
events { worker_connections 1024; }http { include mime.types; default_type application/octet-stream; sendfile on; server { listen 443 ssl http2; server_name www.django.cn django.cn; root /data/wwwroot/mysite;#项目路径 charset utf-8; ssl_certificate /data/wwwroot/mysite/1_www.django.cn.pem;#.pem证书路径 ssl_certificate_key /data/wwwroot/mysite/2_www.django.cn.key;#.key证书路径 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; error_page 497 https://$host$request_uri; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8997; uwsgi_param UWSGI_SCRIPT wechatProject.wsgi; uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite/;#项目路径 } location /static/ { alias /data/wwwroot/mysite/static/; #静态资源路径 } access_log /data/wwwroot/mysite/www.django.cn.log; error_log /data/wwwroot/mysite/www.django.cn.error.log; } }
10、测试配置文件是否正确
/usr/local/nginx/sbin/nginx -t
如果没有报错则重启nginx即可。
/usr/local/nginx/sbin/nginx -s reload
留意:使用https时,要开启服务器的443端口,如果开启了服务器还不能访问,可能需要到服务器提供商后台安全组给端口放行。
Django多站点部署
有的时候我们一台服务器需要部署多个项目,那么我们应该怎么部署呢?
mkdir vhost
之后在vhost目录里建立两个以.conf结尾的文件(有几个项目就放几个),里面的内容如下:
server { listen 80; server_name www.django.cn; charset utf-8; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8997; #端口要和uwsgi里配置的一样 uwsgi_param UWSGI_SCRIPT mysite.wsgi; #wsgi.py所在的目录名+.wsgi uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite/; #项目路径 } location /static/ { alias /data/wwwroot/mysite/static/; #静态资源路径 } }
项目路径、端口、静态资源与所属项目对应好。注意:项目里的uwsgi端口不能与另一个项目重复。
2、/usr/local/nginx/conf/目录下的原来默认的nginx.conf文件,先备份一下,然后把里面的代码删除,修改成如下代码:
events { worker_connections 1024; }http { include mime.types; default_type application/octet-stream; sendfile on; include /usr/local/nginx/conf/vhost/*.conf;#主要是这个地方,把新建的两配置文件包含进来 server { listen 80 default_server; server_name _; return 404; } }
3、新建立一个虚拟环境,把新项目上传到到服务器。进入虚拟环境,在新的虚拟环境再装一次uwsgi,和安装项目所需依赖包,然后在项目根目录新建立一个uwsgi配置文件,里面的端口和配置文件名不要和其它项目相同,路径换成自己的项目路径。
4、在虚拟环境启动uwsgi,重启Nginx,就能成功访问。哪个项目不能访问,就把原来的uwsgi进行杀死,然后再进入对应虚拟环境,启动uwsgi即可。
关于CentOS防火墙端口打开的方法:
有些服务器外网默认是无法访问的,因为防火墙不允许,所以要开启防火墙,让其可以访问需要访问的端口号。
firewall-cmd --get-active-zones
运行完成之后,可以看到zone名称。
firewall-cmd --zone=public --add-port=80/tcp --permanent
3、重启防火墙
firewall-cmd --reload
4、查看端口号是否开启
firewall-cmd --query-port=80/tcp
有些服务器在防火墙里开启端口之后还不能访问,那就需要到对应的服务器提供商的管理后台安全组里开启对应的端口才能正常访问。
原文链接:
问我学院,专注软硬件开发,测试和运维平台技术文章分享
支持平台:
链眼社区
链眼, 链眼社区, 链眼区块链,一个专注区块链技术,区块链金融,区块链行业咨询和区块链数据分析平台
椭圆曲线(原木姜子科技)
椭圆科技曲线官网(原木姜子科技官网)-天津椭圆曲线科技有限公司(原天津木姜子科技有限公司)-区块链技术底层开发-数字货币钱包系统开发-区块链钱包开发-确定性分层(HD)钱包开发-数字货币交易所开发-撮合系统-流动性(机器人)系统-现货交易系统-杠杆交易系统-期货交易系统-期权保险交易系统-数字货币量化系统-数字货币基金系统-主链联盟链跨链链改链通-云端可干扰的密钥抗丢失-ETH,EOS等币种合约开发-数字货币硬件钱包-股票交易所-股票配资平台-银行三方存管系统
学习大数据离不开 Linux 系统,网络上大部分文章都是在 Windows 系统下使用 VMWare Workstation 安装 CentOS ,并使用 NAT 模式配置网络。本文基于 Mac OS,通过 VMWare Fusion 安装 CentOS 7,网络模式使用NAT。大纲如下:
- 安装 VMWare Fusion
- 安装 CentOS 7
- 配置 CentOS 7 网络、hostname、防火墙
- 安装并使用 Secure CRT
- 安装 JDK
- 克隆虚拟机
本文使用到的软件有:
- VMWare fusion Pro 12
- Secure CRT 9
- CentOS-7-x86_64-Minimal-1810
- jdk-8u333-linux-x64.tar.gz
文中使用到的软件如果不方便下载,可搜索 “程序员优雅哥” 并回复“虚拟机”。
下载安装包 VMwareFusionPro12.dmg,双击打开,将 VMWare Fusion.app 复制到 /Application 目录下。
从应用程序中打开 VMWare Fusion.app。
step 1:点击左上角 “VMWare Fusion” --- “Preferences”,进入设置界面:

step 2:在弹出的设置窗口中,点击“Network” 进入网络设置界面,然后点击左下角锁的图标解锁:

step 3:解锁后,点击锁图标上面的加号 “+”,点击后会在 “Private to my Mac” 中会出现一个新的网络 “vmnet2” (数字不一定是2,但一定是 vmnet 开头):

step 4:在右侧勾选图中标识的 3 (using NAT)和 4 (Provide addresses on this network via DHCP),在 Subnet IP 中可填写虚拟机中的网段(后面配置 CentOS 静态 IP 时将会使用这个子网地址)。
step 5:配置完成后点击 “Apply”。如果点击后弹窗提示错误 “Unable to apply the networking changes”,可先将上图中的 4 先取消,保存成功后又重新勾选。如果依然出现该错误,则点击 “Revert” 重置后保存,重新填写后又保存。
step 1:点击 “File” -- “New...”,在弹出的窗口中选择 “Install from disc or image”,点击 “Continue”,如下图:

step 2:将 CentOS 7 镜像文件 CentOS-7-x86_64-Minimal-1810.iso 拖入 “Drag a disc image here” 的位置,拖入后选中该镜像,点击 “Continue”:

step 3:Choose Firmware Type(选择固件类型),使用默认的 Legacy BIOS 即可,点击 “Continue”:

step 4: 点击 “Customize Settings” ,选择镜像的存放位置。点击 “Finish”。自动关闭当前窗口,并弹出一个带有播放按钮图标的窗口。首先点击窗口顶部的小扳手进入设置界面:

step 5 在设置界面中点击 “Network Adapter” 设置网络,选择 1.2 VMWare fusion 网络配置中新建的网络适配器。

设置完毕后关闭当前设置窗口,点击上一界面的播放按钮开始安装。
step 1:通过键盘上下键选择 “Install CentOS 7”,回车:

在安装的过程中,可以通过 “control” + “command” 键将光标切回到 Mac 宿主机中。
step 2:选择语言,使用默认的 English 即可,点击 “Continue”,进入 “INSTALLTION SUMMARY” 界面:


step 3: 点击 “DATE & TIME” 设置时区, Region:Asia,City:Shanghai,点击左上角 “Done” 回到上一个界面

step 4:点击 SYSTEM 分组下的 “INSTALLATION DESTINATION”,设置安装位置,进入新界面后直接点击 DONE 即可。

step 5:点击 SYSTEM 分组下的 “NETWORK & HOST NAME”,将网络开启,点击 “Done”。

step 6:点击 “Begin Installation”,开始安装。

step 7:在安装过程中,点击上图中的 “ROOT PASSWORD” 按钮设置 root 账号的密码。如果设置的密码较简单,点击两次 “Done” 即可。继续等待安装完成,安装过程需要耐心等一会儿。安装完成后,右下角会出现一个 “Reboot” 按钮,点击该按钮重启虚拟机。
step 8:重启后,会出现登录提示,输入账号 root 和上一步设置的密码,登录 CentOS 7。

CentOS 已经安装好了,但 ifconfig、netstat 等命令都不可用,需要安装 net-tools 工具包,这里我们通过 yum 来安装。
yum install -y net-tools
安装成功后,可通过 ifconfig 命令查看当前 ip 等信息。
现在 ip 是动态获取的(dhcp),后面通过 SSH 连接时,每次 ip 都变化,所以固定 ip 后续会方便很多。
查看网络配置文件:
cat /etc/sysconfig/network-scripts/ifcfg-ens33

通过 vi 编辑该文件:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
首先修改 BOOTPROTO 的值:
BOOTPROTO="static"
然后在文件最后加上 IP 配置:(三个值与前面 VMWare fusion 网络配置中的 Subnet IP 在同一个网段。网关后 DNS1 值可配置为一样的,最后一位为2)
IPADDR=192.168.100.10 GATEWAY=192.168.100.2 DNS1=192.168.100.2
修改后的内容如下:

配置完成后,需要 重启网络服务 才生效:
systemctl restart network
在虚拟机 CentOS 中分别测试如下几个 ping 命令:
ping 192.168.100.10 ping 192.168.100.1 ping 192.168.100.2 ping www.baidu.com
在 Mac 的 Terminal 中测试 ping 虚拟机:
ping 192.168.100.10
我反复试过几次,都正常。
查看主机名:
hostname
现在输出 localhost.localdomain
我们需将其修改为自己方便识别的名称,此处将其修改为 centos_template
hostname centos-template
这样修改只是临时有效,一旦重启就又会变成原来的。所以接下来需要设置为永久有效:
vi /etc/hostname
执行 hostname 命令,本质上就是读取 /etc/hostname
中的值,将里面的值也修改为 centos-template
,保存该文件。重启系统后,主机名也会变成自己配置的值。
CentOS 6 和 CentOS 7 不同。 Cent OS 6 使用 iptables,Cent OS 使用 firewalld。
查看防火墙状态:
systemctl status firewalld

从上图可以看到防火墙是开启状态,可通过下面的命令关闭防火墙:
systemctl stop firewalld
再次查看防火墙状态,防火墙已关闭,但下次启动时防火墙又会自动开启。建议执行完上述命令后,再继续通过下面的命令永久关闭:
systemctl disable firewalld
双击 SecureCRT-Mac-v9.dmg,安装 Secure CRT。
打开 Secure CRT,点击左上角“Session Manager” ,新建会话,进入 "New Session Wizard"

- Protocol: SSH2
- 输入连接信息:

- session name: 随意填写,这里我与主机名保存一致:centos-template
完成向导后,在 Session Manager 中就会出现刚才新建的会话。双击打开,点击 “Accept & Save”,在弹出的框中输入密码,点击 “OK”。这样便完成 Secure CRT 通过 SSH 连接 CentOS 虚拟机了。
在 Oracle 官网上下载 JDK,也可以使用我提供的 jdk-8u333-linux-x64.tar.gz。
所有软件我都放在 /bigdata/software 目录下。
mkdir -p /bigdata/software cd /bigdata/software
将安装包通过 FTP 工具传到该目录下。
解压 jdk-8u333-linux-x64.tar.gz 到当前目录下:
tar -zxvf jdk-8u333-linux-x64.tar.gz

打开环境变量文件:
vi /etc/profile
在文件末尾添加:
# JAVA_HOME export JAVA_HOME=/bigdata/software/jdk1.8.0_333 export PATH=$PATH:$JAVA_HOME/bin
保存退出。
执行环境变量,使刚才的配置生效:
source /etc/profile
执行下列命令,查看 JDK 配置是否生效:
java -version
执行命令后显示如下内容,则 JDK 配置正确
[root@centos-template software]# java -version java version "1.8.0_333" Java(TM) SE Runtime Environment (build 1.8.0_333-b02) Java HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode)
在学习大数据时,通常需要多台 CentOS,如果一台一台的按照上面的步骤创建太费事,VMWare 支持克隆虚拟机。
step 1:点击 Mac 系统菜单栏右侧的虚拟机图标,接着点击当前的虚拟机,将其停止:


特别强调,一定要先停止被克隆的虚拟机!
step 2:在刚才的面板中点击左上角返回,进入上上图,点击 “Virtual Machine Library”,进入管理界面:

step 3:右键点击刚才创建的虚拟机 “CentOS 7 64-bit”,在弹出的快捷菜单中点击 “Create Full Clone...”
step 4:在弹出的窗口中填写虚拟机名称,并选择存放路径,点击确定后开始克隆。
step 5:启动刚才克隆出来的虚拟机,重复 2.2 和 2.3,设置 ip 和主机名。
设置 ip
vi /etc/sysconfig/network-scripts/ifcfg-ens33
只需要修改 IPADDR 的值:
IPADDR=192.168.100.11
重启网络服务:
systemctl restart network
修改主机名:
hostname bigdata01
修改主机名文件:
vi /etc/hostname
将文件内容也修改为 bigdata01
将两台虚拟机都启动,并通过 Secure CRT 连接两台虚拟机,测试两台虚拟机和 Mac 宿主机之间是否都能正常 ping 通。
文中操作有任何疑问,欢迎私信程序员优雅哥,多多探讨。
别问我为啥干这烂事儿,主要是有一阵我用得到,以下步骤经过了严格验证,保证好使。
1.首先升级GCC版本至4.9以上,步骤如下:
如果没有安装下载工具wget,就运行:yum -y install wget;
下载GCC源码,执行命令:
wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.gz(很奇怪链接显示不全,自己点进去复制一下吧)
默认的下载目录据说是 /usr/local/,我使用的gnome图形界面,点开桌面的主文件夹再点开“下载”文件夹,就可以看到下载好的文件;
下在之后如果在字符界面就运行:cd /usr/local/,进入下载之后文件所在目录,如果是gnome图形界面就点开桌面的主文件夹,再进入下载文件夹,把下载好的GCC源码剪切粘贴到主文件夹下,然后在终端中运行: tar -zxvf gcc-4.9.2.tar.gz ,等待解压缩完成,完成之后主文件夹中会自动生成gcc-4.9.2这个文件夹。
之后假设你的设备有网络链接的情况下(推荐这样,比较简单),执行如下操作:
首先运行命令 cd gcc-4.9.2
进入解压缩后的源码文件夹,然后执行:
https://www.zhihu.com/topic//contrib/download_prerequisites
就开始下载所需的所有软件包
假设没有网络的情况下(不推荐离线这样搞),需要提前下载如下三个软件包:
ftp://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2
http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2.tar.bz2
http://www.multiprecision.org/mpc/download/mpc-0.8.1.tar.gz
然后解压并移动到gcc-4.9.2下面对应的三个文件夹中,具体对应关系如下:
tar -xjf gmp-4.3.2.tar.bz2
tar -xjf mpfr-2.4.2.tar.bz2
tar -xzf mpc-0.8.1.tar.gz
mv gmp-4.3.2 gcc-4.9.2/gmp
mv mpfr-2.4.2 gcc-4.9.2/mpfr
mv mpc-0.8.1 gcc-4.9.2/mpc
完成以上步骤之后开始执行如下操作:
yum install -y gcc-c++ glibc-static gcc //为避免出错建议安装此包
然后:
https://www.zhihu.com/topic//configure --prefix=/usr/local/gcc --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib
再然后:
make //编译安装包
之后:
make install //安装编译之后的包
再之后导出环境变量,首先建立环境变量文件,编写环境变量路径:
运行 vim /etc/profile.d/gcc.sh
输入 : export PATH=/usr/local/gcc/bin:$PATH (这是gcc的安装路径,默认的)
然后运行命令激活环境变量:source /etc/profile.d/gcc.sh
运行 gcc -v ,检查gcc版本,此时结果已经变成4.9.2 ;
最后导出头文件并导出库文件,GCC才能真正应用并起作用
首先建立文件夹的软连接,运行:ln -sv /usr/local/gcc/include/ /usr/include/gcc,系统反馈结果为: "/usr/include/gcc" -> "/usr/local/gcc/include/",即为建立成功;
然后导出库文件,运行:vim /etc/ld.so.conf.d/gcc.conf , 输入:/usr/local/gcc/lib64 ,随后执行 :ldconfig -v及ldconfig -p |grep gcc ,以验证是否导出。
以上GCC安装的全过程就结束了,然后下载百度云盘的rpm文件,安装,重启,即可,可以用rpm -ivh “这里写rpm文件的绝对路径”这个命令进行安装。
vim /etc/hosts 192.168.8.120 mail.test.com

systemctl stop firewalld systemctl disable firewalld
vi /etc/selinux/config
将未注释的SELINUX值改为disabled

rpm -q postfix
yum -y install postfix
(3) 编辑postfix的配置文件,查找并修改对应配置项
vi /etc/postfix/main.cf
在文件最后添加如下内容
myhostname = mail.test.com mydomain = test.com myorigin = $mydomain inet_interfaces = all inet_protocols = all mydestination = $myhostname, $mydomain home_mailbox = Maildir/ mynetworks = 0.0.0.0,127.0.0.0/8,60.60.60.0/24 // 网络权限(根据现场IP配置,粘贴进去的时候去掉//后面的所有内容)

(4) 检查配置文件是否有语法错误
postfix check
如果报错
postfix: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
则需要找到libmysqlclient.so.18这个文件放进服务器
先确认/usr/local/mysql/lib/下是否有libmysqlclient.so.18这个文件.
修改ld.so.conf文件
执行ldconfig使其生效
(5) 重新启动postfix服务器
systemctl restart postfix
(1) 添加邮件账号组
groupadd mailusers
(2)添加邮箱账号
useradd -g mailusers -s /sbin/nologin changzl passwd changzl useradd -g mailusers -s /sbin/nologin zhaoyang passwd zhaoyang
(3) 安装远程登录插件
yum install -y telnet
(4) 远程登录25端口,如报错连接不上,重启postfix
telnet mail.test.com 25

(5)测试邮件发送

[root@localhost new]# telnet mail.test.com 25 //执行前面的命令 Trying 192.168.8.120... Connected to mail.test.com. Escape character is '^]'. 220 mail.test.com ESMTP Postfix #执行telnet mail.test.com 25就会显示上面的内容 表示telnet连接成功 mail from:<> #复制上面一行的代码的,表示邮件发送者 250 2.1.0 Ok #表示ok rcpt to: #to:后面表示邮件接收者,如果有报错往后面看有解决办法 250 2.1.5 Ok data #data加回车开始编写邮件 354 End data with <CR><LF>.<CR><LF> Subject:test mail #邮件主题 hello serva 3D_city hello serva 3FD hello 3D!thanks! #邮件内容 . #.表示编写结束 发送邮件 250 2.0.0 Ok: queued as 21C5340F1992 #发送成功 quit #退出telnet 221 2.0.0 Bye Connection closed by foreign host.
如果报错就修改下列文件:
vi /etc/postfix/main.cf

mynetworks = all systemctl restart postfix
(6)接收查看邮件内容
cd /home/收件人/Maildir/new目录下,所有新收的邮件都在这个下面:
yum -y install dovecot
安装完,查看版本:
dovecot --version
(1)执行vi /etc/dovecot/dovecot.conf
修改如下:
protocols = imap pop3 listen = *, :: login_trusted_networks = 0.0.0.0,127.0.0.0/8,60.60.60.0/24 (根据现场配置填写) !include conf.d/*.conf !include_try local.conf
修改如下:
ssl = no
修改如下:
disable_plaintext_auth = no auth_mechanisms = plain login !include auth-system.conf.ext
(4)执行vi /etc/dovecot/conf.d/10-logging.conf
修改如下:
info_log_path = /var/log/dovecot_info.log debug_log_path = /var/log/dovecot_debug.log
(5)执行vi /etc/dovecot/conf.d/10-mail.conf
修改如下:
mail_location = maildir:~/Maildir
systemctl start dovecot systemctl enable dovecot systemctl status dovecot
查看端口:
yum -y install net-tools netstat -tlnp |grep dovecot

安装:
yum install rng-tools -y service rngd start yum install bind-utils -y yum install dnsmasq -y
vi /etc/hosts 添加 http://test.com

vi /etc/dnsmasq.conf
最后一行添加
address=/test.com/127.0.0.1 listen-address=127.0.0.1,192.168.8.120(本机ip) service dnsmasq start
测试 nslookup
test.com

Foxmail官方下载地址:http://fox.foxmail.com.cn/
账号配置:



版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/te-jc/25631.html