所有伟大的网站背后都有一个伟大的服务器。在本教程中,我将向您展示如何使用家里的旧计算机和一些免费软件来设置专用 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中文网其他相关文章!

PHP主要是过程式编程,但也支持面向对象编程(OOP);Python支持多种范式,包括OOP、函数式和过程式编程。PHP适合web开发,Python适用于多种应用,如数据分析和机器学习。

PHP起源于1994年,由RasmusLerdorf开发,最初用于跟踪网站访问者,逐渐演变为服务器端脚本语言,广泛应用于网页开发。Python由GuidovanRossum于1980年代末开发,1991年首次发布,强调代码可读性和简洁性,适用于科学计算、数据分析等领域。

PHP适合网页开发和快速原型开发,Python适用于数据科学和机器学习。1.PHP用于动态网页开发,语法简单,适合快速开发。2.Python语法简洁,适用于多领域,库生态系统强大。

PHP在现代化进程中仍然重要,因为它支持大量网站和应用,并通过框架适应开发需求。1.PHP7提升了性能并引入了新功能。2.现代框架如Laravel、Symfony和CodeIgniter简化开发,提高代码质量。3.性能优化和最佳实践进一步提升应用效率。

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP类型提示提升代码质量和可读性。1)标量类型提示:自PHP7.0起,允许在函数参数中指定基本数据类型,如int、float等。2)返回类型提示:确保函数返回值类型的一致性。3)联合类型提示:自PHP8.0起,允许在函数参数或返回值中指定多个类型。4)可空类型提示:允许包含null值,处理可能返回空值的函数。

PHP中使用clone关键字创建对象副本,并通过\_\_clone魔法方法定制克隆行为。1.使用clone关键字进行浅拷贝,克隆对象的属性但不克隆对象属性内的对象。2.通过\_\_clone方法可以深拷贝嵌套对象,避免浅拷贝问题。3.注意避免克隆中的循环引用和性能问题,优化克隆操作以提高效率。

PHP适用于Web开发和内容管理系统,Python适合数据科学、机器学习和自动化脚本。1.PHP在构建快速、可扩展的网站和应用程序方面表现出色,常用于WordPress等CMS。2.Python在数据科学和机器学习领域表现卓越,拥有丰富的库如NumPy和TensorFlow。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

记事本++7.3.1
好用且免费的代码编辑器