Tuesday Sep 17, 2024

Ubuntu 20.04 LTS 上的 LAMP WordPress 過程記錄

LAMP 是 Linux , Apache , MariaDB/MySQL , PHP 的簡稱 

從 0 搭起 LAMP 後再安裝 WordPress

首先要有一臺 Ubuntu 20.04 LTS 主機

這裡全程使用 "user" 帳號 ,如果沒有,用 " root " 帳號新增一個

1. 更新套件


更新 apt 套件列表

sudo apt update

更新已安裝軟體至最新

sudo apt upgrade

2. 安裝 Apache


安裝 Apache 網頁伺服器

sudo apt install apache2

按 y 安裝

完成後啟用並啟動 Apache 服務

sudo systemctl enable apache2

檢查服務狀態

systemctl status apache2

有看到 active ( running ) 那就表示服務已正常啟動及啟用

這時候你就可以用瀏覽器

瀏覽Apache 的Ubuntu 20.04的 IP

http://Server-IP

3. 安裝 PHP


安裝PHP和所需的擴充套件

sudo apt install -y php php-{common,mysql,xml,xmlrpc,curl,gd,imagick,cli,dev,imap,mbstring,opcache,soap,zip,intl}

按 y 安裝

完成後查看 php 版本

php -v

4. 安裝 MariaDB


你可以使用 MariaDB 或 MySQL 作為伺服器資料庫

我這裡使用 MariaDB 作為資料庫

安裝 MariaDB 

sudo apt install mariadb-server mariadb-client

按 y 安裝

完成後啟用並啟動 MariaDB 服務

sudo systemctl enable --now mariadb

檢查服務狀態

systemctl status mariadb

有看到 active ( running ) 那就表示服務已正常啟動及啟用

資料庫初始設定

sudo mysql_secure_installation

設定中的內容選項

Enter current password for root (enter for none): #輸入 root 帳戶密碼,無 root 帳戶則 Enter 鍵繼續
Change the root password? [Y/n]                   #若不想更改 root 密碼則輸入 n ,若上面 enter 這裡要 Y
New password:                         #上面選 Y 之後,這裡要輸入你的新 root 密碼
Re-enter new password:                #再次輸入一遍新密碼
Remove anonymous users? [Y/n] Y       #移除匿名帳戶
Disallow root login remotely? [Y/n]   #不禁止 root 帳戶遠端登入選 n , 禁止選 Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

5. 為 WordPress 建立資料庫


登入資料庫 ( 使用 root 帳號登入資料庫

sudo mysql -u root -p

建立一個新資料庫使用者,請保留引號

請替換指令中的 new_user ( 資料庫使用者名字 ) , your_password ( 該使用者密碼)

CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'your_password';

新增資料庫

請替換指令中的 new_db ( 資料庫名字 )

CREATE DATABASE new_db;

增加權限

請替換指令中的 new_user ( 資料庫使用者名字 ) , your_password ( 該使用者密碼 ) , new_db ( 資料庫名字 )

GRANT ALL PRIVILEGES ON new_db.* TO 'new_user'@'localhost';

更新資料庫權限

FLUSH PRIVILEGES;

離開

Exit;

6. 安裝 WordPress


安裝 WordPress 需要手動下載和解壓縮

需要 wget 和 unzip 套件 , 安裝 wget 和 unzip 套件

sudo apt install wget unzip

下載 WordPress

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

解壓縮檔案

sudo unzip latest.zip

移動檔案至網頁資料夾

sudo mv wordpress/ /var/www/html/

為了節省空間,移除剛剛下載的檔案

sudo rm latest.zip

更改擁有者和權限

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

7. 修改 Apache 設定檔

利用 nano 編輯器 建立新的設定檔

sudo nano /etc/apache2/sites-available/wordpress.conf

適當修改 3, 5 , 6 行配置文件 , 並貼上

<VirtualHost *:80>

    ServerAdmin email           #email
    DocumentRoot /var/www/html/wordrpess
    ServerName example.com      #域名
    ServerAlias www.example.com #站點

    <Directory /var/www/wordpress/">
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

</VirtualHost>

編輯完 Ctrl + O 組合鍵然後 ENTER 鍵存檔

使用 Ctrl + X 組合鍵退出編輯器

在 /etc/apache2/apache2.conf 檔案最後一行加入 ServerName 設定

sudo nano /etc/apache2/apache2.conf

用方向鍵下移至最後一行並插入

ServerName example.com      #域名

apache2 設定檔檢查

sudo apache2ctl configtest

若設定正常,系統會返回

Syntax OK

啟用 virtual host

sudo a2ensite wordpress.conf

啟用 rewrite 模組

sudo a2enmod rewrite

停用預設 Apache 測試頁面

sudo a2dissite 000-default.conf

重新啟動 Apache 服務

sudo systemctl restart apache2

8. 設定 WordPress 內容管理系統


開啟瀏覽器瀏覽

Apache 的 Ubuntu 20.04 的 IP

http://Server-IP

首先 設定語言

資料庫加入,是前面步驟5的設定

Database Name : new_db

Username : new_user

Password : your_password

其餘不需要更動按下 Submit 按鈕

最後再按下 Run the installation 按鈕

9. 新增網站管理員帳號和網站設定


詳細就不寫了,註冊還不會就真的orz

Search engine Visibilllity 搜尋引擎能見度

這選項能後期調整

設定完之後就能登入後台

記得把 WordPress 位置改成你的域名

10. SSL


這裡使用 Certbot 做認證

確認 Snapd 是最新的版本

sudo snap install core; sudo snap refresh core

安裝 Certbot

sudo snap install --classic certbot

將建立連結檔

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

取得並安裝證書

sudo certbot --apache

測試自動續訂功能

sudo certbot renew --dry-run

此時再重新開啟網域

就可以看到網域有加密憑證

我是Vinc,下個紀錄見

Vinc

2 thoughts on “Ubuntu 20.04 LTS 上的 LAMP WordPress 過程記錄

  1. 牛逼

  2. 我按照您的方法一步一步做到「開啟瀏覽器瀏覽 Apache 的 Ubuntu 20.04 的 IP」還有「http://Server-IP」,結果是 404 NOT FOUND…

    Orz

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Back to Top