具有php7,node.js和Redis的CentOS 8 Web服务器

前言


新版本的CentOS操作系统(即CentOS 8)问世已经两天了。到目前为止,互联网上有很多文章介绍了如何执行其中的操作,因此我决定填补这一空白。 此外,我不仅会告诉您如何安装这对程序,而且还会告诉我如何在现代世界中看到Linux在虚拟环境中完成常见任务(包括磁盘分区等)的安装。

但是在开始时,我想简要地谈谈为什么您应该从以前的所有版本切换到该版本,并且有两个原因:

  1. php7! 在CentOS的先前版本中,安装了“ Orthodox” php5.4。

    好吧,如果再严肃一点,那么很多软件包会大量跳过几个版本。 我们(像Redhat一样喜欢OS的人)终于进入了,如果不是未来,那么至少是现在。 而且,Ubuntu支持者将不再嘲笑我们,也不会嘲笑我们,至少在一段时间内;)。
  2. 从yum到dnf的过渡。 主要区别在于,现已正式支持使用多个版本的软件包。 就在图八所示的位置,它对我来说还没有派上用场,但听起来很有希望。

创建虚拟机


虚拟机管理程序是不同的,我无意为特定的读者增加读者,我将向您介绍一般原则。

记忆


首先...确保从7开始安装CentOS系统,而我认为从6开始安装CentOS系统是相同的(“但这并不准确”), 至少需要 2 GB的RAM。 因此,我建议您开始并付出很多。

但是,如果那样,安装后可以减少内存量。 我检查了一下,裸机系统的容量为1 GB时效果很好。

驱动器


对于正常安装,请创建20-30 GB的虚拟磁盘。 这对于系统而言已足够。 和第二个磁盘用于数据。 可以在创建虚拟机的阶段以及之后添加它。 我通常会在以后添加。

中央处理器


在一个核心上,裸系统不会减慢速度。 而且,由于资源可以自由扩展,因此在安装阶段不会提供更多资源(除非您理想地知道要求,并且懒得再次进入配置器)

默认情况下,其余通常可以保留。

安装本身


所以...我们启动了安装程序...就我个人而言,很长时间以来我一直以虚拟机的形式提供这些服务,因此我不会在USB闪存驱动器上描述各种发行记录-我只是将ISO作为CD挂载到我最喜欢的管理程序中,然后下载并驱动了它。

基本安装是非常典型的,我将只重点介绍几点。

来源选择


自从发布第八版以来,Yandex的镜子整天都在躺着。 好吧,也就是说,它定期上升,然后再次开始显示错误。 我确信这是服务上的过多负担。 因此,为了表明来源,我个人不得不在这里输入所需的镜像,然后在安装程序窗口中手动输入地址,而不是输入通常的地址。 重要的是要记住,必须指定repodata目录所在的文件夹的路径。 例如, mirror.corbina.net/pub/Linux/centos/8/BaseOS/x86_64/os

磁盘故障


在我看来,这个问题颇具宗教性。 每个管理员在此主题上都有自己的立场。 但我仍然同意我对这个问题的看法。

是的,原则上,您可以将整个位置分配到根,并且通常可以很好地工作。 为什么要在带有不同部分的花园中围栏呢? -我认为主要原因是2:配额和可移植性。

例如,如果出了点问题并且主数据部分出现错误,我希望无论如何都能够加载系统并执行复苏措施。 因此,我个人在/ boot下分配了一个单独的分区。 内核和引导程序位于其中。 通常,500兆字节就足够了,但是在极少数情况下,它可能会花费更多,并且鉴于我们已经习惯于以太字节为单位来测量空间,因此我为该部分分配了2GB。 在这里重要的是不能完成lvm。

接下来是系统的根。 对于正常安装,每个系统我从来不需要超过4 GB,但是在计划的事件中,我经常使用/ tmp目录来解压缩发行版,并且我看不到将其突出显示为单独的部分的意思-在现代系统中,它会自动清除,因此不会填满。 因此,在根目录下,我分配了8GB。

交换...总的来说,从中几乎没有实际收益。 如果您开始在服务器上使用交换功能,那么今天在现实世界中,这仅意味着服务器需要添加更多RAM。 否则,将保证性能问题(或某些程序内存泄漏)。 因此,本节仅用于诊断目的。 因此,2 GB是一个很大的数目。 是的,无论服务器有多少内存。 是的,我阅读了所有有关内存与交换量之比的文章,恕我直言,它们已经过时了。 经过10年的实践,这对我从未有用。 15年前,我使用了它们,是的。

每个人都可以决定是否在恕我直言的单独部分中分配/寄宿。 如果有人在服务器上主动使用此目录,则最好突出显示。 如果没有人-没有理由。

接下来,/ var。 我认为有必要将其选出来。 对于初学者,您可以将自己限制为4 GB,然后再限制大小。 是的,通过“进展”,我的意思是

  1. 首先,您总是可以在/ var子目录中挂载另一个磁盘(稍后将通过示例显示)
  2. 其次,我们有lvm-您可以随时添加。 通常,当太多日志开始倒入那里时,您必须添加。 但是我无法预先预测这个数字,所以我先从2 GB开始,然后再看。

未分配的空间将在卷组中保持可用,然后您以后可以随时使用它。

LVM


在LVM中使除/ boot之外的所有分区都有意义。 是的,包括交换。 是的,所有技巧的交换都应该在磁盘的开头,就LVM而言,原则上不能确定其位置。 但是正如我上面所写,您的系统根本不应该使用swap。 因此,他在哪里都无所谓。 好吧,老实说,不是在95年!

此外,在LVM中,您必须能够使用几个基本实体:

  • 物理体积
  • 卷组
  • 逻辑卷

物理卷被分组在一起,每个物理卷仅在一个组中,并且该组可以一次位于多个物理卷上。
逻辑卷都在同一组中。

但是...该死,我们又是院子里的21世纪。 服务器是虚拟的。 将与物理机制相同的机制应用于它们是没有意义的。 对于虚拟,将数据与系统分开是很重要的! 这对于快速将数据切换到另一个虚拟机(例如,当切换到新的OS时)以及一般来说各种有用的功能(例如,使用管理程序按部分分开备份)的能力特别重要。 因此,一个卷组用于系统,而必然另一个卷组用于数据! 这种逻辑上的分离对生活有很大帮助!

如果在创建虚拟机时仅创建了一个虚拟硬盘,则配置结束。 如果是两个,则不要标记第二个。

我们开始安装。

安装后


因此,新安装的系统终于启动了。 首先要检查的是互联网。

ping ya.ru 

有答案吗? -很好,请按Ctrl-C。
如果没有,那就去建立网络,没有这个没有生命,但是我的文章并非如此。

现在,如果我们还没有扎根,我们就扎根了,因为用sudo亲自键入这么多命令我很烦(而且偏执的管理员会原谅我):

 sudo -i 

现在我们输入的第一件事

 dnf -y update 

而且,如果您在2019年阅读了这篇文章,很可能什么都不会发生,但是值得一试。

现在配置剩余的驱动器


假设我们有一个带有系统的xvda分区,那么数据磁盘将是xvdb。 好啦

大多数技巧将从“启动fdisk并创建分区...”开始。

所以,这不是真的

我会再重复一次煎饼,因为它很重要! 在这种情况下,即使LVM是一个虚拟磁盘,也要占用一个整体,而在LVM上创建分区是有害的! 每个词在这个短语中都很重要。 如果我们在没有LVM的情况下工作-这是必要的。 如果我们在磁盘上说系统和数据-这是必要的。 如果出于某种原因,我们需要将一半的​​磁盘留空-这也是必要的。 但是通常所有这些假设都是纯理论上的。 因为如果我们决定将位置添加到现有部分,那么最简单的方法就是使用此配置。 而且管理的简便性非常重要,因此我们有意朝着这种配置迈进。

方便之处在于,如果要扩展数据部分,只需在虚拟部分中添加空间,然后使用vgextend扩展组即可! 在极少数情况下,可能需要执行其他操作,但是至少您不必在一开始就扩展逻辑范围,这已经很好了。 然后,要扩展此卷本身,建议先删除现有的卷,然后在顶部创建一个新的卷...看起来不太好,无法实时完成,并且可以根据我指定的情况即时扩展,而无需卸载该分区。

总体而言,我们创建一个物理卷,然后创建一组卷,包括该卷,然后创建服务器的一部分:

 pvcreate /dev/xvdb vgcreate data /dev/xvdb lvcreate -n www -L40G data mke2fs -t ext4 /dev/mapper/data-www 

在这里,您可以指定一个小然后代替相对大小而不是绝对大小,而不是大写字母“ L”(以及以GB为单位的大小),例如,要使用卷组中当前可用空间的一半,必须指定“ -l + 50%FREE”

最后一条命令格式化ext4文件系统中的分区(到目前为止,按照我的实践,如果一切都中断了,它显示出最大的稳定性,所以我更喜欢它)。

现在将分区安装在正确的位置。 为此,将正确的行添加到/ etc / fstab:

 /dev/mapper/data-www /var/www ext4 defaults 1 2 

然后我们键入

 mount /var/www 

如果弹出错误-我们会发出警报! 因为这意味着我们在/ etc / fstab中出错。 而且在下次重新启动时,我们将遇到很大的问题。 系统可能根本无法启动,这对于云服务而言通常是非常可悲的。 因此,您必须紧急更正最后附加的行,或者将其完全删除! 这就是为什么我们没有开始手动编写mount命令的原因-那么我们将没有这么好的机会来检查直接入户设备的配置。

现在,我们实际上放了所有想要的东西,并在网络下打开了端口:

 dnf groupinstall "Development Tools" dnf -y install httpd @nodejs @redis php firewall-cmd --add-service http --permanent firewall-cmd --add-service https --permanent 

(可选)您也可以将数据库放在此处,但就我个人而言,我尝试将其与Web服务器分开。 虽然保持近距离比较快,但是可以。 虚拟网络适配器的速度通常在千兆位区域,并且在同一台计算机上工作时,访问几乎是即时进行的。 但是不太安全。 这里对谁更重要。

现在将参数添加到配置文件中(创建新的现代CentOS意识形态)

 echo "vm.overcommit_memory = 1"> /etc/sysctl.d/98-sysctl.conf 

重新启动服务器。
在评论中,我因建议您关闭SeLinux而被责骂,因此我将对其进行修复并写出一个事实,那就是在此之后您必须记住配置SeLinux。
其实就是利润! :)

Source: https://habr.com/ru/post/zh-CN469097/


All Articles