網頁伺服器這個術語可以用來指稱硬體、軟體,或二者合作。為了本指南的目的,我們將專注於軟體方面,看看如何在您的 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.
動態內容是指經常變化或不斷更新的內容。為了提供動態內容,網頁伺服器還必須與資料庫伺服器和伺服器端腳本語言一起工作。
本指南將演示如何在您的 Linux 系統上設置一個 Apache 網頁伺服器免費托管網站。
目錄
要求
要遵循本指南,請確保您已準備好以下內容。
- 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 License 2.0。它是網頁伺服器市場份額近 32.2% 的最廣泛使用的 Web 伺服器之一。
要檢查可用的 Apache 最新版本以及是否已安裝在您的伺服器上,執行以下命令:
# apt-cache policy apache2 (On Debian-based OS)
從輸出中,您可以看到參數 Installed: (none) 表示尚未安裝。您還可以獲得關於由 Debian / Ubuntu 存儲庫提供的最新版本的資訊,本例中為 2.4.52。

在現代的 紅帽發行版 上,您可以使用以下 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系統上安裝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,它是一種流行的通用腳本語言,主要用於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等Web設計語言的知識。
在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;
步驟3:下載WordPress
在資料庫就位後,繼續並使用wget命令下載最新的WordPress tarball文件。
$ 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/
步驟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
接下來,使用資料庫的詳細資料更新資料庫名稱、db使用者名稱和密碼指令。
接下來,在基於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設定
要完成設定,請瀏覽您的網頁伺服器的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地址在您的网络外访问您的网络服务器。
结论
在本指南中,我们已经展示了如何在Linux框上使用Apache来自主托管您的网络服务器。欢迎您对本指南提供反馈。