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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 实战|如何在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)
AI 代码解读

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

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

dnf search httpd
AI 代码解读

从上面的输出中,您可以看到 Apache httpd 包可供下载。如果您的系统上未安装 Apache,请使用“apt”或“dnf”包管理器来安装 Apache,如图所示。

在基于 Debian 的系统上:

$ sudo apt install apache2 -y      
$ sudo systemctl start apache2     
$ sudo systemctl enable apache2     
$ sudo systemctl status apache2
AI 代码解读

在基于 Red Hat 的系统上:

# dnf install httpd -y      
# systemctl start httpd     
# systemctl enable httpd     
# systemctl status httpd
AI 代码解读

什么是 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
AI 代码解读

以下输出显示 MariaDB 已安装并按预期运行。

要在基于 RHEL 的系统上安装 MariaDB:

# dnf install mariadb-server -y     
# systemctl start mariadb     
# systemctl enable mariadb     
# systemctl status mariadb
AI 代码解读

什么是 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
AI 代码解读

要在基于 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]
AI 代码解读

接下来,启用 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]
AI 代码解读

在系统上启用 EPEL 和 Remi 存储库后,您可以如图所示安装 PHP。

# dnf module list php
# dnf module enable php:remi-8.0 -y 
# dnf install php php-cli php-common
AI 代码解读

安装所有组件后,您现在可以使用 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
AI 代码解读

要在基于 RHEL 的系统上安装 PHP 模块:

# dnf install php-gd php-soap php-intl php-mysqlnd php-pdo php-bcmath php-curl php-zip php-xmlrpc wget
AI 代码解读

2. 为 WordPress 创建数据库

WordPress 用 PHP 编写,是一个数据驱动的、免费的开源内容管理系统。数据库是 WordPress 的重要组成部分。

该数据库用于存储所有博客文章、页面、类别、评论、主题、插件以及 WordPress 配置文件。

要为 WordPress 创建数据库,请登录 MariaDB 数据库服务器:

$ sudo mysql -u root -p
AI 代码解读

接下来,创建数据库,如图所示

CREATE DATABASE wordpress_db;
AI 代码解读

接下来,创建一个数据库用户并将数据库上的所有权限分配给该用户。

GRANT ALL PRIVILEGES ON wordpress_db.* to wordpress_user@localhost identified by 'P@ssword321';
AI 代码解读

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

FLUSH PRIVILEGES;
QUIT;
AI 代码解读

3. 下载WordPress

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

$ wget https://wordpress.org/latest.tar.gz
AI 代码解读

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

$ tar -xvzf latest.tar.gz
AI 代码解读

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

$ sudo mv wordpress/ /var/www/html/
AI 代码解读

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

$ sudo chmod 755 -R /var/www/html/wordpress/
$ sudo chown -R www-data:www-data /var/www/html/wordpress/
AI 代码解读

4. 为 WordPress 创建 Apache 虚拟主机

术语虚拟主机是指在单个服务器上托管多个网站的做法。如果您打算在一台服务器上托管多个网站,则需要为每个网站创建一个虚拟主机。

在这种情况下,您需要为 WordPress 网站创建虚拟主机,如下所示。

$ sudo nano /etc/apache2/sites-available/wordpress.conf  [On Debian]
# vi /etc/httpd/conf/httpd.conf [On RHEL]
AI 代码解读

粘贴以下代码行来定义虚拟主机。对于 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>
AI 代码解读

保存更改并退出文件。

要连接到数据库,需要进行一些额外的修改。因此,导航到 wordpress 文件夹。

$ cd /var/www/html/wordpress/
AI 代码解读

接下来,使用 wp-config-sample.php 文件的内容更新 wp-config.php 文件。

$ cp wp-config-sample.php wp-config.php
$ sudo nano wp-config.php
AI 代码解读

接下来,使用数据库详细信息更新数据库名称、数据库用户名和密码指令。

接下来,在基于 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
AI 代码解读

要使更改生效,请重新启动 Apache。

$ sudo systemctl restart apache2   [On Debian]
# systemctl restart httpd  [On RHEL]
AI 代码解读

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

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

http://server-ip
AI 代码解读

您应该会看到 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 服务器。欢迎您对本指南提供反馈。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
332
分享
相关文章
Linux系统资源管理:多角度查看内存使用情况。
要知道,透过内存管理的窗口,我们可以洞察到Linux系统运行的真实身姿,如同解剖学家透过微观镜,洞察生命的奥秘。记住,不要惧怕那些高深的命令和参数,他们只是你掌握系统"魔法棒"的钥匙,熟练掌握后,你就可以骄傲地说:Linux,我来了!
67 27
Linux 手动安装快速部署 LNMP 环境实战
本文详细记录了在阿里云ECS上手动搭建LNMP环境的过程,系统选用Ubuntu 24.04。主要内容包括:1) 使用`apt`安装Nginx和MySQL,并更新软件源;2) 编译安装PHP 8.4.5,配置PHP-FPM及环境路径;3) 配置MySQL root用户密码;4) 调整Nginx支持PHP解析并测试整体环境。通过此过程,重现手动配置服务器的细节,帮助熟悉各组件的安装与协同工作。
|
9天前
|
Linux系统ext4磁盘扩容实践指南
这个过程就像是给你的房子建一个新的储物间。你需要先找到空地(创建新的分区),然后建造储物间(格式化为ext4文件系统),最后将储物间添加到你的房子中(将新的分区添加到文件系统中)。完成这些步骤后,你就有了一个更大的储物空间。
61 10
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
99 19
|
2月前
|
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
105 24
Linux系统之whereis命令的基本使用
|
21天前
|
Linux系统中如何查看CPU信息
本文介绍了查看CPU核心信息的方法,包括使用`lscpu`命令和读取`/proc/cpuinfo`文件。`lscpu`能快速提供逻辑CPU数量、物理核心数、插槽数等基本信息;而`/proc/cpuinfo`则包含更详细的配置数据,如核心ID和处理器编号。此外,还介绍了如何通过`lscpu`和`dmidecode`命令获取CPU型号、制造商及序列号,并解释了CPU频率与缓存大小的相关信息。最后,详细解析了`lscpu`命令输出的各项参数含义,帮助用户更好地理解CPU的具体配置。
61 8
深度体验阿里云系统控制台:SysOM 让 Linux 服务器监控变得如此简单
作为一名经历过无数个凌晨三点被服务器报警电话惊醒的运维工程师,我对监控工具有着近乎苛刻的要求。记得去年那次大型活动,我们的主站流量暴增,服务器内存莫名其妙地飙升到90%以上,却找不到原因。如果当时有一款像阿里云 SysOM 这样直观的监控工具,也许我就不用熬通宵排查问题了。今天,我想分享一下我使用 SysOM 的亲身体验,特别是它那令人印象深刻的内存诊断功能。
|
11天前
|
微服务2——MongoDB单机部署4——Linux系统中的安装启动和连接
本节主要介绍了在Linux系统中安装、启动和连接MongoDB的详细步骤。首先从官网下载MongoDB压缩包并解压至指定目录,接着创建数据和日志存储目录,并配置`mongod.conf`文件以设定日志路径、数据存储路径及绑定IP等参数。之后通过配置文件启动MongoDB服务,并使用`mongo`命令或Compass工具进行连接测试。此外,还提供了防火墙配置建议以及服务停止的两种方法:快速关闭(直接杀死进程)和标准关闭(通过客户端命令安全关闭)。最后补充了数据损坏时的修复操作,确保数据库的稳定运行。
41 0
Linux系统查看操作系统版本信息、CPU信息、模块信息
在Linux系统中,常用命令可帮助用户查看操作系统版本、CPU信息和模块信息
209 23
nginx修改网站默认根目录及发布(linux、centos、ubuntu)openEuler软件源repo站点
通过合理配置 Nginx,我们可以高效地管理和发布软件源,为用户提供稳定可靠的服务。
287 13

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等