Select Page
如何在 Ubuntu 20.04 上安裝 PHP 8.0、Nginx、MariaDB、WordPress CMS

如何在 Ubuntu 20.04 上安裝 PHP 8.0、Nginx、MariaDB、WordPress CMS

sudo apt update -y
sudo apt upgrade -y

安裝 Nginx

sudo apt install nginx -y

想要支援 fastcgi_cache purge module 的話,請改用下面的方法安裝 nginx

sudo add-apt-repository ppa:rtcamp/nginx
sudo apt-get update
sudo apt-get remove nginx*
sudo apt-get install nginx-full

可以用下面的指令,確認是否有安裝 fastcgi cache purge module

nginx -V 2>&1 | grep nginx-cache-purge -o

安裝完畢後可以啟用 nginx

sudo systemctl start nginx
sudo systemctl enable nginx

如果有啟用防火牆,記得要開啟相對應的PORT

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

驗證以及測試一下是否正常


安裝以及設定 MariaDB

接下來可以安裝資料庫MariaDB

sudo apt install mariadb-server
sudo systemctl status mariadb

保護好你的資料庫,修改 root 密碼,以及移除用不到的帳戶以及資料表,和防止 root 遠端登入

sudo mysql_secure_installation

啟動 MariaDB Service

sudo systemctl start mariadb
sudo systemctl enable mariadb

為資料庫建立一個專用使用者,用來操作 wordpress db

sudo mysql -u root -p
MariaDB [(none)]> CREATE USER 'wordpressdbuser'@'localhost' IDENTIFIED BY 'password';

建立一個資料庫,以及一個資料庫的使用者(USER),要給 wordpress 系統使用的

sudo mysql -u root -p
MariaDB [(none)]> CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> GRANT ALL ON wordpress.* TO 'wordpressdbuser'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;

設定完畢後退出 MariaDB 的介面


安裝 PHP 8.0

因為 php 8 較新,還沒包含在標準套件中,所以我們要新增 PHP 8 的軟體包

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt upgrade

新增了PPA後,我們可以直接下指令安裝 PHP 8.0

sudo apt install php8.0

驗證是否安裝正確

php -v

預設 php8.0 安裝完畢後會是支援 apache ,我們需要在安裝 PHP 8 FPM 讓他可以支援 Nginx

sudo apt install php8.0-fpm

安裝常用的 PHP 8.0 擴充套件,可以依照情況刪減

sudo apt install php8.0-common php8.0-mysql php8.0-xml php8.0-curl php8.0-gd php8.0-imagick php8.0-cli php8.0-dev php8.0-imap php8.0-mbstring php8.0-opcache php8.0-soap php8.0-zip -y

為 Nginx 設定 PHP 8

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

可以修改下列的預設數值,讓 PHP 可以運行得更好

upload_max_filesize = 32M 
post_max_size = 48M 
memory_limit = 256M 
max_execution_time = 600 
max_input_vars = 3000 
max_input_time = 1000

修改完畢後存檔,並且重啟 PHP 8

sudo php-fpm8.0 -t 
sudo service php8.0-fpm restart

2023-11 更新,官方推薦也可以安裝 8.2 版本

#安裝php8.2-fpm
sudo apt-get install php8.2-fpm -y
#安裝php8.2套件
sudo apt install php8.2-common php8.2-mysql php8.2-xml php8.2-curl php8.2-gd php8.2-imagick php8.2-cli php8.2-dev php8.2-imap php8.2-mbstring php8.2-opcache php8.2-soap php8.2-zip -y
#檢查PHP版本
php -v

安裝 wordpress

先下載wordpress,我安裝的版本是中文正體 wordpress 5.8.1,下載完畢後,解壓縮,並且放到你想要放的目錄下,本例是 /var/www/mysite

wget -c https://tw.wordpress.org/latest-zh_TW.zip
unzip latest-zh_TW.zip
sudo cp -R ./wordpress/* /var/www/mysite/

剛複製過去的權限會是 root 的權限,接下來用指令設置權限為 www-data

sudo chown -R www-data:www-data /var/www/mysite
sudo chmod -R 775 /var/www/mysite

在 Nginx 中建立 WordPress 的虛擬伺服器 (VirtualHost)

先刪除 Nginx 中的預設檔,然後建立一個自己的設定檔(.conf)

sudo rm /etc/nginx/sites-enabled/default
sudo rm /etc/nginx/sites-available/default
sudo nano /etc/nginx/conf.d/mysite.conf

mysite.conf 內容如下,mysite 的資訊要換成你自己的伺服器資訊

server {
        listen 80;
        listen [::]:80;
        root /var/www/mysite.com;
        index  index.php index.html index.htm;
        server_name mysite.com www.mysite.com;

        error_log /var/log/nginx/mysite.com_error.log;
        access_log /var/log/nginx/mysite.com_access.log;
        
        client_max_body_size 100M;
        location / {
                try_files $uri $uri/ /index.php?$args;
        }
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php8.0-fpm.sock;
                fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
}

如果你是把 config 檔按放在 /etc/nginx/sites-available/ 下的話,要記得 ln (軟連結) config

sudo ln -sf /etc/nginx/sites-available/mysite.conf /etc/nginx/sites-enabled/mysite.conf

測試 Nginx ,成功的話就重啟伺服器

sudo nginx -t
sudo service nginx restart

透過瀏覽器安裝 WordPress

開啟瀏覽器,並且輸入 https://localhost/ 可以在本地端安裝 WordPress 系統

開始安裝WordPress
設定 WordPress 的資料庫資訊
設定要登入 WordPress 的帳號密碼
之後就大功告成了

多網站連結

可以使用另外建立一個 a config檔案,並且利用ln指令做連結

cd /etc/nginx/sites-enable/
sudo ln -s /etc/nginx/sites-available/a

參考資料:

https://tw511.com/a/01/23398.html

https://cn.linux-console.net/?p=1601

如何在 Hyper-V 中的 Ubuntu 20 的螢幕解析度調整為 1920×1080

如何在 Hyper-V 中的 Ubuntu 20 的螢幕解析度調整為 1920×1080

預設中,建立好的桌面板 Ubuntu 20 的系統,會是 1024×768 的解析度,但這種解析度下很難有正常的瀏覽行為,網頁的資訊都會擠在一起,所以建好 Hyper-V VM for Ubuntu 20 的時候,通常第一件事情,就是會去改變他的解析度大小,以下說明如何修改解析度

  1. 先打開 Terminal 並且編輯 gurb 檔案
sudo nano /etc/default/grub

2.找到 GRUB_CMDLINE_LINUX_DEFAULT ,預設應該是quiet splash,我們要在後面加入指令,讓他認得hyper-V,並且調整為 Full-HD的解析度

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

3.把 GRUB_CMDLINE_LINUX_DEFAULT 的參數從 quiet splash -> quiet splash video=hyperv_fb:1920×1080

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1920x1080"

修改完畢後的 grub 檔案會是下圖

4.重新開機,並且重新關閉VM的視窗後重新連線VM

sudo reboot

5.等待重新開機完畢後,下指令更新 grub

sudo update-grub

6.更新完 grub 後,並且再次重開,重連VM即可看到視窗改變

sudo reboot

文章引用

How to make Ubuntu 20.04 LTS Desktop fullscreen on Hyper-V Manager

grub 是 Linux 中的開機管理程式,詳情可以看下文章

深入指揮作業系統啟動 詳解GRUB開機管理程式 | 網管人 (netadmin.com.tw)

手動更新 wordpress 5.8 版本

手動更新 wordpress 5.8 版本

要在 Ubuntu Linux 上更新 WordPress ,紀錄一下更新過程

首先當然是先備份,以及更新

sudo apt update

接下來去下載最新版本的 WordPress

wget https://tw.wordpress.org/latest-zh_TW.zip

利用 unzip 解壓縮

unzip latest-zh_TW.zip

再將它複製到 wordpress 的目錄中,我的範例是

sudo cp -R ~/wordpress/* /var/www/html

接下來驗證是否正確

開啟瀏覽器,輸入網站狀態的網址

https://xxx/wp-admin/site-health.php?tab=debug

畫面顯示 wordpress 5.8 版本即可

wordpress 5.8 info

新創小老闆也可以看看

你是我的榮耀 – 航天外站 – 戈壁篇

跟著貝爾去冒險,貝爺帶著大家玩 Survivor Games

每個月十頁免費傳真的FAX.PLUS(台灣OK)

wordpress 5.8 新功能介紹

Raspberry pi 如何使用 ACR122U NFC Reader

Raspberry pi 如何使用 ACR122U NFC Reader

ACS-ACR122U-NFC-Reader

最近更新 ACR122 NFC Reader 到了 ACR122U NFC Reader (A9) 最新版本,發現之前的 Driver 不能使用了,所以重新記錄一下,如何在 Raspberry Pi 的 Raspbian OS 上頭安裝 ACR122U 的驅動程式(Driver),先決條件要是 Raspberry Pi model 2B 以上,以及 2015 Debian Wheezy, kernel 3.18 以上。

我這一次的專案是需要用在幼兒園的家長接送的情境上,身為家長一定都覺得老師的記憶力超好,不管是幼幼班、幼兒園還是國小低年級學生,老師都需要負責學生的接送,但我個人上了年紀後能記得的只有自己的名字,所以就協助我本次的業主,設計了一套幼兒園放學時的自動廣播系統,當然最酷的是可以使用我的小米手環5 NFC或是小米手環6 NFC版本,請參考小米手環6 NFC版本,解放了我的口袋以及雙手,這個幼兒園廣播系統其流程如下

  1. 免下車,可以直接靠卡感應
  2. 透過 Wifi 連結幼兒園的主機
  3. 透過 AI 合成語音,並且廣播學生的回家的資訊
  4. 老師聽到後,帶領學生到接送區域

接下來我們就直接進行安裝的指令,首先進行更新

sudo apt-get update
sudo apt-get upgrade

安裝周邊的依賴

sudo apt-get -y install subversion autoconf debhelper flex libusb-dev libpcsclite-dev libpcsclite1 libccid pcscd pcsc-tools libpcsc-perl libusb-1.0-0-dev libtool libssl-dev cmake checkinstall

到 github.com 去下載 libnfc 程式碼安裝

wget https://github.com/nfc-tools/libnfc/releases/download/libnfc-1.7.0-rc7/libnfc-1.7.0-rc7.tar.gz

解壓縮

tar -xvzf libnfc-1.7.0-rc7.tar.gz
cd libnfc-1.7.0-rc7

設定環境以及開始安裝 libnfc

./configure --with-drivers=acr122_usb
make
sudo make install

到了這邊就安裝完成了,接下來可以利用 nfc-list 檢查一下,不過要先安裝好 nfc-list ,指令如下

sudo sh -c "echo /usr/local/lib > /etc/ld.so.conf.d/usr-local-lib.conf"
sudo ldconfig
sudo nfc-list

參考資料
ACR122U NFC USB READER ON A RASPBERRY PI