Linux | 搭建Web服务器

wufei123 发布于 2023-12-16 阅读(399)

php教程pdf百度云

一次性付费进群,长期免费索取教程,没有付费教程。进微信群回复公众号:微信群;QQ群:460500587 教程列表 见微信公众号底部菜单 |  本文底部有推荐书籍 

微信公众号:计算机资源网与网络安全ID:Computer-networkMediaWiki是一种热门的开源Wiki engine,是一个在Linux上阐述构建Web服务器(通常称为LAMP服务器)过程的好方式。

通过部署Med资源网iaWiki,可以了解组建LinuxWeb服务器的软件包1、建立LAMP服务器如果您或您的企业有信息、应用程序或服务,那么很可能希望将它们提供给Web浏览器使用网络服务器(Web server)是在。资源网

计算机上运行的软件,它允许托管在本地的资源被网站的访问者查看和使用显然,这个术语也经常被用来描述承载Web服务器软件的计算机下面示例构建一个动态网站这种网站的网页是在服务器端操作帮助下生成的同样还可以资源网创建静态网站,在大多数情况下,这些网站仅提供将全部工作委托给客户端。

Web浏览器的纯HTML文件如图1所示,大多数LinuxWeb服务器都建立在称为LAMP服务器的四大支柱上字母LAMP代表Linux资源网、Apache Web服务器管理软件、MySQL或MariaDB数据库

引擎和PHP服务器端脚本语言(或者,Perl或Python)。

图1  Apache网络服务器软件使基于HTTP的资源向外部用户公开资源网并协调内部服务LAMP服务器是一种如此常见的Linux配置,至少在Ubuntu上有它自己的安装包本例末尾的脱字符(^)将目标标识为绑定在一起的特殊包,以简化公共软件堆栈的安装:。

在要求创建数据库密码之资源网后,该命令会将一个正在运行的Web服务器自动放入系统,除了创建一些网站内容,什么也不需要做在Web浏览器中输入服务器的IP地址,则会显示安装Apache时创建的欢迎页面但是自动化并不总是最好的解决方案资源网。

有时想定制发布版本来自定义软件栈以保证应用兼容性,或者用一个包代替另一个包(例如用MariaDB覆盖MySQL)在这种情况下,手动设置将特别有用,因为它将使您更好地理解每个部分的工作原理这里有一个清资源网单,列出了需要做什么才能达到目标:。

1)安装Apache;2)向Web文档的根目录中添加一两个网页;3)安装SQL引擎(在本例中是MariaDB);4)安装PHP服务器端脚本语言;5)安装和配置Med资源网iaWiki2、手动设置Apache Web服务器。

Web服务器软件有一个主要任务——引导站点访问者访问服务器主机上的正确目录和文件,以提供恰当的网站资源实际上,在浏览器地址栏中输入统一资源定位符(U资源网RL)地址实际上是对在远程网站主机上运行的Web服务器。

软件的请求,以便从主机文件系统检索网页、视频或其他资源并将其加载到浏览器中Web服务器软件通常与主机服务器上的其他系统紧密集成,如网络系统、安全资源网系统和文件系统工具等,以便很好地管理对本地资源的访问尽管市场不稳定,但开源Apache

HTTP服务器在所有平台上往往都主导Web服务器市场因为Apache非常流行,尽管它有很多包括Nginx(也是跨平资源网台)和Microsoft的IIS(只在Windows服务器上运行)等强有力的竞争对手(1)在Ubuntu上安装Apache Web服务器

安装Apache本身很容易在Debian/Ubuntu上,即ap资源网t install apache2如果正在Ubuntu机器上进行操作,一旦安装了Apache,打开浏览器访问网站,将看到图2所示的介绍页面。

图2  在浏览器中输入服务器URL或IP地址时显示的Apac资源网he默认页面中包括一些重要的基本配置和导航信息将用来访问的在工作站上运行的Apache站点的URL是本地主机(localhost)相反,如果选择在LXC容器或VirtualBox VM上工作,那么将使资源网用该虚拟机的IP地址作为URL。

为了确保能够对运行在VirtualBox VM上的站点进行网络访问,确认它被配置为使用桥接适配器(2)填充网站文档root考虑到除了Apache欢迎页面网站上什么也没有资源网,需要添加一些内容要做到这一点,需要知道内容在哪里。

内容的位置由Apache配置文件中的DocumentRoot设置控制在CentOS系统中,配置信息在/etc/httpd/conf/目录下的http资源网d.conf文件中Ubuntu用户将在/etc/apache2/sites-available/目录下的000-default.conf文件中找到。

无论哪种方式,在配置文件中搜索DocumentRoo资源网t都会显示一个这样的值:

这意味着Apache会将所有传入的浏览器请求引导到/var/www/html/目录下的文件中可以将该值更改为指向希望的文件系统中的任何位置如果计划在服务器上托管多个网站,可以指资源网向多个文件系统位置可以在文档根目录中创建一个名为index.html的文本文件(该文件将覆盖使用相同名字的Apache欢迎页面)。

在文件中输入自己的欢迎文本以及到第二个HTML文件的链接和图形图像确保资源网在创建第二个文件的同时创建一个图片文件index.html文件可能是这样的:

3、安装SQL数据库网站还有很多方法使用动态访问安装在后台的数据库引擎用于类似BLS项目(或MediaWiki站点)的数据库资源网引擎类型称为关系数据库(relational database),它是一种将数据组织成由列和行构成的表的工具。

单个行中包含的数据称为记录(record)一个记录由一个被称为键(key)的ID值标识,它资源网可以用来引用表之间的记录结构化查询语言(Structured Query Language,SQL)是一种在关系

数据库上管理的数据标准化语法。数据库引擎(database engine),用于管理关系资源网数据库数据,并将其开放给管理员和使用SQL语法的自动化进程的软件。首先,必须安装自己的数据库引擎:

为什么选择MariaDB而不是MySQL?它们都使用完全相同的MySQL标准运行事实上,它们最初是由同资源网一个人创造的两者都很棒,但至少现在,MariaDB似乎受益于更积极的开发和支持除了这两个,还有其他重要的SQL。

数据库引擎在IT界广泛使用,包括Oracle、PostgreSQL和Amazon的Aur资源网ora。可以使用systemctl来确认DB正在运行:

(1)强化SQL当安装了MariaDB,加强数据库安全性总是一个好主意,因此需要运行mysql_secure_installation工具如果在安资源网装过程中没有被提示创建root MariaDB密码(这是非常常见的),那么需要运行mysql_secure_installation,这也是设置身份验证的方式。

运行该工具会呈现以下交互式对话框:

mys资源网ql_secure_installtion需要设置的密码旨在防止匿名用户和远程用户访问数据除非计划将这些数据库只用于测试,并且它不包含重要或敏感的数据,否则不要接受默认值如果mysql_secure_资源网installation必须使用sudo权限,那么就使用这种方式创建。

密码(2)SQL管理下面展示一些简单的数据库管理命令事实上,可能永远不需要直接运行这些命令中的任何一个,因为大多数数据库是从应用程资源网序代码中访问的,而非从命令行中访问手动管理SQL数据库中通常包含的数千条甚至数百万条数据记录很不方便。

有时可能需要手动搭建数据库当集成一个新的应用程序时,可能需要处理一些测试数据或者,也许新业务起步缓资源网慢,不是投资一个新的应用程序,而是手动管理客户,至少应该知道这是如何做的默认情况下,将使用root用户访问和管理MariaDB或。

MySQL中的数据库出于安全原因,单个数据库应该由常规数据库用户拥有和资源网管理,这些用户只获得了执行特定任务所需的权限在这个演示中,简单起见,直接使用root用户稍后,在展示如何设置MediaWiki数据库

时,将通过创建非root用户来正确地执行它 访问数据库 无论安装了M资源网ariaDB还是MySQL,使用mysql后接-u root登录shell告诉数据库,希望作为root用户进行身份验证-p意味着将被提示输入MariaDB。

密码:

除非以sudo权限运行mysql命令,资源网否则MariaDB可能不允许登录如果发生这种情况,请使用sudo登录并提供创建的MariaDB密码然后在MySQL提示下运行这三个命令(用your-password替换。

密码):

下次登录时,应该不再需资源网要sudo,更重要的是,MediaWiki应该能够正确地完成它的工作。下面是如何创建一个新的数据库:

假设您的公司需要存储客户联系信息。可以在数据库中为联系人创建一个新表,如下所示:

以下是如何输入新的信资源网息:

若要显示新Contacts表中的所有数据,请输入select*:

注意表中的ID值,它可以用作记录的键值当全部完成后,可以通过输入exit来关闭MariaDB shell如果永远不需要手动执行那些任资源网务,为什么要这么麻烦呢?因为,为了将自动化操作与数据库集成在一起,几乎肯定有一天需要在脚本和应用程序。

代码中包含各种MySQL语句即使是最简单的网上购物门户也依赖于外部数据 创建MediaWiki数据资源网库用户 MariaDB在创建时就伴随着一个可用的root用户因为root用户对系统中的所有表都具有完全的管理权限,所以在日常操作中使用root不是一个好主意。

相反,从安全性的角度看,最好为每个数据库创资源网建唯一的用户,并且只给他们需要的访问权限让我们再次登录到MariaDB,并为MediaWiki创建一个名为wikidb的新数据库以备使用之后将创建一个名为mw-admin的用户。

FLUSH PRIVI资源网LEGES命令启用新的设置,并授予mw-admin用户对wikidb数据库的完全控制权:4、安装PHPLAMP最后的部分是PHP脚本语言PHP是一种工具,可以用来编写自己的Web应用程序。

预先构建的P资源网HP应用程序经常被第三方应用程序(如MediaWiki)用来访问和处理系统资源因此,假设在使用LAMP服务器时需要安装的Pin码是安全的(1)在Ubuntu中安装PHP想要最新的PHP吗?apt in资源网stall php就能在Ubuntu中搞定一切。

希望它与Apache和谐运行,同样还需要一个扩展:

在更改Web服务器的系统配置时,应该养成重新启动Apache的习惯。如下:

就是这样现在PHP应该是可用资源网的了(2)测试PHP安装为了确保PHP安装是可用的(以及了解PHP的本地环境和资源集成),在Apache Web文档的root目录中使用.php文件扩展名创建一个新文件然后在文件中填充如下的文本行:。资源网

现在转到浏览器,输入正在运行PHP的机器的IP地址(或本地主机)以及创建的文件的名称:

将看到一个长的Web页面(如图3所示),被分成许多部分,这些部分描述计算机和PHP与之对话的方式。

图3  phpi资源网nfo显示的配置和环境数据样本完成后,请确保删除或者限制对testmyphp.php文件的访问将此类系统信息向公众公开是一个严重的安全漏洞5、安装和配置MediaWiki下面是如何一步步实现这个过程的资源网步骤:。

1)下载并打开MediaWiki压缩包;2)识别和安装必要的软件扩展;3)将MediaWiki连接到MariaDB数据库;4)运行并测试安装转到MediaWiki下载页面(www.mediaw资源网iki.org/wiki/Download),单击Download MediaWiki获取最新的安装包。

如果希望通过命令行将文件直接拉入服务器,可以右键单击Download链接,选择Copy Link资源网 Address,并将地址与wget程序一起粘贴到终端窗口:

如果在运行之前的命令时,显示-bash:wget:Command Not Found错误,那么需要安装wget对下载的压缩包运行tar创建一资源网个包含所有解压缩文件和目录的新目录希望将整个目录层次结构复制到文件系统上的某个位置,在那里它将完成它的工作。

如果MediaWiki是服务器上唯一的Web应用程序,那么这可能意味着Web root目录如资源网下所示:

如果MediaWiki只是众多应用程序中的一个,那么可能希望在文档root中创建一个子目录,该子目录将以实用和可以被推定的方式公开服务例如,将文件放入名为/var/www/html/media资源网wiki的目录中,意味着用户将在www.example.com/mediawiki上找到MediaWiki,假设使用example.com作为公共域名。

从这里开始,MediaWiki浏览器接口接管工作资源网在浏览器中输入服务器IP(或是本地主机)以及MediaWiki目录中的index.php文件地址如果将文件复制到/var/www/html/root,那么它将看起来像这样:。

相反,如果为MediaWi资源网ki创建了一个子目录,它可能是这样的:

通常,当第一次安装一个应用程序时,会遵循一个友好的在线指南的指导,最好是一个由项目开发人员自己创建和维护的指南更常见的情况是,这样的指南将提供给一个包依赖项的冗长资源网列表,一般会快速阅读,然后复制并粘贴到apt install命令中。

在这里只安装了Apache、MariaDB和PHP包的基本部分(1)缺少扩展的故障排除设计MediaWiki安装过程的人明智地预见事资源网情不会总是顺利进行如果是配置中缺少了某些内容,将得到一个包含错误信息的页面。

在这种情况下,如图4所示,似乎缺少了两个PHP扩展:mbstring和xml。

图4  一个有用的错误页面显示我的系统缺少两个资源网扩展,并提供了到对应的PHP文档页面的链接使用apt search来查看什么包与mbstring相关因为正在运行PHP 7,所以php7.0-mbstring包似乎最有可能让MediaWiki重新绽放资源网笑容:。

类似地,对xml和php(apt search xml|grep php)的搜索告诉您一个名为php7.0-xml的包似乎可能满足MediaWiki的XML需求将安装这两个包,然后使用syst资源网emctl重新启动Apache:。

所有这些有效方式的美好之处在于,不需要理解多字节字符串编码或者甚至不需要理解XML是什么,也不需要理解为什么没有它们,MediaWiki会完全无法工作只要我们能够信任资源网应用程序的开发人员,遵循他们的指令就没有错了。

整个Linux包管理系统的基本原则建立在官方存储库的管理人员已经为我们完成了审查工作的前提上我们能做的就只有希望他们是对的回到我们的示例,如果一切都按照计资源网划进行,刷新浏览器页面应该会回到最初的MediaWiki介绍页面。

当页面加载时,会看到一个关于丢失LocalSettings.php文件的警告和设置wiki的链接当点击该链接,将选择一个语言选项,然后资源网会显示MediaWiki环境检查页面以及……更多的麻烦!最大的问题是缺少

数据库驱动(database driver)这是用于PHP和本例中MariaDB谈判的软件没有安装这个软件,确实是一个大麻烦尽管资源网图5所示建议的包是php5-mysql,apt search告诉我们,我们使用php-mysql包更有可能成功。

图5  醒目的x表示最严重的问题,其他记录表示不太严重的警告附带安装APCu(缓存和优化资源网PHP中间代码的框架的一部分)和ImageMagick(图像处理工具)这两个推荐的PHP扩展程序再次重启Apache并再次刷新浏览器窗口,应该完全成功了:。

将看到页面底部的“继续”按钮点击它(2)将M资源网ediaWiki连接到数据库通过Connect to Database页面提供的信息告诉MediaWiki:● 在系统上安装了什么样的数据库(本例中是MySQL。

或兼容的);●数据库所在的位置(可以是资源网远程的,甚至是基于云的,但是本例中在本地服务器上,所以localhost是正确的值);● 想给MediaWiki使用的数据库名称(将使用wikidb作为数据库名称);

● 现有数据库用户账户的名称(本例资源网中为mw-admin);● 当前数据库账户的密码(这允许MediaWiki访问MariaDB并创建和管理其数据库;参见图6)。

图6  部分MySQL设置页面,在这里告知MediaWiki如何连接到数据资源网库如果MediaWiki无法连接到数据库,请确认正在使用正确的密码,但也要确保能够从命令行登录到MariaDB Shell如果一切顺利,将看到屏幕上的一系列显示,并输入配置细节,如。

数据库设置、wik资源网i的名称(类似于本例中Company Documentation)以及wiki管理员账户的用户名、密码和联系电子邮件地址这个账户与已经拥有的Linux主机或MariaDB上的账户没有联系。

一些可选的设资源网置问题允许设置用户权限的偏好、wiki内容的版权、用于发送通知邮件的电子邮件服务器,以及用于浏览器内WikiEditor或反垃圾邮件插件等软件扩展可能除了返回的电子邮件地址之外,默认值应该都可用。

当完资源网成后,MediaWiki开始它的安装过程安装完成后,它提示下载一个名为LocalSettings.php的文件,然后将其保存到MediaWiki根目录(在本例中是/var/www/html/)可以用s资源网cp将保存的文件复制到用户的主目录:。

然后,用服务器上的命令,将它移到文档根目录:

一切就绪后,返回与前面使用的地址相同的浏览器页面(如10.0.3.184/index.php)。这一次,如在图7中看到资源网的,会在全新wiki的主页上发现自己。

图7  可以点击页面顶部的Edit标签添加并编辑网页内容和链接6、在CentOS上安装Apache Web服务器如果想避免我们在Ubuntu安装工作中遇到的一些麻资源网烦,可以考虑进行一些先发制人的研究,以确定LAMP难题的各个部分都需要哪些发行版本。

快速浏览MediaWiki安装需求页面(http://mng.bz/4Bp1)应该可以获得安装Apache Web服资源网务器(或在CentOS上的httpd)所需的所有信息。一旦完成,得到软件很简单:

默认情况下,Apache不会运行。还记得如何在systemd上处理它吗?

systemctl start命令启动服务,en资源网able使它能够在计算机每次启动时启动为了确认Apache正在运行,可以使用curl打印网页到控制台终端,输入localhost以告诉curl您在本地服务默认页面。

可能需要安装curl,截止目前一切顺资源网利如果curl输出如下的内容,那么Apache显然在做正确的事:

成功的curl命令意味着Apache正在运行但可能仍然无法从GUI浏览器加载页面有可能会得到“This Site Can抰Be Reac资源网hed”的错误信息问题出在什么地方呢?这个错误说明了Ubuntu的机理与CentOS的另一个有趣的不同之处。

默认情况下,Ubuntu没有任何防火墙Apache已经准备好在安装后立即接受传入的外部通信量资源网CentOS安全地紧闭所有端口如果希望Web服务器接收入站HTTP请求,首先需要打开HTTP端口(通常是端口80)。

(1)了解网络端口什么是网络端口(network point)?它仅仅是一种给网络用资源网户识别特殊服务器资源的方法假设服务器正在托管两个单独的应用程序访问者可以使用其公共IP地址或者相应的DNS域名(如google.com的172.217.1.174)访问。

服务器但是浏览器如何知道您要加资源网载两个应用程序中的哪一个?当特定的端口被提前指定时,才能告知应用程序侦听服务器的流量因此,一个应用程序可以使用端口50501,另一个使用端口50502如图8所示,第一个应用程序将使用192.168.2资源网.10:50501来响应传入的请求(假设192.168.2.10是。

服务器的IP地址),而第二个应用程序使用192.168.2.10:50502。

图8  配置为侦听单独网络端口的应用程序(80=ins资源网ecure HTTP;443=secure HTTPS;30303=a custom application)(2)网络流量控制如何控制对网络的访问?一种方法是通过

防火墙规则(firewall rul资源网e)在CentOS上,通过防火墙服务和它的firewall-cmd工具来处理在这种情况下,需要添加http服务,并且通过--permanent标志,确保规则在每次重新启动服务或启动。

计算机时都是可用的资源网。应用这些更改,重新启动服务:

这样,就可以成功加载CentOS版本的Apache测试页面(图9)。

图9  CentOS Apache Web服务器上的默认页面(3)在CentOS上安装MariaDB安资源网装本身是简单的。需要手动启动MariaDB,然后用enable配置它并加载到系统启动:

从这里开始,可以按照Ubuntu安装过程中介绍MariaDB设置步骤的那一部分进行操作(4)在CentOS上安装P资源网HP要记住新版本的软件包和旧版本的软件包在软件仓库中可以共存可以进行选择,并且最新的一个版本并不总是想要的。

可能是因为正在使用的某个应用程序会由于这个包的最新版本而中断,或者对项目来说,新版本可能不够资源网稳定或不安全某天很有可能需要安装一个非官方Linux软件仓库中的软件包需要保证其他服务和应用程序的兼容性得到满足,还需要确保非官方包和配置在系统更新后仍然存在。

当然,必须格外小心,确保包本身不包含恶意资源网软件不论是否应用官方CentOS PHP软件仓库中的版本,也许需要手动添加单个模块以支持操作遵循在线指南来设置将是有益的可以运行yum search php-来检查可用的模块,然后运行yum info资源网并选取一个想了解的文件名来了解某个特定包的更多内容:。

安装好PHP和任何附加的PHP模块后,重新启动Apache以确保Apache可以将新模块兼容到它的服务中:

使用phpinfo来确认PHP已正确安装资源网。微信公众号:计算机与网络安全ID:Computer-network【推荐书籍】

亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。