在「在Linode上安裝Wordpress (四)」中我們已經說明了怎樣安裝Nginx、MariaDB、PHP,這一節中我們討論如何在伺服器中架設獨立的網站。

我們希望在同一台伺服器上面可以架設很多的網站,所以每一個網站會架設在獨立的家目錄內。為了要完成這項目標,我們需要

  1. 為您的網站域名創建一個DNS記錄,指向您的伺服器。
  2. 設置一個sever block,以便讓Nginx知道如何處理連線請求。在上一篇文章中,我們設定了默認情況下,Nginx將刪除它接收到的任何連接,這樣可以確保server只處理我們明確定義的的域名的流量。

建立一筆DNS紀錄

回到Linode的DNS管理頁面,在A/AAAA Records新增一個項目,譬如:453.yourdomain

一般來說DNS建立後大約需要72小時才能讓全世界看到紀錄,但是Linode每15分鐘就會更新一次紀錄,所以不用等太久就可以使用這個domain name

建立Nginx Server block

1. 在你的home目錄中建立logs和wp_html兩個目錄,logs目錄是用來放置error logs的地方,wp_html是WordPress網站的根目錄。你如果想要更換其他的名字也可以,只要在後面的設定中有跟著更改。

cd user's home
mkdir -p 453.yourdomain/logs 453.yourdomain/wp_html

修改目錄權限

chmod -R 755 453.yourdomain

2. 在/etc/nginx/site-available/目錄下建立伺服器服務區塊

 sudo nano /etc/nginx/sites-available/453.yourdomain

這樣會從一個空檔案開始編輯,你也可以拷貝default_bak來修改。default_bak是上一篇文章將預設值改名後的檔案

加入下面的程式碼

server {
    listen 80;
    listen [::]:80;
    server_name 453.yourdomain www.453.yourdomain;
    
    access_log /home/hhliu/453.yourdomain/logs/access.log;
    error_log /home/hhliu/453.yourdomain/logs/error.log;

    root /home/hhliu/453.yourdomain/wp_html/;
    index index.php; 

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

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}

這是一個基本的Server block,通知Nginx為453.yourdomain網域域和www子網域提供服務。它還設置Nginx應用於站點根目錄的目錄以及存儲服務器日誌文件的位置。 兩個位置區塊基本上告訴Nginx將任何PHP文件傳遞給PHP-FPM進行解釋。

根據預設值,Nginx並不會載入這個Server block執行,根據我們在nginx.conf裡面的設置,只有在/sites-enabled目錄中的組態檔會被自動載入執行。這種方式可以讓我們比較容易加入或是移除一個網站


##
# Virtual Host Configs
##

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

建立一個連結到/sites-enabled

sudo ln -s /etc/nginx/sites-available/453.yourdomain /etc/nginx/sites-enabled/453.yourdomain

驗證然後重啟Nginx

sudo nginx -t
sudo service nginx restart

切換到 ~/453.yourdomain/wp_html目錄,加上一個名為phpinfo.php的檔案

nano ~/453.yourdomain/wp_html/phpinfo.php

輸入下面的php測試功能,存檔

<?php
phpinfo();
?>

接下來在瀏覽器上面輸入453.yourdomain/phpinfo.php驗證,如果出現下面的畫面就代表網站可以正常運作了

 

建立WordPress所需要用的資料庫

這裡有兩種方式,第一種是安裝phpMyAdmin,另外一種則是用SQL命令慢慢打。phpMyAdmin是很方便但是他的port是固定的也比較容易被入侵。平常使用的建議是安裝完phpMyAdmin並且使用過後就移除掉避免留下可以被入侵的路徑

第二種方式是直接使用ssh指令,在單個服務器上託管多個網站時,為每個網站創建一個單獨的用戶和database是比較適當的。 你還應該鎖定用戶權限,使得用戶只能訪問他們需要的資料庫。 以下是作法:

  1.  以root身分登入MariaDB
    mysql -u root -p
  2.  建立新資料庫,需要留意的是編碼方式,會影響到文字是否可以正確地在你的網站上顯示
    CREATE DATABASE wp_453 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  3.  建立新的使用者ID以及密碼
    CREATE USER 'wp_453'@'localhost' IDENTIFIED BY 'password';
  4.  設定使用者對於資料庫的權限,方便起見就全部允許
    GRANT ALL PRIVILEGES ON wp_453.* TO 'wp_453'@'localhost';
  5.  重整
    FLUSH PRIVILEGES;
  6.  離開
    exit;

 

安裝WordPress

1.  拷貝wp檔案到~/453.yourdomain/目錄下

cd ~/453.yourdomain
curl -O https://tw.wordpress.org/latest-zh_TW.tar.gz

2. 刪除掉原本的wp_html目錄

rm -R wp_html

3. 解壓縮tar.gz

tar zxvf latest-zh_TW.tar.gz

4. 將wordpress改名為wp_html

mv wordpress wp_html

5. 變更檔案與目錄的擁有者,因為我們設定網站的user是www-data,所以這裡需要修改

sudo chown -R www-data:www-data wp_html
sudo chown -R www-data:www-data logs

6. 更改檔案以及目錄權限

sudo find ~/453.yourdomian/wp_html -type d -exec chmod 755 {} \;
sudo find ~/453.yourdomian/wp_html -type f -exec chmod 644 {} \;

設定完成以後就可以使用瀏覽器輸入你的網址開啟WordPress的初次設定畫面

選擇「衝吧!」,填入你剛才建立資料庫時候的資料庫名稱,使用者名稱和密碼,按下「送出」即可

輸入WordPress管理者帳號、密碼等資料,按「安裝WordPress」即可完成安裝。

 

發佈留言