如何在 Debian 12 或 11 上使用 Nginx 安裝 WordPress

WordPress 是一個功能強大且廣泛使用的內容管理系統 (CMS),可讓使用者輕鬆建立和管理網站。當與 LEMP 堆疊(Linux、NGINX、MariaDB、PHP)結合使用時,WordPress 成為一個強大且高效能的 Web 開發平台。 LEMP 堆疊以其效率、速度和可擴展性而聞名,使其成為託管 WordPress 網站的理想選擇。 WordPress 的主要功能包括直覺的介面、廣泛的外掛生態系統、可自訂的主題和強大的社群支援。

若要使用 NGINX、MariaDB 和 PHP 在 Debian 12 或 11 上安裝 WordPress,請依照下列步驟操作。本指南將介紹 LEMP 堆疊的設定、WordPress 的安裝以及使您的網站順利啟動和運行的基本配置。

為 WordPress 安裝 LEMP

在安裝 LEMP Stack 之前更新 Debian

在安裝 WordPress 之前,請更新您的 Debian 系統以防止潛在的衝突。打開終端機並運作:

sudo apt update && sudo apt upgrade

此命令會更新可用的軟體包並升級您的系統。

安裝必要的軟體包

即使您有一些 WordPress 必需的軟體包,也要仔細檢查以確保沒有遺漏任何軟體包。運行以下命令:

sudo apt install curl git wget unzip zip

此命令安裝或確認 WordPress 所需的軟體包。

安裝 Nginx – LEMP 安裝的第 1 部分

要設定 LEMP 堆疊,您需要安裝 Nginx。運行這個命令:

sudo apt install nginx

安裝完成後,檢查 Nginx 是否正在執行:

systemctl status nginx

如果 Nginx 服務未處於活動狀態,您可以使用下列命令將其設定為活動狀態:

sudo systemctl enable nginx --now

此命令可確保 Nginx 在每次伺服器重新啟動時啟動,這對於功能性 LEMP 堆疊至關重要。

注意:最好使用最新的 Nginx 主線版本來優化 WordPress 效能。您可以按照以下指南進行操作 在 Debian Linux 上安裝 Nginx Mainline 安裝最新版本。此版本提供了額外的功能和改進,以提高您網站的速度和整體效能。

為 Nginx 設定 UFW 防火牆

使用 Nginx 伺服器設定 UFW 防火牆對於安全性和允許外部存取標準 Web 連接埠至關重要。好消息是 Nginx 提供了簡化 UFW 設定過程的設定檔。

安裝UFW:

如果您尚未在 Debian 系統上安裝 UFW,請執行以下命令:

sudo apt install ufw

啟動 UFW:

安裝完成後,就可以啟動 UFW。預設情況下,UFW 會阻止所有傳入連接,同時允許所有傳出連線。使用以下命令啟動防火牆:

sudo ufw enable

查看 Nginx 設定檔:

若要檢查可用於 UFW 的 Nginx 設定文件,請執行以下命令:

sudo ufw app list

從輸出中,您會注意到:

  • Nginx 在連接埠 80 (HTTP) 上執行
  • Nginx Secure 在連接埠 443 (HTTPS) 上運行
  • Nginx Full 包含這兩個端口

為 Nginx 設定 UFW:

如果您想同時啟用 HTTP 和 HTTPS 訪問,請選擇 Nginx Full 設定檔:

sudo ufw allow 'Nginx Full'

但是,您的要求可能有所不同:

對於僅 HTTPS 訪問,請選擇 Nginx 安全性設定檔:

sudo ufw allow 'Nginx Secure'

僅 HTTP 訪問,使用 Nginx HTTP 設定檔:

sudo ufw allow 'Nginx HTTP'

您可以建立其他 UFW 規則來保護您的伺服器和使用 WordPress 的 LEMP 設置,如果伺服器暴露於公眾,您應該花時間鎖定它。

安裝 MariaDB – LEMP 安裝的第 2 部分

MariaDB 以其相對於 MySQL 的增強效能而聞名,是 LEMP 堆疊中的資料庫元件。如果您想從 MariaDB.org 的官方儲存庫安裝特定版本的 MariaDB,請參閱以下指南 在 Debian 上安裝 MariaDB。這可以進一步優化您的 WordPress 效能。

要安裝 MariaDB,請運行:

sudo apt install mariadb-server mariadb-client

安裝完成後,檢查MariaDB的狀態:

systemctl status mariadb

此命令顯示 MariaDB 的服務狀態和任何潛在錯誤。

如果 MariaDB 未運行,請使用以下命令啟動它:

sudo systemctl enable mariadb --now

這可確保 MariaDB 在每次系統重新啟動時啟動,這對於穩定的 LEMP 堆疊和 WordPress 設定至關重要。

使用安全腳本保護 MariaDB

為了保護數據,您必須保護 MariaDB 安裝的安全性。新安裝的 MariaDB 可能具有寬鬆的安全預設設置,使其面臨威脅。但是,mysql_secure_installation 腳本可以增強資料庫的防禦能力。

運行安全腳本:

sudo mysql_secure_installation

該腳本將指導您完成多種安全配置:

  • 設定 root 密碼或選擇 unix_socket 以防止未經授權的存取。
  • 刪除匿名使用者帳戶以限制授權使用者存取資料庫。
  • 限制 root 使用者帳號的遠端登入。
  • 刪除測試資料庫以避免未經授權的存取和潛在的資料外洩。

認真回答每一個提示;這些設定深刻影響資料庫的安全。完成這些步驟後,您的 MariaDB 設定應該是安全且可操作的。

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] Y <---- Type Y then press the ENTER KEY.
Enabled successfully!
Reloading privilege tables..
 ... Success!


You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y <---- Type Y then press the ENTER KEY.
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y <---- Type Y then press the ENTER KEY.
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

這些安全措施可確保您的 MariaDB 安裝安全並免受威脅。

安裝 PHP、PHP-FPM – LEMP 安裝的第 3 部分

對於完整的 LEMP 堆疊,您需要安裝 PHP。 PHP 可作為 Nginx 和 MariaDB 之間的橋樑,並由 PHP-FPM 和 WordPress 的其他基本模組提供支援。

注意:如果您想要適合您需求的特定 PHP 版本,請諮詢我們的 在 Debian 上安裝 PHP 的指南。 Linux 的新用戶現在應該在安裝自訂版本之前使用預設版本。

執行下列命令安裝 PHP、PHP-FPM 和所需的模組:

sudo apt install php php-fpm php-mbstring php-bcmath php-xml php-mysql php-common php-gd php-cli php-curl php-zip php-imagick php-ldap php-intl

安裝後,檢查 PHP 服務的狀態,這與您對 MariaDB 和 Nginx 所做的類似。對於本範例,我們使用 PHP 7.4:

systemctl status php7.4-fpm

輸出應如下所示:

注意:PHP-FPM 版本因每個穩定的 Debian 版本而異。如果您不確定自己的版本,請執行 php -v 找出答案。

使用 LEMP 的 WordPress 預先安裝配置

建立 WordPress 目錄結構

要在 Debian LEMP 堆疊上安裝 WordPress,您可以 下載 從 WordPress.org 官方下載頁面下載最新版本或使用以下命令直接下載:

wget https://wordpress.org/latest.zip

下載後,使用以下指令將檔案解壓縮到 /var/www/html 目錄:

sudo unzip latest.zip -d /var/www/html/

接下來,透過為 Web 伺服器使用者設定目錄擁有者權限來確保 WordPress 具有正確的寫入權限。

這可以透過以下命令來完成:

sudo chown -R www-data:www-data /var/www/html/wordpress/

設定目錄擁有者權限後,必須使用以下指令為 WordPress 資料夾和檔案設定正確的權限:

對於資料夾:

sudo find /var/www/html/wordpress -type d -exec chmod 755 {} \;

對於文件:

sudo find /var/www/html/wordpress -type f -exec chmod 644 {} \;

設定正確的資料夾和檔案權限可確保您的 WordPress 安裝安全且正常運作。

為 WordPress 建立資料庫

要在 Debian LEMP 堆疊上執行 WordPress,您必須使用 MariaDB 建立資料庫。使用以下命令以 root 身分存取 MariaDB shell:

sudo mariadb -u root

進入 MariaDB shell 後,使用以下命令建立新資料庫:

CREATE DATABASE WORDPRESSDB;

接下來,使用以下指令為 WordPress 建立一個新使用者帳戶:

CREATE USER 'WPUSER'@localhost IDENTIFIED BY 'PASSWORD';

注意:將「WPUSER」和「PASSWORD」替換為您所需的使用者名稱和密碼。

最後,僅使用以下命令為新建立的使用者帳戶指派對 WordPress 網站資料庫的存取權限:

GRANT ALL PRIVILEGES ON WORDPRESSDB.* TO WPUSER@localhost IDENTIFIED BY 'PASSWORD';

建立使用者帳戶後,使用以下命令刷新權限以確保新變更生效:

FLUSH PRIVILEGES;

最後,輸入以下命令退出 MariaDB shell:

EXIT;

設定 WordPress 設定檔

設定 WordPress 設定檔是安裝過程中的重要步驟。這涉及重命名範例 wp-config.php 檔案並輸入必要的配置詳細資訊。

使用以下命令導航至 WordPress 目錄:

cd /var/www/html/wordpress/

使用以下命令將 wp-config-sample.php 複製到 wp-config.php:

sudo cp wp-config-sample.php wp-config.php

使用文字編輯器,開啟新複製的 wp-config.php 檔案:

sudo nano wp-config.php

接下來,輸入資料庫名稱、帶有密碼的使用者帳戶以及主機 IP 位址(如有必要)。

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */ 

define( 'DB_NAME', 'WORDPRESSDB' );                 <--------------- change this

/* MySQL database username */ 

define( 'DB_USER', 'WPUSER );                               <--------------- change this

/* MySQL database password */

define( 'DB_PASSWORD', 'PASSWORD' );             <--------------- change this

/* MySQL hostname, change the IP here if external DB set up */ 

define( 'DB_HOST', 'localhost' );

/* Database Charset to use in creating database tables. */

define( 'DB_CHARSET', 'utf8' );

/* The Database Collate type. Don't change this if in doubt. */

define( 'DB_COLLATE', '' );

除了這些設定之外,您還可以將以下內容新增至 wp-config.php 檔案中以改善 WordPress 管理:

/** ## Save files direct method ## */
define( 'FS_METHOD', 'direct' );

/** ## Increase memory limit, 256MB is recommended ## */
define('WP_MEMORY_LIMIT', '256M');

您的專用伺服器或 VPS 的記憶體限制可能會因係統容量而異。您可以小幅增加或減少 256 MB 記憶體限制,例如 128 MB、256 MB、512 MB 等。

注意:需要注意的是,建議僅對記憶體限制進行小幅調整,以獲得最佳效能和穩定性。

實施 WordPress 安全鹽鍵

增強 WordPress 安裝的安全性至關重要,實現這一目標的有效方法是設定 WordPress 安全鹽金鑰。這些金鑰可作為增強的安全防護罩,增強您的 WordPress 網站抵禦潛在威脅的能力,並支援用戶身份驗證和資料加密。

產生安全鹽金鑰

若要產生安全鹽金鑰,請導覽至 WordPress 金鑰 API: https://api.wordpress.org/secret-key/1.1/salt/。產生這些金鑰後,用您的唯一金鑰替換 wp-config.php 檔案中的佔位符行至關重要。此步驟加強了用戶身份驗證和資料加密。

注意:請勿使用此處或其他地方提供的範例行,因為它們僅用於說明目的。使用預設的鹽密鑰可能會使您的網站面臨漏洞。始終為每個 WordPress 設定產生不同的金鑰,以確保最佳的安全性。

整合安全鹽密鑰

若要將新產生的安全鹽金鑰嵌入到 wp-config.php 檔案中,請在文字編輯器中開啟該檔案:

sudo nano /var/www/html/wordpress/wp-config.php

現在,識別 wp-config.php 檔案中與範例鍵對應的行。找到後,將 wp-config.php 檔案中的每個範例金鑰替換為新產生的金鑰。進行必要的替換後,請確保已儲存並關閉文件。

如果您使用的是 nano 編輯器,請按“CTRL+X”然後按“Y”進行儲存。

WordPress LEMP 設定的 Nginx 伺服器區塊配置

正確設定 Nginx 伺服器區塊對於透過 Web UI 無縫安裝 WordPress 至關重要。取得「try_files $uri $uri/ /index.php?$args;」至關重要指令權。省略「?$args」可能會幹擾 WordPress 的 REST API。為避免安裝過程中出現潛在問題,請嚴格遵循這些說明。

為 Nginx 上的 WordPress 安裝建立一個新的伺服器設定檔。在以下命令中將“example.com”替換為您的實際網域:

sudo nano /etc/nginx/sites-available/example.com.conf

為了讓 Nginx 使用 PHP,您必須在伺服器區塊設定檔中包含「location ~ .php$」。以下是您可以用作參考的範例配置。

確保調整根路徑和網域名稱以適合您的設定:

server {
  listen 80;
  listen [::]:80;
  server_name www.example.com example.com;
  root /var/www/html/wordpress;
  index index.php index.html index.htm index.nginx-debian.html;

  location / {
    try_files $uri $uri/ /index.php?$args;
  }

  location ~* /wp-sitemap.*\.xml {
    try_files $uri $uri/ /index.php$is_args$args;
  }

  client_max_body_size 100M;

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 4 128k;
    fastcgi_intercept_errors on;
  }

  gzip on;
  gzip_comp_level 6;
  gzip_min_length 1000;
  gzip_proxied any;
  gzip_disable "msie6";
  gzip_types application/atom+xml application/geo+json application/javascript application/x-javascript application/json application/ld+json application/manifest+json application/rdf+xml application/rss+xml application/xhtml+xml application/xml font/eot font/otf font/ttf image/svg+xml text/css text/javascript text/plain text/xml;

  location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ {
    expires 90d;
    access_log off;
  }

  location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ {
    add_header Access-Control-Allow-Origin "*";
    expires 90d;
    access_log off;
  }

  location ~ /\.ht {
    access_log off;
    log_not_found off;
    deny all;
  }
}

請記住,如果您安裝了不同的 PHP 或 PHP-FPM 版本,或者您的 Debian 版本預設為另一個 PHP 版本,請相應調整 Nginx 設定檔。

例如,對於 PHP-FPM 8.2,更改行 fastcgi_pass unix:/run/php/php8.1-fpm.sock;到 fastcgi_pass unix:/run/php/php8.2-fpm.sock;。必須將配置中的版本與系統上的版本相符才能順利運作。

了解 WordPress Nginx 伺服器區塊

對於那些剛開始設定 Nginx 和 WordPress 的人來說,以下是伺服器區塊範例的詳細說明:

基本伺服器設定:

  • 這些設定定義了伺服器區塊的基本面,例如 IP 位址、Nginx 偵聽的連接埠以及伺服器名稱。
  • root 指令指向包含網站檔案的主目錄。
  • index 指令指示 Nginx 在為網站提供服務時識別索引檔案。

位置設定:

  • 這些設定包括指示 Nginx 如何處理不同 URL 請求的各種位置區塊。
  • 初始位置區塊利用 try_files 指令管理對網站根 URL 的請求。
  • 隨後的位置區塊專門處理針對 WordPress sitemap.xml 檔案的請求。

PHP 處理設定:

  • 這些設定決定了 Nginx 如何處理 PHP 檔案。
  • fastcgi_pass 指令指向 PHP-FPM 套接字檔案的位置。
  • fastcgi_param 指令將 SCRIPT_FILENAME 參數的值指派給請求的 PHP 檔案的位置。
  • include 指令引入 FastCGI 模組的附加設定檔。
  • fastcgi_buffer_size 和 fastcgi_buffers 等指令指定 Nginx 和 PHP-FPM 之間資料傳輸的緩衝區大小。
  • fastcgi_intercept_errors 指令使 Nginx 能夠捕獲和管理 PHP 錯誤。

Gzip 壓縮設定:

  • 這些設定配置 Gzip 壓縮,減少傳送到客戶端的檔案大小。
  • gzip 指令啟動 Gzip 壓縮。
  • gzip_comp_level 和 gzip_min_length 等指令分別決定壓縮等級和壓縮的最小檔案大小。
  • gzip_proxied 指令標識哪些請求類型進行壓縮。
  • gzip_types 指令列舉符合壓縮條件的 MIME 類型。

文件緩存設定:

  • 這些設定優化靜態檔案的緩存,提高網站速度。
  • 初始位置區塊確定資產和媒體檔案的過期持續時間。
  • 後續位置區塊設定字體和 SVG 檔案的過期時間。
  • access_log 和 log_not_found 等指令控制請求日誌記錄。
  • add_header 指令附加 Access-Control-Allow-Origin 標頭,允許從外部網域載入字型和 SVG。

.htaccess 檔案阻止:

  • 此設定限制對以 .ht 開頭的檔案(通常是敏感伺服器設定檔)的存取。

使用符號連結設定 Nginx 伺服器區塊

要完成 Nginx 伺服器區塊配置,您必須從「sites-available」目錄啟動設定檔。這是透過建立指向「sites-enabled」目錄的符號連結來實現的。

執行以下命令,確保將“example.com.conf”替換為設定檔的名稱:

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

此命令在目錄之間建立符號鏈接,授予 Nginx 對設定檔的存取權限。設定完成後,使用以下命令驗證配置:

sudo nginx -t

如果測試沒有回傳錯誤,請重新啟動 Nginx 以套用伺服器區塊變更:

sudo systemctl restart nginx

完成這些步驟後,您的 WordPress 網站現在應該可以透過 Nginx 存取。

配置 PHP.ini 以獲得最佳 WordPress 效能

調整 PHP 設定對於實現 WordPress 的最佳效能至關重要。要在 WordPress 中有效處理媒體文件,請考慮增加最大上傳大小、貼文大小和記憶體限制。您可能還需要調整最大執行時間和輸入變數以防止潛在問題。

若要存取 php.ini 文件,請使用終端機。請記住,該檔案的位置可能會根據您的 PHP 版本而有所不同:

sudo nano /etc/php/8.0/fpm/php.ini
sudo nano /etc/php/8.1/fpm/php.ini
sudo nano /etc/php/8.2/fpm/php.ini
sudo nano /etc/php/8.3/fpm/php.ini

要自訂 PHP 設置,請在 php.ini 檔案中找到並調整以下行:

##increase this to the maximum file size you want to upload, recommended 50 to 100MB## 
 upload_max_filesize = 100M

##increase this to the maximum post size you want to allow, recommended 50 to 100MB##
 post_max_size = 100M

##increase this to the maximum execution time, recommended 150 to 300 seconds##
 max_execution_time = 300

##increase this to the maximum GET/POST/COOKIE input variables, recommended 5000 to 10000##
max_input_vars = 5000

##increase this to the maximum memory limit, recommended 256MB or 512MB. Note that you should ensure your system has enough RAM before raising this.##
memory_limit = 256M

修改 PHP 設定後,重新啟動 PHP-FPM 伺服器至關重要。這可確保新配置處於活動狀態,使您的 WordPress 網站能夠以最佳狀態運作。

增加 Nginx 伺服器客戶端最大主體大小

為了適應 WordPress 網站上更大的檔案上傳,您需要調整 Nginx 伺服器區塊。這確保了 Nginx 可以處理更大的 HTTP 請求體,這在處理相當大的檔案上傳時至關重要。

修改 Nginx 伺服器區塊

開啟伺服器區塊設定檔並插入以下行:

##set to the maximum upload size you set in upload_max_filesize.##
client_max_body_size – <size>

確保 client_max_body_size 的值與您在 PHP 設定中配置的 upload_max_filesize 一致。

重新啟動 PHP-FPM

調整 PHP 設定以獲得最佳 WordPress 效能(包括上傳大小、貼文大小和記憶體限制)後,重新啟動 PHP-FPM 伺服器以使變更生效至關重要。重新啟動伺服器的確切命令取決於您的 PHP 版本。如果您不確定自己的 PHP 版本,請查閱系統文件。

對於不同的PHP版本,使用對應的指令重新啟動PHP-FPM:

sudo systemctl restart php8.0-fpm
sudo systemctl restart php8.1-fpm
sudo systemctl restart php8.2-fpm
sudo systemctl restart php8.3-fpm

安裝 WordPress 前端

完成後端設定和設定後,就可以在您的網域上啟動 WordPress 前端了。前往您的網域(前綴為「https://」或「http://」)開始安裝。或者,您可以直接訪問“https://www.yoursite.com/wp-admin/install.php”。

此 URL 將引導您進入前端安裝精靈。

第 1 步:選擇 WordPress 語言

選擇您想要的語言並點擊 “繼續。”

步驟2:為WordPress建立管理員用戶

接下來,您將進入一個頁面,提示您輸入網站標題、使用者名稱、密碼以及 WordPress 網站主管理員的電子郵件地址。

出於安全原因,請選擇一個可靠的密碼並提供有效的電子郵件地址。請記住,您可以稍後在 WordPress 設定面板中修改其他設定。

對於那些開發網站並希望使其免受 Google 或 Bing 等搜尋引擎影響的用戶,可以選擇「強烈阻止搜尋引擎編制索引」。

步驟 3: 繼續並點擊安裝 WordPress 按鈕

填寫您的詳細資料和偏好設定後,點擊 “安裝WordPress” 按鈕。成功安裝會將您重新導向到登入頁面。

第 4 步:繼續登入 WordPress 管理頁面

輸入您的登入詳細信息,然後按“登入”。此操作將引導您進入 WordPress 儀表板,您可以在其中製作或匯入您的網站。

步驟 5:透過 WordPress 管理員檢視和調整 WordPress 網站

WordPress 儀表板是您的指揮中心。在這裡,您可以起草新貼文、設計頁面、處理主題和插件,以及客製化網站的外觀、內容和操作。

憑藉其用戶友好的介面,儀表板使您能夠快速建立您的網站,使您能夠以最少的努力設計一個迷人且專業的網站。

使用 Nginx 的 WordPress 的其他技巧

使用 Let's Encrypt SSL 憑證保護 WordPress 和 Nginx

增強 Web 伺服器的安全性至關重要,實現這一目標的有效方法是使用 SSL 憑證在 HTTPS 上執行 Nginx。 Let's Encrypt 提供免費、自動化和開放的憑證授權機構,讓您更輕鬆地為 Nginx 伺服器設定 SSL 憑證。

安裝Certbot

首先使用以下指令安裝 certbot 軟體包:

sudo apt install python3-certbot-nginx

產生 SSL 憑證

安裝 certbot 軟體包後,使用以下命令產生 SSL 憑證:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

在此過程中,Certbot 將提示您輸入電子郵件和網域名稱。您也可以選擇接收來自 EFF 的電子郵件。根據您的喜好決定是否選擇加入。

安裝憑證後,您網站的 URL 將從 HTTP 切換為 HTTPS。造訪舊 HTTP URL 的訪客將自動重新導向到新的 HTTPS URL。此配置可確保 HTTPS 301 重新導向、嚴格傳輸安全標頭和 OCSP 裝訂以實現頂級安全。

設定自動證書續訂

若要保持 SSL 憑證有效,請設定一個 cron 作業來自動續訂。 Certbot 為此提供了一個腳本。在完成設定之前,先執行一次試運行測試:

sudo certbot renew --dry-run

存取crontab配置,輸入:

sudo crontab -e

若要自動續訂您的 SSL 證書,請使用以下命令的 cron 作業來排程它:

00 00 */1 * * /usr/sbin/certbot-auto renew

這將嘗試每天午夜更新證書。

解決 PHP 會話錯誤

遇到會話保存問題,特別是在使用某些插件時?問題的根源可能是 /var/lib/php/sessions/ 目錄中的使用者權限不正確。但別擔心;您可以使用簡單的命令來解決這個問題。

調整目錄權限

執行以下命令來設定正確的權限:

sudo chown -R www-data:www-data /var/lib/php/sessions/

此命令將 www-data 使用者和群組設定為會話目錄的擁有者。因此,WordPress 可以毫無障礙地寫入會話資料。此調整對於 WordPress 網站的無縫操作至關重要,尤其是當您使用處理自動化任務(例如發佈到社交媒體)的外掛程式時。

解決 PHP 會話錯誤是提高網站效能和改善使用者體驗的關鍵。

解決 WordPress 中的 HTTPS 重定向循環

如果您的 WordPress 網站在啟動 HTTPS 後發現自己陷入重定向循環,可能是因為 WordPress 不斷嘗試重新導向到安全 HTTPS 版本,但循環從未完成。為了解決這個問題,您可以使用特定的程式碼行修改 wp-config.php 檔案。

修改 wp-config.php 文件

將以下行插入到您的 wp-config.php 中:

define('FORCE_SSL_ADMIN', true);

if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) {
    $_SERVER['HTTPS'] = 'on';
}

以下是每行的詳細說明:

  • 第一行將 FORCE_SSL_ADMIN 常數設為 true,確保所有管理頁面都使用 HTTPS。
  • 後續程式碼檢查 HTTP_X_FORWARDED_PROTO 標頭是否包含術語「https」。如果找到匹配項,則會將 HTTPS 伺服器變數指定為「on」。此操作通知 WordPress 連線是安全的。

將這些行整合到您的 wp-config.php 檔案中,您應該能夠擺脫 HTTPS 重定向循環,並確保您的 WordPress 網站透過新的安全連線順利運行。

修復域名重定向循環

WordPress 網站中的重新導向循環有時可能源自於 wp-config.php 檔案中指定的網域名稱與您網站的網域不符。要解決此問題,您需要驗證並可能調整配置中的網域名稱。

檢查 wp-config.php 文件

檢查 wp-config.php 中的以下行:

define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');

如果網域名稱與您網站的網域不一致,請進行相應更正。

結論

使用 LEMP 堆疊在 Debian 系統上成功安裝 WordPress 後,您可以利用其強大的功能和強大的效能。定期更新您的 WordPress 安裝和 LEMP 堆疊元件,以確保最佳的安全性和功能。享受 WordPress 和 LEMP 堆疊為創建和管理網站提供的靈活性和廣泛功能。

Joshua James
跟我來
Joshua James 的最新帖子 (看全部)

發佈留言