所有伟大的网站背后都有一个伟大的服务器。在本教程中,我将向您展示如何使用家里的旧计算机和一些免费软件来设置专用 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”。接下来,从
中选择下载位置
下拉框。最后,点击“开始下载”按钮。
现在您需要将 ISO(您下载的文件)刻录到空白 CD 上。如果您不知道如何执行此操作,可以使用
优秀指南位于 https://help.ubuntu.com/community/BurningIsoHowto
3.安装Ubuntu服务器
现在您已经下载并刻录了 ISO,让我们在您的服务器上安装 Ubuntu。将磁盘放入驱动器中,然后从 CD 启动。在大多数现代计算机中,如果打开驱动器时磁盘位于驱动器中,则默认情况下会发生这种情况。如果没有,那么您需要在打开它时按下键盘上的某个键。对于我的笔记本电脑,它是 F12,对于我的服务器,它是 F2。这仅取决于您的计算机。您可以在 BIOS 期间打开计算机时通过查看屏幕上的文本来找到它。您会看到类似“按 [KEY] 更改启动顺序”的内容。按该键,然后选择您的 CD 驱动器。
还在我身边吗?好的。现在您已经启动了 Ubuntu,您应该看到以下屏幕:
选择您的语言,然后按 Enter 键。现在您将看到此屏幕:
选择“安装 Ubuntu 服务器”,然后我们就可以开始了!
安装程序现在会询问您是否希望它检测您的键盘布局。就我个人而言,我总是选择否,因为
从列表中选择标准美式键盘比让安装程序检测它要快。任何一个选项都可以,
只需按照屏幕上的说明操作即可。
完成此操作后,您现在会看到一堆加载屏幕,上面写着“检测 CD-ROM 驱动器”等内容。
这些应该很快就可以顺利通过。但是,在这些屏幕期间,安装程序将尝试自动配置您的
网络设置。对于大多数情况,这将毫无怨言地起作用。但是,如果它不适合您,只需按照
屏幕上的说明使其正常工作。
完成所有这些后,它会要求您提供主机名。您通常可以将其设置为任何值;我总是设定
我的“网络服务器”。
系统现在会要求您设置时钟的时区。对我来说,它是太平洋。选择适用于的一项
你。
现在,系统将检测更多硬件,系统将提示您“对磁盘进行分区”。选择“引导-使用整个”
磁盘”。
您现在需要选择要分区的磁盘。对于大多数设置,只有一张磁盘可用;然而,
for more specialized systems, more options will be available here. Choose the one that applies to 你。
它会询问您是否要将更改写入磁盘。选择“是”并按 Enter 键。安装程序现在将继续
格式化驱动器并设置分区。
现在奇迹发生了。系统将开始安装。当这种情况发生时,去喝杯咖啡。这可以带到任何地方
从 10 分钟到一个小时。这仅取决于您的系统。有时可能看起来像是被冻结了;别担心,
事实并非如此。就让它做它该做的事吧。但是,如果它在一个物体上停留超过一个小时,那么是的,它会被冻结。
现在系统已安装完毕,需要设置您要登录的帐户。首先,充分发挥
命名并点击“继续”。
现在给它你的用户名。它通常只会将其设置为您的名字,
但你可以改变它。您不能使用的一个名称是“root”。
现在系统会要求您提供密码。您必须选择一个强密码,否则您的服务器将不会
一定要安全。我建议至少混合使用数字、小写字母和大写字母。但是,对于我的服务器
我使用符号以及上述符号的混合。请勿使用少于 7 个字符的密码。
然后,重新输入您的密码以验证您输入的密码是否正确。
系统现在将尝试配置“包管理器”(我们很快就会了解它是什么)。提供您的
代理信息,或者如果您不使用代理,则将其留空,然后选择“继续”。
系统现在将扫描多个服务器以查找更新和配置设置。
完成后,您将看到几个安装服务器软件的选项。现在,请仔细听。
选择 OpenSSH 服务器,然后按空格键,而不是回车键。如果按 Enter 键,安装将继续进行,而不安装 OpenSSH 服务器。
您也可以安装“LAMP 服务器”,但我没有使用此选项的经验,因此我们将使用不同的方式安装它
稍后命令。
系统现在将安装您选择的软件以及其他系统组件。
最后,安装将完成。取出 CD,然后按 Enter 键。计算机将重新启动。如果一切顺利的话,你将会
出现的屏幕看起来类似于以下内容:
恭喜!你刚刚完成了最困难的部分。 Ubuntu 现已安装完毕,是时候将这台计算机变成
网络服务器。
4.更新您的新服务器
在继续之前,我们需要确保您的服务器是最新的。为此,您需要登录。首先,输入您的用户名
(您之前选择的那个),按 Enter 键,然后键入您的密码。当您输入密码时,您会发现没有任何内容
似乎正在发生。别担心,这就是它设计的工作方式。输入密码后,按 Enter 键,
如果一切顺利的话,您的屏幕应该类似于下面的屏幕:
现在,输入:
sudo aptitude update && sudo aptitude dist-upgrade
它会要求您输入密码,并且在您输入密码时您将看不到任何内容。完成此操作后,它会询问您是否
你想继续。输入“y”并按 Enter 键。您的屏幕将类似于以下内容:
您的系统现在将下载并安装所有最新更新。这将需要一段时间,具体取决于您的互联网连接。之后
它已完成,您的计算机将需要重新启动。为此,请键入:
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 将下载并安装您指定的程序。它还将下载并安装任何内容
依赖关系。
在安装过程中,MySQL 会要求您输入 root 密码。您可以将其设置为任何值,只要确保它长且安全即可。
无论您做什么,都不要将此留空。
一切完成后,您现在就拥有了一个完全运行的 Web 服务器。要测试它,首先输入以下内容查找服务器的 IP:
ifconfig | grep inet
通常是返回的第一个 IP。就我而言,它是 192.168.177.129。现在您知道了 IP,请打开网络浏览器并指向它
到你的服务器IP。如果您看到“它有效!”消息,然后恭喜,它成功了。
但是,我们还没有完成。我们不希望 Apache 或 PHP 泄露有关其自身的任何信息,因为不需要这些信息
由您的用户执行,可能会带来安全风险。首先,备份原来的Apache配置文件:
sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak
现在打开配置文件:
sudo nano /etc/apache2/apache2.conf
向下滚动(向下箭头)到显示“ServerTokens Full”的位置,并将其更改为“ServerTokens Prod”
现在,进一步向下滚动并将“ServerSignature On”更改为“ServerSignature Off”
最后,按 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 = 关”
再次按 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
然后按 Control-O 和 Control-X。您的防火墙现已配置为仅接受 HTTP 和 SSH 流量。我们需要做的最后一件事
要做的就是告诉 Shorewall 在启动时启动。因此,打开主 Shorewall 配置文件:
sudo nano /etc/shorewall/shorewall.conf
向下滚动到“STARTUP_ENABLED=No”并将其设置为“STARTUP_ENABLED=Yes”
按 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,免费),
Cyberduck(OS X,免费),以及我个人最喜欢的 Transmit
(OS X,30 美元)
使用您的用户名和密码连接到您的服务器,如果您的客户端支持,则使用默认路径“/var/www”(如果不支持,则使用默认路径)
登录后只需浏览到 /var/www ):(传输如图)
您现在可以将文件添加到此文件夹 (/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、用户名和密码
当它要求的时候。您会注意到,登录后,它看起来与服务器上的屏幕完全相同:
您可以从这里做任何您实际坐在服务器上要做的事情。要从服务器注销,只需键入“exit”并按 Enter 键即可。
10. 就是这样!
您现在拥有一个功能齐全的网络服务器。它是一个很好的试验场,甚至适合托管流量相当低的网站。显然还有很多需要学习,但希望您已经对网络服务器的工作原理有了一些了解。
如果您想了解有关我所涵盖主题的更多信息,这里有一些很棒的指南:
- 安装软件
- 设置 Apache、MySQL 和 PHP
- 海岸墙配置指南
- 如何转发
此外,请务必查看 Envato Market 上数千个有用的 PHP 脚本。从表单和购物车到数据库抽象的一切内容,肯定会为您作为开发人员的下一阶段的工作提供帮助。
以上就是设置免费专用 Web 服务器:分步指南的详细内容,更多请关注php中文网其它相关文章!