linux系统电脑推荐(linux服务器搭建教程)

一次性付费进群,长期免费索取教程,没有付费教程。

linux系统电脑推荐(linux服务器搭建教程)

ID:Computer-network

MediaWiki是一种热门的开源Wiki engine,是一个在Linux上阐述构建Web服务器(通常称为LAMP服务器)过程的好方式。通过部署MediaWiki,可以了解组建Linux Web服务器的软件包。1、建立LAMP服务器如果您或您的企业有信息、应用程序或服务,那么很可能希望将它们提供给Web浏览器使用。网络服务器(Web server)是在计算机上运行的软件,它允许托管在本地的资源被网站的访问者查看和使用。显然,这个术语也经常被用来描述承载Web服务器软件的计算机。下面示例构建一个动态网站。这种网站的网页是在服务器端操作帮助下生成的。同样还可以创建静态网站,在大多数情况下,这些网站仅提供将全部工作委托给客户端Web浏览器的纯HTML文件。如图1所示,大多数Linux Web服务器都建立在称为LAMP服务器的四大支柱上。字母LAMP代表Linux、Apache Web服务器管理软件、MySQL或MariaDB数据库引擎和PHP服务器端脚本语言(或者,Perl或Python)。

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

这意味着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的Aurora。可以使用systemctl来确认DB正在运行:

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

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

(2)SQL管理下面展示一些简单的数据库管理命令。事实上,可能永远不需要直接运行这些命令中的任何一个,因为大多数数据库是从应用程序代码中访问的,而非从命令行中访问。手动管理SQL数据库中通常包含的数千条甚至数百万条数据记录很不方便。有时可能需要手动搭建数据库。当集成一个新的应用程序时,可能需要处理一些测试数据。或者,也许新业务起步缓慢,不是投资一个新的应用程序,而是手动管理客户,至少应该知道这是如何做的。默认情况下,将使用root用户访问和管理MariaDB或MySQL中的数据库。出于安全原因,单个数据库应该由常规数据库用户拥有和管理,这些用户只获得了执行特定任务所需的权限。在这个演示中,简单起见,直接使用root用户。稍后,在展示如何设置MediaWiki数据库时,将通过创建非root用户来正确地执行它。访问数据库无论安装了MariaDB还是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 PRIVILEGES命令启用新的设置,并授予mw-admin用户对wikidb数据库的完全控制权:4、安装PHPLAMP最后的部分是PHP脚本语言。PHP是一种工具,可以用来编写自己的Web应用程序。预先构建的PHP应用程序经常被第三方应用程序(如MediaWiki)用来访问和处理系统资源。因此,假设在使用LAMP服务器时需要安装的Pin码是安全的。(1)在Ubuntu中安装PHP想要最新的PHP吗?apt install php就能在Ubuntu中搞定一切。希望它与Apache和谐运行,同样还需要一个扩展:

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

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

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

图3 phpinfo显示的配置和环境数据样本完成后,请确保删除或者限制对testmyphp.php文件的访问。将此类系统信息向公众公开是一个严重的安全漏洞。5、安装和配置MediaWiki

下面是如何一步步实现这个过程的步骤:

1)下载并打开MediaWiki压缩包;

2)识别和安装必要的软件扩展;

3)将MediaWiki连接到MariaDB数据库;

4)运行并测试安装。

如果在运行之前的命令时,显示-bash:wget:Command Not Found错误,那么需要安装wget。对下载的压缩包运行tar创建一个包含所有解压缩文件和目录的新目录。希望将整个目录层次结构复制到文件系统上的某个位置,在那里它将完成它的工作。如果MediaWiki是服务器上唯一的Web应用程序,那么这可能意味着Web root目录如下所示:

相反,如果为MediaWiki创建了一个子目录,它可能是这样的:

通常,当第一次安装一个应用程序时,会遵循一个友好的在线指南的指导,最好是一个由项目开发人员自己创建和维护的指南。更常见的情况是,这样的指南将提供给一个包依赖项的冗长列表,一般会快速阅读,然后复制并粘贴到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需求。将安装这两个包,然后使用systemctl重新启动Apache:

所有这些有效方式的美好之处在于,不需要理解多字节字符串编码或者甚至不需要理解XML是什么,也不需要理解为什么没有它们,MediaWiki会完全无法工作。只要我们能够信任应用程序的开发人员,遵循他们的指令就没有错了。整个Linux包管理系统的基本原则建立在官方存储库的管理人员已经为我们完成了审查工作的前提上。我们能做的就只有希望他们是对的。

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

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

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

systemctl start命令启动服务,enable使它能够在计算机每次启动时启动。为了确认Apache正在运行,可以使用curl打印网页到控制台终端,输入localhost以告诉curl您在本地服务默认页面。可能需要安装curl,截止目前一切顺利。如果curl输出如下的内容,那么Apache显然在做正确的事:

图8 配置为侦听单独网络端口的应用程序(80=insecure HTTP;443=secure HTTPS;30303=a custom application)(2)网络流量控制如何控制对网络的访问?一种方法是通过防火墙规则(firewall rule)。在CentOS上,通过防火墙服务和它的firewall-cmd工具来处理。在这种情况下,需要添加http服务,并且通过–permanent标志,确保规则在每次重新启动服务或启动计算机时都是可用的。应用这些更改,重新启动服务:

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

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

从这里开始,可以按照Ubuntu安装过程中介绍MariaDB设置步骤的那一部分进行操作。(4)在CentOS上安装PHP要记住新版本的软件包和旧版本的软件包在软件仓库中可以共存。可以进行选择,并且最新的一个版本并不总是想要的。可能是因为正在使用的某个应用程序会由于这个包的最新版本而中断,或者对项目来说,新版本可能不够稳定或不安全。某天很有可能需要安装一个非官方Linux软件仓库中的软件包。需要保证其他服务和应用程序的兼容性得到满足,还需要确保非官方包和配置在系统更新后仍然存在。当然,必须格外小心,确保包本身不包含恶意软件。不论是否应用官方CentOS PHP软件仓库中的版本,也许需要手动添加单个模块以支持操作。遵循在线指南来设置将是有益的。可以运行yum search php-来检查可用的模块,然后运行yum info并选取一个想了解的文件名来了解某个特定包的更多内容:

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

使用phpinfo来确认PHP已正确安装。

ID:Computer-network

【推荐书籍】

发表评论

登录后才能评论