卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章64334本站已运行4115

设置免费专用 Web 服务器:分步指南

所有伟大的网站背后都有一个伟大的服务器。在本教程中,我将向您展示如何使用家里的旧计算机和一些免费软件来设置专用 Web 服务器(使用 Apache、MySQL 和 PHP)。 p>


1. 快速概述

在本教程中,我们的目标是完成几件事:

  • 我们将安装 Ubuntu Server 操作系统。我通常使用 Ubuntu,因为它易于使用并且

    简单的管理。它背后还有一个相当大且极其活跃的社区,这使得

    支持微风。

  • 我们将安装 OpenSSH 服务器。这允许您从远程计算机管理您的服务器。
  • 将安装 LAMP(Linux、Apache、MySQL 和 PHP)堆栈。这提供了运行的主干

    你的网页。 Apache 是基于 Unix 的操作系统上的行业标准 Web 服务器;这是大多数网络主机的做法

    use(NETTUTS 现在正在使用它!),这就是我们将要使用的。

  • 我们将安装防火墙来保护您的服务器免遭未经授权的访问。

为了学习本教程,您需要一些物品:

  • 用作服务器的计算机。它不需要很强大;只要不是古老的,就可以正常工作。请

    不要在台式电脑上执行此操作; Ubuntu 将彻底擦除您的计算机。

  • 一个 CD 刻录机和一张空白 CD。这些是为了让您可以将 Ubuntu 刻录到磁盘上以便安装它。
  • 时间。说实话,这个过程非常耗时,尤其是当您遇到问题时。尝试留出一个下午

    遵循本教程。

您可能会问为什么想要拥有自己的网络服务器。有几个原因,其中一些是:您可以进行自己的测试

您网站的基础;只需稍加修改,您就可以托管自己的网站;并且,随着您的学习,您将学到很多有关 Linux/Unix 的知识。

话虽如此,让我们开始吧!


2.下载Ubuntu服务器

首先,我们需要一张包含 Ubuntu 的 CD。将网络浏览器指向 http://www.ubuntu.com/,

然后从左侧菜单中单击“下载”。现在,您将看到一个带有两个选项卡的框:“桌面版”和

“服务器版”。单击“服务器版本”选项卡,然后选择“Ubuntu 8.04 LTS”。接下来,从

中选择下载位置 下拉框。最后,点击“开始下载”按钮。

设置免费专用 Web 服务器:分步指南

现在您需要将 ISO(您下载的文件)刻录到空白 CD 上。如果您不知道如何执行此操作,可以使用

优秀指南位于 https://help.ubuntu.com/community/BurningIsoHowto


3.安装Ubuntu服务器

现在您已经下载并刻录了 ISO,让我们在您的服务器上安装 Ubuntu。将磁盘放入驱动器中,然后从 CD 启动。在大多数现代计算机中,如果打开驱动器时磁盘位于驱动器中,则默认情况下会发生这种情况。如果没有,那么您需要在打开它时按下键盘上的某个键。对于我的笔记本电脑,它是 F12,对于我的服务器,它是 F2。这仅取决于您的计算机。您可以在 BIOS 期间打开计算机时通过查看屏幕上的文本来找到它。您会看到类似“按 [KEY] 更改启动顺序”的内容。按该键,然后选择您的 CD 驱动器。

还在我身边吗?好的。现在您已经启动了 Ubuntu,您应该看到以下屏幕:

设置免费专用 Web 服务器:分步指南

选择您的语言,然后按 Enter 键。现在您将看到此屏幕:

设置免费专用 Web 服务器:分步指南

选择“安装 Ubuntu 服务器”,然后我们就可以开始了!

安装程序现在会询问您是否希望它检测您的键盘布局。就我个人而言,我总是选择否,因为

从列表中选择标准美式键盘比让安装程序检测它要快。任何一个选项都可以,

只需按照屏幕上的说明操作即可。

完成此操作后,您现在会看到一堆加载屏幕,上面写着“检测 CD-ROM 驱动器”等内容。

这些应该很快就可以顺利通过。但是,在这些屏幕期间,安装程序将尝试自动配置您的

网络设置。对于大多数情况,这将毫无怨言地起作用。但是,如果它不适合您,只需按照

屏幕上的说明使其正常工作。

完成所有这些后,它会要求您提供主机名。您通常可以将其设置为任何值;我总是设定

我的“网络服务器”。

设置免费专用 Web 服务器:分步指南

系统现在会要求您设置时钟的时区。对我来说,它是太平洋。选择适用于的一项

你。

现在,系统将检测更多硬件,系统将提示您“对磁盘进行分区”。选择“引导-使用整个”

磁盘”。

设置免费专用 Web 服务器:分步指南

您现在需要选择要分区的磁盘。对于大多数设置,只有一张磁盘可用;然而,

for more specialized systems, more options will be available here. Choose the one that applies to 你。

设置免费专用 Web 服务器:分步指南

它会询问您是否要将更改写入磁盘。选择“是”并按 Enter 键。安装程序现在将继续

格式化驱动器并设置分区。

现在奇迹发生了。系统将开始安装。当这种情况发生时,去喝杯咖啡。这可以带到任何地方

从 10 分钟到一个小时。这仅取决于您的系统。有时可能看起来像是被冻结了;别担心,

事实并非如此。就让它做它该做的事吧。但是,如果它在一个物体上停留超过一个小时,那么是的,它会被冻结。

设置免费专用 Web 服务器:分步指南

现在系统已安装完毕,需要设置您要登录的帐户。首先,充分发挥

命名并点击“继续”。

设置免费专用 Web 服务器:分步指南

现在给它你的用户名。它通常只会将其设置为您的名字,

但你可以改变它。您不能使用的一个名称是“root”。

设置免费专用 Web 服务器:分步指南

现在系统会要求您提供密码。您必须选择一个强密码,否则您的服务器将不会

一定要安全。我建议至少混合使用数字、小写字母和大写字母。但是,对于我的服务器

我使用符号以及上述符号的混合。请勿使用少于 7 个字符的密码。

设置免费专用 Web 服务器:分步指南

然后,重新输入您的密码以验证您输入的密码是否正确。

系统现在将尝试配置“包管理器”(我们很快就会了解它是什么)。提供您的

代理信息,或者如果您不使用代理,则将其留空,然后选择“继续”。

设置免费专用 Web 服务器:分步指南

系统现在将扫描多个服务器以查找更新和配置设置。

设置免费专用 Web 服务器:分步指南

完成后,您将看到几个安装服务器软件的选项。现在,请仔细听。

选择 OpenSSH 服务器,然后按空格键,而不是回车键。如果按 Enter 键,安装将继续进行,而不安装 OpenSSH 服务器。

您也可以安装“LAMP 服务器”,但我没有使用此选项的经验,因此我们将使用不同的方式安装它

稍后命令。

设置免费专用 Web 服务器:分步指南

系统现在将安装您选择的软件以及其他系统组件。

设置免费专用 Web 服务器:分步指南

最后,安装将完成。取出 CD,然后按 Enter 键。计算机将重新启动。如果一切顺利的话,你将会

出现的屏幕看起来类似于以下内容:

设置免费专用 Web 服务器:分步指南

恭喜!你刚刚完成了最困难的部分。 Ubuntu 现已安装完毕,是时候将这台计算机变成

网络服务器。


4.更新您的新服务器

在继续之前,我们需要确保您的服务器是最新的。为此,您需要登录。首先,输入您的用户名

(您之前选择的那个),按 Enter 键,然后键入您的密码。当您输入密码时,您会发现没有任何内容

似乎正在发生。别担心,这就是它设计的工作方式。输入密码后,按 Enter 键,

如果一切顺利的话,您的屏幕应该类似于下面的屏幕:

设置免费专用 Web 服务器:分步指南

现在,输入:

'
sudo aptitude update && sudo aptitude dist-upgrade

它会要求您输入密码,并且在您输入密码时您将看不到任何内容。完成此操作后,它会询问您是否

你想继续。输入“y”并按 Enter 键。您的屏幕将类似于以下内容:

设置免费专用 Web 服务器:分步指南

您的系统现在将下载并安装所有最新更新。这将需要一段时间,具体取决于您的互联网连接。之后

它已完成,您的计算机将需要重新启动。为此,请键入:

'
sudo shutdown -r now

并让它重新启动。您的服务器现已完全更新。


关于“Sudo”的快速说明

现在,您可能已经注意到您输入的所有命令都以“sudo”开头。这是因为他们需要

管理员权限,这就是“sudo”的作用。它以管理员身份运行命令(即“关闭”),使其能够工作

适当地。这也是它要求您输入密码的原因。但是,在您输入“sudo”一次并输入密码后,

五分钟内您无需再次输入密码。并非所有命令都需要 sudo,只有修改系统某些部分的命令才需要。

这些都掌握了吗?很好。


5.安装Apache、MySQL和PHP

现在是时候安装一些程序了。为了从互联网访问您的网站,我们需要安装 Web 服务器 (Apache)。除了网络服务器之外,我们还将

还需要数据库服务器(MySQL)和服务器端语言(PHP),以便我们可以运行 WordPress 等流行应用程序。所以,

让我们开始吧!

在 Ubuntu 上安装程序与在 Windows 或 Windows 上安装程序有很大不同

OS X,Ubuntu 将通过一个简单的命令为您下载并安装程序。这是因为 Ubuntu 有一个叫做

程序包管理器,它管理系统上的几乎所有程序。我们所要做的就是告诉包管理器

(称为“aptitude”)我们希望它安装 Apache、MySQL 和 PHP。为此,请键入以下命令:

'
sudo aptitude install apache2 php5-mysql libapache2-mod-php5 mysql-server

然后按 Enter 键。 Aptitude 将下载并安装您指定的程序。它还将下载并安装任何内容

依赖关系。

设置免费专用 Web 服务器:分步指南

在安装过程中,MySQL 会要求您输入 root 密码。您可以将其设置为任何值,只要确保它长且安全即可。

无论您做什么,都不要将此留空。

设置免费专用 Web 服务器:分步指南

一切完成后,您现在就拥有了一个完全运行的 Web 服务器。要测试它,首先输入以下内容查找服务器的 IP:

'
ifconfig | grep inet

设置免费专用 Web 服务器:分步指南

通常是返回的第一个 IP。就我而言,它是 192.168.177.129。现在您知道了 IP,请打开网络浏览器并指向它

到你的服务器IP。如果您看到“它有效!”消息,然后恭喜,它成功了。

设置免费专用 Web 服务器:分步指南

但是,我们还没有完成。我们不希望 Apache 或 PHP 泄露有关其自身的任何信息,因为不需要这些信息

由您的用户执行,可能会带来安全风险。首先,备份原来的Apache配置文件:

'
sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak

现在打开配置文件:

'
sudo nano /etc/apache2/apache2.conf

向下滚动(向下箭头)到显示“ServerTokens Full”的位置,并将其更改为“ServerTokens Prod”

设置免费专用 Web 服务器:分步指南

现在,进一步向下滚动并将“ServerSignature On”更改为“ServerSignature Off”

设置免费专用 Web 服务器:分步指南

最后,按 Control-O,然后按 Control-X。这将保存文件并退出文本编辑器。

现在,我们需要对 PHP 做同样的事情。首先,备份原来的PHP配置文件:

'
sudo cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.bak

打开配置文件:

'
sudo nano /etc/php5/apache2/php.ini

将“expose_php = 开”更改为“expose_php = 关”

设置免费专用 Web 服务器:分步指南

再次按 Control-O,然后按 Control-X。现在配置文件已更新,重新启动 Apache:

'
sudo /etc/init.d/apache2 restart

您已完成 Apache、MySQL 和 PHP 的设置。


6.安装防火墙

我们现在将通过安装 Shorewall(一种命令行防火墙)来进一步锁定我们的服务器。安装它:

'
sudo aptitude install shorewall

默认情况下,Shorewall 安装时没有任何规则,允许完全访问。然而,这不是我们想要的行为。

相反,我们将阻止除端口 80 (HTTP) 和端口 22 (SSH) 之外的所有连接。首先复制配置

文件到 Shorewall 目录:

'
sudo cp /usr/share/doc/shorewall-common/examples/one-interface/* /etc/shorewall/

现在,打开“规则”文件:

'
sudo nano /etc/shorewall/rules

在“#LAST LINE”上方添加这些行

'
HTTP/ACCEPT	net		$FW
SSH/ACCEPT	net		$FW

设置免费专用 Web 服务器:分步指南

然后按 Control-O 和 Control-X。您的防火墙现已配置为仅接受 HTTP 和 SSH 流量。我们需要做的最后一件事

要做的就是告诉 Shorewall 在启动时启动。因此,打开主 Shorewall 配置文件:

'
sudo nano /etc/shorewall/shorewall.conf

向下滚动到“STARTUP_ENABLED=No”并将其设置为“STARTUP_ENABLED=Yes”

设置免费专用 Web 服务器:分步指南

按 Control-O 和 Control-X。现在,打开 Shorewall 默认配置文件:

'
sudo nano /etc/default/shorewall

并将“startup=0”更改为“startup=1”。按 Control-O 和 Control-X。最后,启动防火墙:

'
sudo /etc/init.d/shorewall start

恭喜!您的防火墙现已设置并保护您的服务器。


7. 将您的网站添加到您的网络服务器

现在您已完成所有设置,您可能想向其中添加一个网站。默认情况下,Apache 提供的所有文件

互联网上的地址位于“/var/www/”。但是,您无法写入此文件夹。让我们做到这一点,以便您可以:

'
sudo usermod -g www-data [YOUR USERNAME]
sudo chown -R www-data:www-data /var/www
sudo chmod -R 775 /var/www

发生的情况是,您将自己添加到“www-data”组,并使网站文件夹对“www-data”成员可写

组。

现在,您将使用 SFTP(不要与 FTPS 混淆)登录服务器。一些支持 SFTP 的客户端有:

WinSCP(Windows,免费),FileZilla(Windows,Linux,OS X,免费),

Cyber​​duck(OS X,免费),以及我个人最喜欢的 Transmit

(OS X,30 美元)

使用您的用户名和密码连接到您的服务器,如果您的客户端支持,则使用默认路径“/var/www”(如果不支持,则使用默认路径)

登录后只需浏览到 /var/www ):(传输如图)

设置免费专用 Web 服务器:分步指南

您现在可以将文件添加到此文件夹 (/var/www),当您使用您的浏览器浏览该文件夹时,它们将显示在您的服务器上

网络浏览器。

现在,您可能想知道为什么我们使用 SFTP 而不是 FTP。主要是因为 SFTP 已内置于 OpenSSH(您安装的)

较早)。然而,它也比 FTP 安全得多,并且使恶意用户很难(如果不是不可能)获得访问权限

您的登录凭据。


8. 让您的服务器可访问 Internet

如今,大多数现代家庭网络都位于路由器后面。因此,如果没有

,您的网络服务器将不会对互联网可见。 一点工作。由于我没有可用的所有路由器进行测试,因此我只能为您提供该领域的一般指导。

有两种方法可以将服务器开放到互联网:DMZ 或端口转发。您会注意到的主要区别是,对于 DMZ,您的服务器使用

我们之前安装的防火墙是为了保护自身。但是,通过端口转发,您的服务器将受到路由器防火墙的保护。

但是,在我们继续之前,您需要为您的服务器提供一个静态 LAN 地址。为此,请登录您的路由器,然后查找某些内容

类似于“静态 IP”或“静态路由”。为服务器提供静态 LAN 地址后,您可以执行接下来的部分。请记住,

Google 是您的朋友。

要转发,有一个很棒的网站,PortForward.com,虽然丑陋,但可以

帮助您完成几乎所有路由器的工作。您要转发的端口是 22 和 80。

要创建 DMZ,您需要登录路由器并查找“DMZ 设置”之类的内容。找到它后,将您的服务器添加到

DMZ,然后您就可以了。同样,Google 在这种情况下会很有帮助。

现在,找到您的公共 IP,瞧!您可以从任何地方访问您的服务器,只要

因为您的 IP 不会改变。


9.远程管理您的服务器

除了允许您上传文件之外,OpenSSH 还允许您从任何地方登录到您的服务器,只要您知道它的 IP。对于 Windows,您将

需要一个 SSH 客户端。我推荐腻子。对于 OS X,SSH 是

已安装。只需打开终端,然后输入“ssh you@yourip”。对于 Putty,选择 SSH,然后输入您的 IP、用户名和密码

当它要求的时候。您会注意到,登录后,它看起来与服务器上的屏幕完全相同:

设置免费专用 Web 服务器:分步指南

您可以从这里做任何您实际坐在服务器上要做的事情。要从服务器注销,只需键入“exit”并按 Enter 键即可。


10. 就是这样!

您现在拥有一个功能齐全的网络服务器。它是一个很好的试验场,甚至适合托管流量相当低的网站。显然还有很多需要学习,但希望您已经对网络服务器的工作原理有了一些了解。

如果您想了解有关我所涵盖主题的更多信息,这里有一些很棒的指南:

  • 安装软件
  • 设置 Apache、MySQL 和 PHP
  • 海岸墙配置指南
  • 如何转发

此外,请务必查看 Envato Market 上数千个有用的 PHP 脚本。从表单和购物车到数据库抽象的一切内容,肯定会为您作为开发人员的下一阶段的工作提供帮助。

设置免费专用 Web 服务器:分步指南

卓越飞翔博客
上一篇: Python程序找到字符串的权重
下一篇: 如何在C#中声明和实例化委托?
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏