实战|如何在Linux 系统上免费托管网站

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 实战|如何在Linux 系统上免费托管网站

动动发财的小手,点个赞吧!

Web 服务器可用于指代硬件和软件,或者两者一起工作。出于本指南的目的,我们将重点关注软件方面,并了解如何在 Linux 机器上托管网站。

Web 服务器是一种通过 HTTP/HTTPS 协议接收并响应客户端请求的软件程序。其主要目的是显示网站内容,这些内容通常采用文本、图像和视频的形式。

Web 服务器可以提供静态或动态内容。静态内容,顾名思义,是指几乎不会改变并且必然保持不变的内容。服务器按原样将内容发送回用户的浏览器。

动态内容是经常变化或不断更新的内容。为了提供动态内容,Web 服务器还必须与数据库服务器和服务器端脚本语言一起工作。

本指南将演示如何设置 Apache Web 服务器以在 Linux 系统上免费托管网站。

依赖

要按照本指南进行操作,请确保您具备以下条件。

  • 可以从您的 ISP 获取专用公共 IP 地址。
  • Linux 盒子,可以是您首选操作系统变体的 Linux 服务器安装。在本指南中,我们将使用 Debian 11。

您还需要安装 LAMP 服务器,它是 Linux、Apache 和 MySQL(也可以是 MariaDB)的缩写。

如何在 Linux 服务器上托管网站

在本节中,我们将继续讨论 Web 服务器的主要组件。

什么是 Apache?

Apache 是一种流行的免费开源跨平台 Web 服务器,在 Apache License 2.0 下发布。它是使用最广泛的 Web 服务器之一,占据近 32.2% 的 Web 服务器市场份额。

要检查可用的 Apache 最新版本以及您的服务器上是否安装了该版本,请运行以下命令:

apt-cache policy apache2 (On Debian-based OS)

从输出中,您可以看到参数 Installed: (none) 表示尚未安装。您还可以获得有关 Debian / Ubuntu 存储库提供的最新版本的信息,在本例中为 2.4.52。

在现代 Red Hat 发行版上,您可以使用以下 dnf 命令检查 Apache 的可用性,如下所示。

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?

MariaDB 是 MySQL 的一个分支,是最流行的开源关系数据库管理系统之一。如今,它比 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 超文本预处理器的递归缩写,它是一种流行的通用脚本语言,主要用于 Web 开发。

要在基于 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

要在基于 RHEL 的系统上安装 PHP,您需要首先启用 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 等网页设计语言。

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 wordpress_user@localhost identified by 'P@ssword321';

然后最后重新加载授权表以保存所做的更改并退出数据库。

FLUSH PRIVILEGES;
QUIT;

3. 下载WordPress

数据库就位后,继续使用 wget 命令下载最新的 WordPress tarball 文件。

$ wget https://wordpress.org/latest.tar.gz

下载后,使用 tar 命令解压缩压缩文件。

$ tar -xvzf latest.tar.gz

该命令将文件的内容提取到名为 wordpress 的文件夹中。将文件夹移动或复制到 Apache Web 服务器的文档根目录中。

$ sudo mv wordpress/ /var/www/html/

接下来,分配以下权限和所有权。

$ sudo chmod 755 -R /var/www/html/wordpress/
$ sudo chown -R www-data:www-data /var/www/html/wordpress/

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 admin@your_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]

5. 在浏览器上完成 WordPress 设置

要完成设置,请浏览 Web 服务器的 IP 地址,如下所示:

http://server-ip

您应该会看到 WordPress 欢迎页面,如图所示。选择您的首选语言,然后单击“继续”。

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

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

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

如您所见,这将引导您进入 WordPress 仪表板。此时,您可以尝试使用各种主题来增强示例网站的外观。

6. 使用端口转发访问 WordPress

由于您是通过家里的 Linux 系统或局域网 (LAN) 自托管 Web 服务器,因此下一步是让外部用户或 LAN(局域网)之外的用户可以访问它。这就是端口转发的用武之地。

端口转发,也称为端口映射,是一种允许外部设备通过 Internet 访问专用网络内的服务器或资源的技术。整个想法是从外部访问专用网络,否则这是不可能的,因为外部设备无法与内部 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 自行托管 Web 服务器。欢迎您对本指南提供反馈。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
23天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
64 3
|
23天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
59 2
|
1月前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
44 5
linux系统服务二!
|
17天前
|
Ubuntu Linux 网络安全
linux系统ubuntu中在命令行中打开图形界面的文件夹
在Ubuntu系统中,通过命令行打开图形界面的文件夹是一个高效且实用的操作。无论是使用Nautilus、Dolphin还是Thunar,都可以根据具体桌面环境选择合适的文件管理器。通过上述命令和方法,可以简化日常工作,提高效率。同时,解决权限问题和图形界面问题也能确保操作的顺利进行。掌握这些技巧,可以使Linux操作更加便捷和灵活。
15 3
|
23天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
64 3
|
26天前
|
安全 Linux 数据安全/隐私保护
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。本文介绍了使用 `ls -l` 和 `stat` 命令查找文件所有者的基本方法,以及通过文件路径、通配符和结合其他命令的高级技巧。还提供了实际案例分析和注意事项,帮助读者更好地掌握这一操作。
43 6
|
26天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
64 6
|
27天前
|
机器学习/深度学习 自然语言处理 Linux
Linux 中的机器学习:Whisper——自动语音识别系统
本文介绍了先进的自动语音识别系统 Whisper 在 Linux 环境中的应用。Whisper 基于深度学习和神经网络技术,支持多语言识别,具有高准确性和实时处理能力。文章详细讲解了在 Linux 中安装、配置和使用 Whisper 的步骤,以及其在语音助手、语音识别软件等领域的应用场景。
54 5
|
27天前
|
缓存 运维 监控
【运维必备知识】Linux系统平均负载与top、uptime命令详解
系统平均负载是衡量Linux服务器性能的关键指标之一。通过使用 `top`和 `uptime`命令,可以实时监控系统的负载情况,帮助运维人员及时发现并解决潜在问题。理解这些工具的输出和意义是确保系统稳定运行的基础。希望本文对Linux系统平均负载及相关命令的详细解析能帮助您更好地进行系统运维和性能优化。
48 3
|
27天前
|
监控 网络协议 算法
Linux内核优化:提升系统性能与稳定性的策略####
本文深入探讨了Linux操作系统内核的优化策略,旨在通过一系列技术手段和最佳实践,显著提升系统的性能、响应速度及稳定性。文章首先概述了Linux内核的核心组件及其在系统中的作用,随后详细阐述了内存管理、进程调度、文件系统优化、网络栈调整及并发控制等关键领域的优化方法。通过实际案例分析,展示了这些优化措施如何有效减少延迟、提高吞吐量,并增强系统的整体健壮性。最终,文章强调了持续监控、定期更新及合理配置对于维持Linux系统长期高效运行的重要性。 ####