在「在Linode上安裝Wordpress (四)」中我們已經說明了怎樣安裝Nginx、MariaDB、PHP,這一節中我們討論如何在伺服器中架設獨立的網站。
我們希望在同一台伺服器上面可以架設很多的網站,所以每一個網站會架設在獨立的家目錄內。為了要完成這項目標,我們需要
- 為您的網站域名創建一個DNS記錄,指向您的伺服器。
- 設置一個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是比較適當的。 你還應該鎖定用戶權限,使得用戶只能訪問他們需要的資料庫。 以下是作法:
- 以root身分登入MariaDB
mysql -u root -p
- 建立新資料庫,需要留意的是編碼方式,會影響到文字是否可以正確地在你的網站上顯示
CREATE DATABASE wp_453 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
- 建立新的使用者ID以及密碼
CREATE USER 'wp_453'@'localhost' IDENTIFIED BY 'password';
- 設定使用者對於資料庫的權限,方便起見就全部允許
GRANT ALL PRIVILEGES ON wp_453.* TO 'wp_453'@'localhost';
- 重整
FLUSH PRIVILEGES;
- 離開
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」即可完成安裝。