Web服务器一词可用于指代硬件、软件或二者的组合。对于本指南,我们将专注于软件方面,看看如何在您的Linux系统上托管网站。
A web server is a software program that receives and responds to client requests via the HTTP/HTTPS protocols. Its primary purpose is to display website content which, oftentimes, is in the form of text, images, and video.
A web server can either serve static or dynamic content. Static content, as the name infers, refers to content that hardly changes and is bound to remain the same. The server sends back content to the user’s browser as is.
动态内容是经常变化或不断更新的内容。要提供动态内容,Web服务器还必须与数据库服务器和服务器端脚本语言一起工作。
本指南将演示如何设置一个Apache Web服务器,在您的Linux系统上免费托管网站。
目录
要求
为了跟随本指南,请确保您已准备好以下内容。
- A dedicated Public IP address can be obtained from your ISP.
- A Linux box, which can be a Linux server installation of your preferred OS variant. For this guide, we will use 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 10服务器上安装LAMP
- 如何在Ubuntu 20.04上安装LAMP堆栈
- 如何在Rocky Linux 9/8上安装LAMP
- 如何在AlmaLinux 9/8上安装LAMP堆栈
- 如何在RHEL 9/8上安装LAMP
- 如何在Linux服务器上托管网站
在本节中,我们将继续讨论Web服务器的主要组件。
什么是Apache?
Apache是一款流行的免费开源跨平台Web服务器,采用Apache许可证2.0发布。它是使用最广泛的Web服务器之一,占据了近32.2%的Web服务器市场份额。
要检查可用的最新版本和服务器上是否已安装Apache,请运行以下命令:
# apt-cache policy apache2 (On Debian-based OS)
从输出中,您可以看到参数已安装:(无),这意味着尚未安装。您还可以获得有关由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?
A fork of MySQL, MariaDB is one of the most popular and open-source relational database management systems. Nowadays, it’s preferred to MySQL due to its faster speeds in replication and performing queries as well as security and a vast array of storage engines.
要在Debian-based系统上安装MariaDB:
$ sudo apt install mariadb-server mariadb-client -y $ sudo systemctl start mariadb $ sudo systemctl enable mariadb $ sudo systemctl status mariadb
以下输出显示MariaDB已安装并按预期运行。

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

什么是PHP?
PHP是一个递归缩写,代表PHP Hypertext Preprocessor,它是一种流行的通用脚本语言,主要用于Web开发。
要在Debian-based系统上安装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-based系统上安装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-based系统上提供最新版本的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构建您的网站,它是一款软件,使没有必要了解Web设计语言(如HTML、CSS、PHP和Javascript)的用户能够轻松开发和管理网站。
在Linux上使用WordPress创建一个简单的网站
为了演示,我们将在WordPress上安装Debian 11和RHEL 9系统,这将提供一个可以进一步根据您的喜好进行定制的示例网站。
本节假设您已经安装了LAMP堆栈。
步骤1:安装额外的PHP模块
要继续,请安装WordPress所需的额外PHP模块,如下所示。
要安装PHP模块,在基于Debian的系统上:
$ 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
要安装PHP模块,在基于RHEL的系统上:
# dnf install php-gd php-soap php-intl php-mysqlnd php-pdo php-bcmath php-curl php-zip php-xmlrpc wget
步骤2:为WordPress创建数据库
用PHP编写的WordPress是一个数据驱动的、免费的、开源的内容管理系统。数据库是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;
第三步:下载WordPress
在数据库设置好之后,继续下载最新的WordPress tarball文件,使用wget命令。
$ wget https://wordpress.org/latest.tar.gz
下载完成后,使用tar命令解压缩文件。
$ tar -xvzf latest.tar.gz
该命令将文件内容提取到一个名为wordpress的文件夹中。将该文件夹移动或复制到Apache网络服务器的文档根目录。
$ 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/
第四步:为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-based系统上按以下方式启用新的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自行托管您的 Web 服务器。欢迎您对本指南提出反馈。