LEMP WordPress

  • Post author:
  • 帖子最後修改:2021 年 9 月 23 日
  • Post comments:0評論

Table of Contents

在 Ubuntu 20.04 上使用 Nginx 安裝 WordPress

安裝 LEMP 堆棧

在繼續之前,請在 Ubuntu 20.04 上為 WordPress 安裝設置 LEMP 堆棧。

安裝 PHP 擴展

為 WordPress 創建 Nginx 服務器塊

以下是為了能夠滿足段落所需的長度而定義的無意義內文,請自行參酌編排。

讓我們為 WordPress 安裝創建一個 Nginx 的服務器塊。此服務器塊需要域名、端口號、文檔根目錄、日誌位置、快速 CGI 等。

假設以下,

域名: www.leojsp.mywire.org

檔案根目錄: /sites/www.leojsp.mywire.org/public_html/

日誌: /sites/www.leojsp.mywire.org/logs/

/etc/nginx/conf.d目錄下創建服務器塊配置文件。

				
					sudo nano /etc/nginx/conf.d/www.itzgeek.net.conf

				
			

放置以下內容。

				
					server {
	server_name www.leojsp.mywire.org;
	root /sites/www.leojsp.mywire.org/public_html/;

	index index.html index.php;

	access_log /sites/www.leojsp.mywire.org/logs/access.log;
	error_log /sites/www.leojsp.mywire.org/logs/error.log;

	# Don't allow pages to be rendered in an iframe on external domains.
	add_header X-Frame-Options "SAMEORIGIN";

	# MIME sniffing prevention
	add_header X-Content-Type-Options "nosniff";

	# Enable cross-site scripting filter in supported browsers.
	add_header X-Xss-Protection "1; mode=block";

	# Prevent access to hidden files
	location ~* /\.(?!well-known\/) {
		deny all;
	}

	# Prevent access to certain file extensions
	location ~\.(ini|log|conf)$ {
		deny all;
	}

        # Enable WordPress Permananent Links
	location / {
		try_files $uri $uri/ /index.php?$args;
	}

	location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	}

}
				
			

創建文檔根目錄和日誌目錄。

				
					sudo mkdir -p /sites/www.leojsp.mywire.org/public_html/

sudo mkdir -p /siteswww.leojsp.mywire.org/logs/

				
			

驗證配置文件。

				
					sudo nginx -t
				
			

以下消息確認 Nginx 的服務器塊配置是正確的。

				
					nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

				
			

重新啟動服務。

				
					sudo systemctl restart nginx
				
			

為 WordPress 安裝 Let's Encrypt SSL(可選)

在目前的情況下,幾乎所有的網站/博客都使用HTTPS(SSL證書)來保證真實性。Google 要求所有者 切換到 HTTPS以提高安全性並提高 Google 頁面排名。

安裝證書機器人
要生成 SSL 證書,請在您的系統上安裝 Certbot ACME 客戶端。它無需停機即可處理證書頒發和證書安裝。

在撰寫本文時,Certbot 客戶端不會自動配置 Nginx 以使用 SSL 證書。我們需要手動安裝 SSL 證書。

安裝 snapd,在機器上的命令行上執行以下說明,以確保您擁有最新版本的snapd

				
					sudo snap install core; sudo snap refresh core
				
			

安裝錯誤可參考,刪除 certbot-auto 和任何 Certbot OS 包。在安裝上序命令

				
					sudo apt-get remove certbot
				
			

安裝證書機器人

				
					sudo snap install --classic certbot
				
			

準備 Certbot 命令,在機器上的命令行執行以下指令,確保certbot命令可以運行。

				
					sudo ln -s /snap/bin/certbot /usr/bin/certbot
				
			

在安裝之前記得更新DNS紀錄。

更新/更改 DNS 記錄(這裡已Dynu示範),

選擇您希望如何運行 Certbot要怎麼獲取並安裝您的證書…。以下擇1

1.運行此命令以獲取證書並讓 Certbot 自動編輯您的 Nginx 配置以提供服務,只需一步即可打開 HTTPS 訪問。(自動寫入)

				
					sudo certbot --nginx
				
			

2.或者,只需獲得證書

如果您感覺更保守並希望手動更改 Nginx 配置,請運行此命令。

				
					sudo certbot certonly --nginx
				
			

測試自動續訂

您系統上的 Certbot 軟件包帶有一個 cron 作業或 systemd 計時器,它們將在您的證書到期之前自動更新您的證書。除非您更改配置,否則您無需再次運行 Certbot。

您可以通過運行以下命令來測試證書的自動續訂:

				
					sudo certbot renew --dry-run
				
			

確認 Certbot 工作

要確認您的站點設置正確,請在瀏覽器中訪問https://yourwebsite.com/並在 URL 欄中查找鎖定圖標

請在這裡輸入標題使用 Nginx 將 HTTP 請求重定向到 HTTPS

我們還將創建另外兩個服務器塊,以將來自 HTTP 站點的流量重定向到 HTTPS 站點。

				
					sudo nano /etc/nginx/conf.d/www.leojsp.mywire.org
				
			

在文件末尾添加以下塊。

				
					# Redirect WWW HTTP to WWW HTTPS
# http://www.leojsp.mywire.org >> https://www.leojsp.mywire.org

server {
    if ($host = www.leojsp.mywire.org) {
        return 301 https://$host$request_uri;
    }

    server_name www.leojsp.mywire.org;
    listen 80;
    return 404;

}

# Redirect NON-WWW HTTP to WWW HTTPS
# http:/leojsp.mywire.org >> https://www.leojsp.mywire.org

server {
    if ($host = leojsp.mywire.org) {
        return 301 https://www.leojsp.mywire.org$request_uri;
    }

   server_name leojsp.mywire.org;
    listen 80;
    return 404;

}
				
			

驗證配置文件,重啟 Nginx 服務。

				
					sudo nginx -t && sudo systemctl restart nginx
				
			

為 WordPress 創建所需的數據庫。

登錄到 MariaDB/MySQL。

				
					sudo mysql -u root -p
				
			

為 WordPress 創建所需的數據庫。

				
					CREATE SCHEMA `wordpress` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
				
			

創建用戶。

				
					CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'wppassword';
				
			

授予創建的用戶訪問數據庫的權限。

				
					GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
				
			

退出 MariaDB / MySQL shell。

				
					quit
				
			

下載 WordPress

				
					wget https://tw.wordpress.org/latest-zh_TW.tar.gz
				
			

使用tar命令提取 WordPress 包 。

				
					sudo tar -zxvf latest-zh_TW.tar.gz
				
			

將 WordPress 文件移動到文檔根目錄。

				
					sudo mv wordpress/* /sites/www.leojsp.mywire.org/public_html/
				
			

更改所有權,以便 Nginx Web 服務器可以將文件寫入其中。

				
					sudo chown -R www-data:www-data /sites/www.itzgeek.net/public_html/
sudo chown -R www-data:www-data /sites/www.itzgeek.net/logs/
				
			

安裝 WordPress

打開您的 網絡瀏覽器並訪問:

http://your-web-site-url

您將獲得 WordPress 安裝嚮導。

單擊“開始吧!”。

在此頁面上,輸入數據庫詳細信息以讓 WordPress 與數據庫連接。

如果連接到數據庫成功,您將看到以下頁面。單擊運行安裝。

在此頁面上,輸入站點標題、WordPress 管理員和密碼(您選擇),然後輸入電子郵件地址。然後,單擊安裝 WordPress。

輸入 WordPress 管理員用戶及其密碼以訪問 WordPress 管理員頁面。

WordPress 管理員:

WordPress 前端:

配置最大上傳文件大小

默認情況下,PHP 不允許上傳超過 2MB 的文件大小。要允許通過 WordPress Web 界面上傳更大的文件,請在php.ini 中配置upload_max_filesize 設置post_max_siz

				
					sudo nano /etc/php/8.0/fpm/php.ini
				
			

根據您的要求更改上傳大小

				
					upload_max_filesize = 256M
				
			

根據您的要求更改上傳大小。

				
					post_max_size = 256M
				
			

在 Nginx 服務器配置文件中添加client_max_body_size核心模塊。

sudo vim /etc/nginx/nginx.conf

該指令可以添加到 HTTP 塊(對於所有站點)、特定服務器塊或位置上下文中。

我正在將指令添加到 HTTP 塊,該塊設置此服務器上運行的所有站點的值。

				
					http {
    ....

    client_max_body_size 256M;

    ....
}
				
			

重新啟動服務。

				
					sudo systemctl restart php8.0-fpm && sudo systemctl restart nginx
				
			

結論

就這樣。我希望您已經學會瞭如何在Ubuntu 20.04上 使用 Nginx安裝 WordPress。請在評論部分分享您的反饋。

發佈留言