个人服务器的搭建
bear
2022-12-21
113
0

前言

搭建服务器的初衷

    现阶段越来越多的场合需要用到服务器,当然也有各种各样云端的需求,本质上都是借助服务器来运转。我的想法是先尝试着搭建服务器(也借助了别人的一些帮忙),前期自己慢慢熟悉一些简单的操作和命令,后期通过一些付费的服务器实现相对比较复杂的功能,慢慢的从免费的个人服务器到付费服务器进行过渡,最后借助搭建的服务器将需求进行衍生和延申。

后期实现效果

    我想后期实现一个相对比较实用又有趣的网站,像这样:https://ovirgo.com/nav/,亦或者是像这样:https://brucedone.com/,或者后面达到的效果比他们更好。话虽然是这么说,不过作为一个还没入门的业余选手,很多东西都是平时边学习,边整理,仍然有很多的知识盲区,还有很长的路需要走。

搭建思路

  • 第一步就是要做服务器的搭建工作

    • 服务器的搭建不需要太大的一些内存,也不是特别的麻烦

    • 服务器搭建好了是看不到相应的成果的,所有需要有相应的UI,也即后面的第二步操作。

  • 第二步就是把源码给推上去(需要进行代码的一些优化工作)

    • 建议是搜索一些源码,然后自己修改,毕竟自己开发的难度多少还是有点大的

    • 这个就需要用到linux服务器来运行

  • 其实博客也是可以在云服务器上进行相应的搭建的(不过自己暂时还是使用的免费的版本,后期如果有进一步的需求可以做这样的一些尝试)

    • 购买云服务器

    • 如果有需要还要购买域名

  • 过渡过程:先用虚拟机,在上面把相应的一些基础练习好,配合一些专业方面的手册进行一些练习

几个用到的网站

  1. http://mirrors.aliyun.com/centos/7/isos/x86_64/(阿里巴巴开源镜像1)

  2. https://renwole.com/archives/1526(官方原版镜像下载2)

  3. http://192.168.41.132/phpinfo.php(最终搭建好的网址,打开表示LNMP环境部署成功,具体的部署见后文)

备注:网站上centos镜像相当于一个系统盘,里面有系统安装需要的一些相关的信息,核心版本的比较小,没有桌面版本和其他的一些非必要的软件;后续是需要用命令行操作,然后根据自己的需要进行一些其他的软件安装。


Linux系统下Nginx+MySQL+PHP网站服务器架构搭建

第一步:使用VMware工具创建Linux虚拟机

第二步:选择ISO映像文件

第三步:选择网卡类型(不会使用其他类型的网卡情况下可选择桥接模式)

第四步:开启虚拟机(正式安装虚拟机系统)

第五步:设置虚拟机网卡(DHCP模式 启动网卡)

网卡地址:

vim /etc/sysconfig/network-scripts/ifcfg-ens33

第六步:启动网络

命令:

systemctl restart network 

第七步:配置本地yum源仓库(等于应用商城)

1.使用rm -rf * 命令将 /etc/yum.repos.d/目录下的文件删除

命令:

[root@localhost /]# rm -rf /etc/yum.repos.d/*

2.在/etc/yum.repos.d/目录下重新创建yum源配置文件 命令与配置如下

命令:

vi /etc/yum.repos.d/CentOS-Media.repo

#配置文件

[c7-media]name=CentOS-$releasever - Mediabaseurl=file:///mntgpgcheck=0enabled=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

第八步:本地挂载yum源仓库

1.虚拟机连接镜像文件

2.使用mount命令挂载yum源仓库

命令:

mount /dev/cdrom /mnt/

截图:

第九步:安装搭建服务需要的软件工具

命令:

yum install wget unzip -y

第十步:关闭防火墙与selinux

命令:

[root@localhost /]# systemctl stop firewalld[root@localhost /]# setenforce 0

截图:

第十一步:安装epel仓库(本地应用商店软件不全需要加一个线上的软件仓库)

命令:

wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.rep

第十二步:安装Nginx服务器

命令:

yum -y install nginx

运行以下命令查看Nginx版本

nginx -v

第十三步:安装MySQL

1.运行以下命令更新YUM源

rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

2.运行以下命令安装MySQL

yum -y install mysql-community-server --nogpgcheck

3.运行以下命令查看MySQL版本号

mysql -V

4.运行以下命令启动MySQL

systemctl start mysqld

第十四步:安装PHP

1.更新YUM源

运行以下命令添加EPEL源

Yum install https://repo.ius.io/ius-release-el7.rpm https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

2.运行以下命令添加Webtatic源

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

3.运行以下命令安装PHP

yum -y install php70w-devel php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-pdo.x86_64 php70w-mysqlnd php70w-fpm php70w-opcache php70w-pecl-redis php70w-pecl-mongodb

4.运行以下命令查看PHP版本。

php -v

第十五步:配置Nginx  

1.运行以下命令备份Nginx配置文件

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

2.修改Nginx配置文件 添加Nginx对PHP的支持说明:若不添加此配置信息,后续您使用浏览器访问PHP页面时,页面将无法显示

#运行以下命令打开Nginx配置文件

vim /etc/nginx/nginx.conf添加或修改location /配置信息location / {index index.php index.html index.htm;}添加或修改location ~ .php$配置信息。      #添加下列信息,配置Nginx通过fastcgi方式处理您的PHP请求location ~ .php$ {root /usr/share/nginx/html;  fastcgi_pass 127.0.0.1:9000;  fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;  }

配置截图如下:

3.运行以下命令启动Nginx服务

systemctl start nginx

第十六步:配置MySQL

1.运行以下命令查看/var/log/mysqld.log文件,获取并记录root用户的初始密码

命令:

grep 'temporary password' /var/log/mysqld.log

2.命令行返回结果如下,其中ARQTRy3+n8*W为MySQL的初始密码。在下一步重置root用户密码时,会使用该初始密码

返回结果如下:

2021-11-10T07:01:26.5952151 [Note] A temporary password is generated for root@localhost: ARQTRy3+n8*W #红色字体为当前数据库密码

3.运行以下命令配置MySQL的安全性

mysql_secure_installation

第十七步:配置PHP

1.新建并编辑phpinfo.php文件,用于展示PHP信息

运行以下命令新建phpinfo.php文件

vim <网站根目录>/phpinfo.php

<网站根目录>是在nginx.conf配置文件中location ~ .php$大括号内,配置的root参数值,如下图所示

本配置的网站根目录为/usr/share/nginx/html,因此需要运行以下命令新建phpinfo.php文件,命令与配置如下:

vim /usr/share/nginx/html/phpinfo.php<?php echo phpinfo(); ?

2.运行以下命令启动PHP-FPM。

systemctl start php-fpm

第十八步:测试访问LNMP配置信息页面

    在本地Windows主机打开浏览器,在浏览器的地址栏输入http://虚拟机ip地址/phpinfo.php进行访问,访问结果如下图所示,表示LNMP环境部署成功。


什么是虚拟机?

    虚拟机是指行为方式类似于实际计算机的计算机文件。换言之,即在计算机内创建一台计算机。它像任何其他程序一样在窗口中运行,让最终用户在虚拟机上享受如在主机操作系统上的相同体验。虚拟机脱离系统其余部分进行了沙盒化,这意味着虚拟机中的软件不可转义或篡改计算机本身。这制造了一种理想的环境,可用于测试其他操作系统(包括 beta 版本)、访问感染病毒的数据、创建操作系统备份,以及在操作系统上运行原本不打算运行的软件或应用程序。

    多个虚拟机可以在同一实体计算机上同时运行。对服务器而言,多个操作系统并排运行,并具有一个称为虚拟机监控程序的软件进行管理;而台式计算机通常使用一个操作系统在其程序窗口内运行其他操作系统。每个虚拟机都提供自己的虚拟硬件,包括 CPU、内存、硬盘、网络接口和其他设备。然后,虚拟硬件将映射到物理计算机的真实硬件上,这可减少物理硬件系统需求和伴随的相关维护成本以节省开销,还可降低功率和冷却需求。

    虚拟机还是运行在你的主机系统里面的,所以安装出来的虚拟机系统是需要与你的主机硬件所共享的。VMware:是全球云基础架构和移动商务解决方案厂商,提供基于VMware的解决方案,企业通过数据中心改造和云整合业务,借助企业安全转型维系客户信任,实现任意云端和设备上运行、管理、连接及保护任意运用。

VMare的主要特点

  • 不需要分区或重新开机就能在同一台PC上使用两种以上的操作系统

  • 本机系统可以与虚拟机系统网络通信

  • 可以设定并且随时修改虚拟机操作系统的硬件环境,如内存配置、硬盘大小(注意:不能超过真实主机硬件上限)

  • 虚拟机快照可以保存操作系统当前状态,若后续Linux系统崩溃,可以使用快照恢复

VMware的使用

  • 新建虚拟机

  • 虚拟机硬件设置、网络设置

  • 网络适配器:推荐选择桥接

  • 快照

  • 克隆

    当安装完VMware时,真实主机中会出现两个虚拟机网卡;还有真实主机自己本身的网卡:无线网卡和有线网卡

  1. 选择桥接模式,虚拟机和真实机之间通信利用真实的网卡,有可能是无线网卡或有线网卡

    1. 好处:配置简单,只需要勾选桥接模式即可;可与同网段局域网内其他主机通信

    2. 缺点:虚拟机需要占用真实机网段的一个ip,如我当前真实主机真实ip为192.168.20.92,虚拟机也要占用192.168.20.的一个ip

  2. 选择NAT模式,那虚拟机和真实主机之间通过VMnet8通信;只能与本机通信;虚拟机可上网

  3. 选择Host-only模式,那虚拟机和真实主机之间通过VMnet1通信;只能与本机通信;虚拟机不可上网

VMware使用:快照

  • 创建快照

  • 恢复快照(快照保存了某时刻虚拟机状态,等之后若需要时,可恢复到某个快照的状态)

  • 删除快照

VMware使用:克隆


windows和linux的区别

  1. 首先从界面上个人感觉windows的界面比linux漂亮,从视觉效果上来看windows给人感觉更好

  2. 软件的使用,linux软件都是开源的由全国各地技术执行者提供,windows上也有免费的但很多是需要授权才可以使用的。

  3. 在使用方面的区别是windows可以直接打开软件进行图形界面的操作,而linux系统经常通过命令行来执行。

  4. 从安全方面来,windows系统要经常通过打补丁来保证系统的安全,但Linux系统却不用,因为现在大部分的病毒软件在linux系统是无法运行的。就算是可以在linux上运行,由于linux是开源的全世界的人都在维护所以在安全方面更有保证。

  5. 在两种系统的作用方面主要分为两种,一种是普通用户的使用,另外一种是使用服务器来使用。不过现在由于软件的开发,两种系统都可以提供用户和服务器使用。

linux优缺点一览

    Linux是一套免费使用和自由传播的类Unix操作系统,是一个多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

1.模块化程度高

  Linux的内核设计非常精巧,分成进程调度、内存管理、进程间通信、虚拟文件系统和网络接口五大部分;其独特的模块机制可根据用户的需要,实时地将某些模块插入或从内核中移走,使得Linux系统内核可以裁剪得非常小巧,很适合于嵌入式系统的需要。

2.源码公开

  由于Linux系统的开发从一开始就与GNU项目紧密地结合起来,所以它的大多数组成部分都直接来自GNU项目。任何人、任何组织只要遵守GPL条 款,就可以自由使用Linux 源代码,为用户提供了最大限度的自由度。这一点也正投嵌入式系统所好,因为嵌入式系统应用千差万别,设计者往往需要针对具体的应用对源码进行修改和优化, 所以是否能获得源代码 对于嵌入式系统的开发是至关重要的。

    加之Linux的软件资源十分丰富,每种通用程序在Linux上几乎都可以找到,并且数量还在不断增加。这一切就使设计者在其基础之上进行二次开发变得非常容易。另外,由于Linux源代码公开,也使用户不用担心有“后闸”等安全隐患。同时,源码开放给各教育机构提供极大的方便,从而也促进了Linux的学习、推广和应用。

3.广泛的硬件支持

  Linux能支持x86、ARM、MIPS、ALPHA和PowerPC等多种体系结构的微处理器。目前已成功地移植到数十种硬件平台,几乎能运行在所有流行的处理器上。

  由于世界范围内有众多开发者在为Linux的扩充贡献力量,所以Linux有着异常丰富的驱动程序资源,支持各种主流硬件设各和最新的硬件技术,甚至可在没有存储管理单元MMU 的处理器上运行,这些都进一步促进了Linux在嵌入式系统中的应用。

4.安全性及可靠性好

    内核高效稳定。Linux内核的高效和稳定已在各个领域内得到了大量事实的验证。Linux中大量网络管理、网络服务等方面的功能,可使用户很方便地建立高效稳定的防火墙、路由器、工作站、服务器等。为提高安全性,它还提供了大量的网络管理软件、网络分析软件和网络安全软件等。

5.具有优秀的开发工具

    开发嵌入式系统的关键是需要有一套完善的开发和调试工具。传统的嵌入式开发调试工具是在线仿真器(In Circuit Emulator,ICE),它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,从而使开发者能非常清楚地了解到程序在目标板上的工作状态,便于监视和调试程序。在线仿真器的价格非常高,而且只适合做非常底层的调试。如果使用的是嵌人式Linux,一旦软硬件能支持正常的串口功能,即使不用在线仿真器,也可以很好地进行开发和调试工作,从而节省了一笔不小的开发费用。嵌入式Linux为开发者提供了一套完整的工具链(Tool Chain),能够很方便地实现从操作系统到应用软件各个级别的调试。

6.有很好的网络支持与文件系统支持

    Linux从诞生之日起就与Internet密不可分,支持各种标准的Internet网络协议,并且很容易移植到嵌入式系统当中。目前,Linux几乎支持所有主流的网络硬件、网络协议和文件系统,因此它是NFS的一个很好的平台。

    另一方面,由于Linux有很好的文件系统支持(例如,它支持Ext2、FAT32、romfs等文件系统),是数据各份、同步和复制的良好平台,这些都为开发嵌入式系统应用打下了坚实的基础。

7.与UNIX完全兼容

    目前,在Linux中所包含的工具和实用程序,可以完成UNIX的所有主要功能。但由于Linux不是为实时而设计的,因而这就成了Linux在实时系统中应用的最大遗憾。不过,目前有众多的自由软件爱好者正在为此进行不懈的努力,也取得了诸多成果。

后记

  其实这一部分内容写的还比较的糙,有些也只是整理与罗列,还有些位置自己也没有怎么明白,不过还是本着先写下来的态度,在逐渐整理与摸索的过程中慢慢的去理解与消化,总要有一个向前的过程。

参考链接

  1. https://www.jianshu.com/p/f761fb0a7f1b

  2. https://zhuanlan.zhihu.com/p/272541376

  3. https://www.bilibili.com/video/BV1pj411f7Dp/?vd_source=9e107638935a61bd37e6161cb560baba

  4. https://blog.csdn.net/wuxiaolongah/article/details/104457361

  5. https://blog.csdn.net/wuxiaolongah/article/details/104457545

  6. https://blog.csdn.net/wuxiaolongah/article/details/104457634

  7. http://www.16km.net/study/2022/04/3466.html

 

 

打赏
关于在设计院的两年时间
上一篇
关于excel的一点整理与小结
下一篇

发表评论

注册不是必须的

生成中...
二维码标题