动动发财的小手,点个赞吧!
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 服务器。欢迎您对本指南提供反馈。
本文由 mdnice 多平台公布