如何在您的家庭 Linux 系统上免费托管网站
术语 Web 服务器可用于指代硬件和软件,或两者一起工作。出于本指南的目的,我们将重点关注软件方面,并了解如何在您的 Linux 机器上托管网站。
Web 服务器是一种软件程序,它通过 HTTP/HTTPS 协议接收和响应客户端请求。它的主要目的是显示网站内容,这些内容通常以文本、图像和视频的形式出现。
Web 服务器可以提供静态 或动态 内容。顾名思义,静态内容指的是几乎不会改变并且必然保持不变的内容。服务器按原样将内容发送回用户的浏览器。
动态内容是经常变化或不断更新的内容。要提供动态内容,Web 服务器还必须与数据库服务器和服务器端脚本语言一起工作。
本指南将演示如何设置 Apache 网络服务器以在您的 Linux 系统上免费托管网站。
要求
要按照本指南进行操作,请确保您具备以下条件。
- 可以从您的 ISP 获得专用的公共 IP 地址。
- 一个 Linux 机器,可以是您首选操作系统变体的 Linux 服务器安装。对于本指南,我们将使用 Debian 11。
查看一些指南,了解如何安装 Linux 服务器。
- 如何安装 Debian 11 (Bullseye) 最小服务器
- 如何安装 Debian 10 (Buster) 最小服务器
- 如何安装 Ubuntu 20.04 服务器
- 如何安装 Rocky Linux 9 服务器
- 如何安装 AlmaLinux 9 服务器
- 如何免费安装 RHEL 9
您还需要安装一个 LAMP 服务器,它是 Linux、Apache 和 MySQL 的首字母缩写词(也可以是 MariaDB)。以下是有关如何在 Linux 中安装 LAMP 堆栈的一些指南。
- 如何在 Debian 11 服务器上安装 LAMP
- 如何在 Debian 10 服务器上安装 LAMP
- 如何在 Ubuntu 20.04 中安装 LAMP 堆栈
- 如何在 Rocky Linux 9/8 上安装 LAMP
- 如何在 AlmaLinux 9/8 中安装 LAMP 堆栈
- 如何在 RHEL 9/8 上安装 LAMP
如何在 Linux 服务器上托管网站
在本节中,我们将继续讨论 Web 服务器的主要组件。
什么是阿帕奇?
Apache 是一种流行的免费开源跨平台 Web 服务器,根据 Apache License 2.0 发布。它是使用最广泛的网络服务器之一,占网络服务器市场份额的近 32.2%。
要检查可用的最新版本的 Apache,以及它是否安装在您的服务器上,请运行以下命令:
# apt-cache policy apache2 (On Debian-based OS)
从输出中,您可以看到参数 Installed: (none) 暗示它尚未安装。您还可以获得有关 Debian/Ubuntu 存储库提供的最新版本的信息,在本例中为 2.4.52。

在现代 dnf 命令如下。
# dnf search httpd

从上面的输出中,您可以看到 Apache httpd 包可供下载。如果您的系统上未安装 Apache,请使用“apt”或“dnf”包管理器安装 Apache,如图所示。
在基于 Debian 的系统上:
$ sudo apt install apache2 -y
$ sudo systemctl start apache2
$ sudo systemctl enable apache2
$ sudo systemctl status apache2

在基于 Red Hat 的系统上:
# dnf install httpd -y
# systemctl start httpd
# systemctl enable httpd
# systemctl status httpd

什么是 MariaDB?
MySQL 的一个分支,MariaDB 是最流行的开源关系数据库管理系统之一。如今,它比 MySQL 更受青睐,因为它在复制和执行查询方面速度更快,而且安全且拥有大量存储引擎。
在基于 Debian 的系统上安装 MariaDB:
$ sudo apt install mariadb-server mariadb-client -y
$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb
$ sudo systemctl status mariadb
以下输出显示 MariaDB 已按预期安装和运行。

在基于 RHEL 的系统上安装 MariaDB:
# dnf install mariadb-server -y
# systemctl start mariadb
# systemctl enable mariadb
# systemctl status mariadb

什么是PHP?
PHP 是 PHP Hypertext Preprocessor 的递归首字母缩写词,它是一种流行的通用脚本语言,主要用于网络开发。
在基于 Debian 的系统上安装 PHP:
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install ca-certificates apt-transport-https software-properties-common
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt update
$ sudo apt install php8.0 libapache2-mod-php8.0
要安装 PHP,在基于 RHEL 的系统上,您需要首先启用 EPEL 存储库。
$ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm [RHEL 9]
$ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm [RHEL 8]
接下来,启用 Remi 存储库,它在基于 RHEL 的系统上提供最新版本的 PHP。
$ sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm [RHEL 8]
$ sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm [RHEL 8]
在系统上启用 EPEL 和 Remi 存储库后,您可以安装 PHP,如图所示。
# dnf module list php
# dnf module enable php:remi-8.0 -y
# dnf install php php-cli php-common
安装所有组件后,您现在可以使用 WordPress CMS 构建您的网站,该软件可让用户轻松开发和管理网站,而无需了解 HTML、CSS、PHP 和 Javascript 等网页设计语言。
在 Linux 中使用 WordPress 创建一个简单的网站
为了演示,我们将在 Debian 11 和 RHEL 9 系统上安装 WordPress,这将提供一个示例网站,可以根据您的喜好进一步定制.
本节假定您已经安装了 LAMP 堆栈。
第 1 步:安装其他 PHP 模块
要继续,请安装 WordPress 所需的其他 PHP 模块,如图所示。
在基于 Debian 的系统上安装 PHP 模块:
$ sudo apt install php libapache2-mod-php php-pear php-cgi php-common php-mbstring php-zip php-net-socket php-gd php-mysql php-bcmath
在基于 RHEL 的系统上安装 PHP 模块:
# dnf install php-gd php-soap php-intl php-mysqlnd php-pdo php-bcmath php-curl php-zip php-xmlrpc wget
第 2 步:为 WordPress 创建数据库
WordPress 是用 PHP 编写的,是一个数据驱动的免费开源内容管理系统。数据库是 WordPress 的重要组成部分。
该数据库用于存储所有博客文章、页面、类别、评论、主题、插件以及 WordPress 配置文件。
要为 WordPress 创建数据库,请登录 MariaDB 数据库服务器:
$ sudo mysql -u root -p
接下来,创建一个数据库,如图
CREATE DATABASE wordpress_db;
接下来,创建一个数据库用户并将所有权限分配给该用户对数据库的访问权限。
GRANT ALL PRIVILEGES ON wordpress_db.* to ';
然后最后重新加载授权表以保存所做的更改并退出数据库。
FLUSH PRIVILEGES;
QUIT;
第 3 步:下载 WordPress
数据库就位后,继续使用 wget 命令下载最新的 WordPress tarball 文件。
$ wget https://wordpress.org/latest.tar.gz
下载后,使用 tar 命令解压缩压缩文件。
$ tar -xvzf latest.tar.gz
该命令将文件的内容提取到名为 wordpress 的文件夹中。将文件夹移动或复制到 Apache 网络服务器的Document Root。
$ sudo mv wordpress/ /var/www/html/
接下来,分配以下权限和所有权。
第 4 步:为 WordPress 创建 Apache 虚拟主机
术语虚拟主机是指在单个服务器上托管多个网站的做法。如果您打算在一台服务器上托管多个网站,则需要为每个网站创建一个虚拟主机。
在这种情况下,您需要为 WordPress 网站创建一个虚拟主机,如下所示。
$ sudo nano /etc/apache2/sites-available/wordpress.conf [On Debian]
# vi /etc/httpd/conf/httpd.conf [On RHEL]
粘贴以下代码行以定义虚拟主机。对于 ServerName 指令,提供服务器的 IP 地址或完全限定的域名,它应该指向专用的公共 IP 地址。
<VirtualHost *:80>
ServerAdmin _domain.com
DocumentRoot /var/www/html/wordpress
ServerName 192.168.0.100
<Directory /var/www/html/wordpress>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/your-domain.com_error.log
CustomLog ${APACHE_LOG_DIR}/your-domain.com_access.log combined
</VirtualHost>
保存更改并退出文件。
要连接到数据库,需要进行一些额外的修改。因此,导航到 wordpress 文件夹。
$ cd /var/www/html/wordpress/
接下来,使用 wp-config-sample.php 文件的内容更新 wp-config.php 文件。
$ cp wp-config-sample.php wp-config.php
$ sudo nano wp-config.php
接下来,使用数据库详细信息更新数据库名称、数据库用户名和密码指令。
接下来,在基于 Debian 的系统上启用新的 WordPress 站点,如下所示。
$ sudo ln -s /etc/apache2/sites-available/wordpress.conf /etc/apache2/sites-enabled/wordpress.conf
$ sudo a2ensite wordpress
$ sudo a2enmod rewrite
$ sudo a2dissite 000-default
要使更改生效,请重新启动 Apache。
$ sudo systemctl restart apache2 [On Debian]
# systemctl restart httpd [On RHEL]
第 4 步:在浏览器上完成 WordPress 设置
要完成设置,请浏览您的 Web 服务器的 IP 地址,如下所示:
http://server-ip
您应该会看到如图所示的 WordPress 欢迎页面。选择您的首选语言,然后点击“继续”。

接下来,填写站点详细信息。

然后单击“安装 WordPress”以完成 WordPress 设置。

如果一切顺利,您将收到安装成功的确认信息。要登录,请单击“登录”按钮。

如您所见,这会将您带到 WordPress 仪表板。此时,您可以尝试各种主题来增强示例网站的外观。

第 5 步:使用端口转发访问 WordPress
由于您是从家里的 Linux 系统或局域网 (LAN) 自行托管 Web 服务器,下一步是让外部用户或 LAN(局域网)以外的用户可以访问它。这就是端口转发的用武之地。
端口转发,也称为端口映射,是一种允许外部设备通过互联网访问专用网络内的服务器或资源的技术。整个想法是从外部访问专用网络,没有它就不可能,因为外部设备无法与内部 IP 地址通信。
在您的设置中,您需要转发 Web 服务器正在侦听的端口(在大多数情况下,这是用于 HTTP 流量的端口 80 或用于 HTTPS 的 443 端口)以及 Web 服务器的静态私有 IP 地址。
因此,登录到您的路由器并转到端口 转发部分。在我们的示例中,我们使用 DLink 路由器将 Web 服务器的端口(80 和 443)和私有 IP (192.168.0.100) 端口转发到 ISP 分配的专用 IP 公共 IP。
在您的情况下,指定 Web 服务器的端口和专用 IP 并保存更改。

要保存更改,您可能需要重新启动路由器。所以,继续做吧。
正确执行端口转发后,您现在可以通过公共 IP 地址访问网络外部的 Web 服务器。
结论
在本指南中,我们演示了如何在 Linux 机器上使用 Apache 自托管您的网络服务器。欢迎您对本指南提出反馈意见。