架設自己的WordPress with LAMP


第一篇文章就來寫這個主題吧,但也因為這樣被搞到超累

本文就是個紀錄架設過程,所以很多理論就skip,還會小抱怨遇到的神奇問題哈

註冊網域

  • Godaddy
    .com的網域大概落在150-300吧
  • Freenom
    結果居然可以註冊免費網域,只是後綴被限定
    最後我選hunglinchen.ga
    哦哦如果開輸入欄位只有輸入hunglinchen的話,會跳出可用的網域
    但是點選時會跳出不可用
    但輸入完整的網域(hunglinchen.ga)就可以加到購物車嚕

進到DNS管理的頁面,先放著租好主機再回來
Services > My Domains > Manage Domain > Manage Freenom DNS

租用伺服器主機

伺服器主機商選google,有個平台叫Google cloud platform (GCP)
首次註冊可以一年內有300美金使用,對於自己租用一台空機的價錢綽綽有餘
Compute Engine建立一台虛擬主機
再來操做就看以下連結,人家寫得很完美XD
主機規格我選CPU 一核心,記憶體 3.75G ,硬碟30G SSD,作業系統選ubuntu 18.04
伺服器位置就選彰化那個機房,這樣一個月30幾塊而已(台幣)
當然以上規格只是我熟悉和喜歡的而已,可以自己客製化方案
哦哦還有把ip調為靜態ip,一開始是是臨時ip

手把手教你用 Google Cloud Platform 安裝免費且快速的 WordPress 網站並使用 Ubuntu 18.04, LAMP, Nginx, Varnish 和 Redis 加速你的網站(一年 300 美金的免費額度可以使用) | WordPress

遠端操作

Cloud SDK

要能夠遠端操作伺服器最常見的服務就是ssh
google這方面功能也做好了,下載他們的Cloud SDK,選自己電腦的作業系統,我手邊用windows

Cloud SDK 是一組指令列工具,用於在 Google Cloud 中進行開發作業。您可以使用這些工具,直接透過指令列存取 Compute Engine、Cloud Storage、BigQuery 和其他 Google Cloud 服務。

執行安裝檔後會跳出認證畫面,認證完自己的google帳號後就可以用ssh連接主機

gcloud compute --project "專案的ID" ssh --zone "伺服器主機位置" "主機名稱"

專案ID是GCP一開始要建立專案時的ID,名稱預設應該是My First Project

主機位置是剛剛租用哪個地區的主機,下圖區域的色塊

主機名稱就是建立… 應該不用說了….

沒意外就可以順利連上了,有意外的話我也不知道怎辦XD
第一次是誤以為主機位置是ip所以失敗
這時就會跳出眼熟的terminal畫面了

在伺服器建立使用者以ssh連接

sudo adduser [username]
sudo usermod -a -G sudo [username]
sudo su hunglin
sudo passwd
exit

退回本機電腦的遠端拿公開金鑰

ssh-keygen -t rsa -f ~/.ssh/mainsite.pem -C [username]
chmod 400 ~/.ssh/mainsite.pem
cat ~/.ssh/mainsite.pem.pub

到GCP > Compute engine > 中繼資料 > 安全殼層金鑰
複製到compute engine的中繼資料後就可以用username登入了

架設Wordpress網站

以上其實都在租用伺服器的連結都有詳細說明,我都是看著他一路過來XD
接下來則是要在伺服器安裝LAMP最後才是WordPress

阿忘記Freenom的DNS了
這時候可以回到Freenom DNS管理頁面在Target貼上伺服器的公開IP
Name則是網域名稱
Save Change之後等段時間應該就可以在瀏覽器輸入網域進到自己的網站了
不過現在還沒架設

Apache2

sudo apt update
sudo apt upgrade -y
sudo apt install apache2 apache2-utils -y
sudo systemctl status apache2 #確認運行

啟用服務

sudo systemctl enable apache2
sudo systemctl start apache2

如果Domain指向伺服器成功的話在瀏覽器輸入domain name就會看到apache的預設頁面
看到會感動一下

PHP

我遇到的痛苦不想說了,簡單說就是要安裝最新版的php喔~
現在(2020-06)穩定運行版是7.4

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php7.4
sudo apt install php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip php-json

WordPress官方也有建議要安裝那些php的extensions,最好是看一下官網說要安裝那些
我覺得我上面可能有漏寫: )

https://make.wordpress.org/hosting/handbook/handbook/server-environment/#php-extensions

Mysql

sudo apt install mysql-server mysql-client libmysqlclient-dev -y
sudo netstat -tap | grep mysql
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# annotate bind-address = 127.0.0.1
sudo vim /etc/mysql/debian.cnf

紀錄一下預設的帳號和密碼
帳號沒意外是debian-sys-maint

建立給Wordpress的資料庫
進入mysql服務

mysql -u debian-sys-maint -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.29-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

授權其他電腦登入

mysql> CREATE DATABASE [自己命名一個資料庫];
mysql> GRANT ALL PRIVILEGES ON [databasename].* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'PASSWORD_input';
mysql> FLUSH PRIVILEGES;
mysql> EXIT;

重啟服務

sudo systemctl restart mysql.service 

WordPress

終於…
下載wordpress再移動到網頁伺服器顯示位置

wget -c http://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
sudo rsync -av wordpress/* /var/www/html/

把擁有者權限給apache

sudo chown -R www-data:www-data /var/www/html/
sudo chmod -R 755 /var/www/html/

編輯設定檔

sudo mv wp-config-sample.php wp-config.php
sudo vim wp-config.php

填入mysql的設定

// ** MySQL 設定 - 您可以從主機服務提供商獲取相關資訊。 ** //
/** WordPress 的資料庫名稱,請更改 "database_name_here" */
define('DB_NAME', 'database name');

/** MySQL 資料庫使用者名稱,請更改 "debian-sys-maint" */
define('DB_USER', '');

/** MySQL 資料庫密碼,請更改 "password_here" */
define('DB_PASSWORD', 'PASSWARD_INPUT');

最後最後

sudo systemctl restart apache2.service 
sudo systemctl restart mysql.service 

然後在瀏覽器輸入網域名就可以進到wordpress的設定介面了

How to Install WordPress 5 On Ubuntu 16.10/16.04 Using LAMP Stack

沒想到這樣整理下來也是很累= =
之後再更新遇到奇葩的問題


Author: Hung-Lin, Chen
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source Hung-Lin, Chen !
  TOC