by Rain Chu | 11 月 9, 2021 | Linux , Nginx , SERVER , Ubuntu
現在網站沒有支援 https ,肯定是扣分項目,並且想要支援 https 已經不像是以往,一定需要去購買 SSL 憑證,大多數應用下會採用 Let’s Encrypt 的服務,本文是要介紹 Ubuntu 下替 Nginx 安裝 SSL 憑證的方法。
安裝憑證的準備工作
首先確認是否有網域名稱,也就是在DNS伺服器中擁有對應的 A Record,舉例如下:
A Record rain.tips XXX.XXX.XXX.XXX
A Record www.rain.tips XXX.XXX.XXX.XXX
並且在 Nginx 中已經設定好該網站,可以在瀏覽器中打入 rain.tips 後可以正常瀏覽
安裝 Let’s Encrypt
首先安裝憑證機器人 certbot 來支援安裝 SSL 憑證
sudo apt install certbot python3-certbot-nginx
利用 Certbot 取得憑證
找出的你主機名稱,也就是在 Nginx 中的 conf 檔案內定義的 Server Name,像我的是rain.tips,然後利用下面的指令建立憑證,-d 後面要帶入網域的名稱
sudo certbot --nginx -d rain.tips -d www.rain.tips
接下來就可以跟著交談視窗一步一步建立起憑證
輸入 Email
同意合約
是否要公開 EMAIL
設定 http 是否要轉址到 https,建議一般情況下是設定 Redirect
到此就大功告成了,有防火牆的記得要去開啟下
檢查 Certbot 的自動更新是否正常
因為 Let’s Encrypt 每三個月要 renew 一次,現在的 Certbot 都會自動的啟用自動更新,但避免出意外,可以利用下面指令確認下是否有設定正常。
sudo systemctl status certbot.timer
手動更新憑證
sudo certbot renew --dry-run
確認憑證狀態
sudo certbot certificates
到此就大功告成,參考資料如下
How To Secure Nginx with Let’s Encrypt on Ubuntu 20.04
How to Secure Nginx with Let’s Encrypt On Ubuntu 20.04 / 18.04
by Rain Chu | 11 月 5, 2021 | Linux , Ubuntu , wordpress
Linux Net-tools
Ubuntu Linux 安裝起來後,常常需要查詢自己的 IP Address ,方便 SSH 或是 FTP 連線,但不知為何,常用的 ifconfig 的指令沒有內建進來,常常需要額外去安裝,安裝不是簡單的使用 apt install ifconfig,而是需要安裝網路工具箱 apt install net-tools。
sudo apt install net-tools
安裝完成後,就可以使用 ifconfig 查詢 IP 資訊了
by Rain Chu | 11 月 4, 2021 | Linux , MariaDB , Nginx , PHP , SERVER , wordpress , 資料庫
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
驗證是否安裝正確
預設 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/sites-available/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 系統
之後就大功告成了
多網站連結
可以使用另外建立一個 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
by Rain Chu | 10 月 28, 2021 | Hyper-V , Linux , Windows
預設中,建立好的桌面板 Ubuntu 20 的系統,會是 1024×768 的解析度,但這種解析度下很難有正常的瀏覽行為,網頁的資訊都會擠在一起,所以建好 Hyper-V VM for Ubuntu 20 的時候,通常第一件事情,就是會去改變他的解析度大小,以下說明如何修改解析度
先打開 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
5.等待重新開機完畢後,下指令更新 grub
6.更新完 grub 後,並且再次重開,重連VM即可看到視窗改變
文章引用
How to make Ubuntu 20.04 LTS Desktop fullscreen on Hyper-V Manager
grub 是 Linux 中的開機管理程式,詳情可以看下文章
深入指揮作業系統啟動 詳解GRUB開機管理程式 | 網管人 (netadmin.com.tw)
by Rain Chu | 8 月 7, 2021 | Linux , wordpress
要在 Ubuntu Linux 上更新 WordPress ,紀錄一下更新過程
首先當然是先備份,以及更新
接下來去下載最新版本的 WordPress
wget https://tw.wordpress.org/latest-zh_TW.zip
利用 unzip 解壓縮
再將它複製到 wordpress 的目錄中,我的範例是
sudo cp -R ~/wordpress/* /var/www/html
接下來驗證是否正確
開啟瀏覽器,輸入網站狀態的網址
https://xxx/wp-admin/site-health.php?tab=debug
畫面顯示 wordpress 5.8 版本即可
新創小老闆也可以看看
你是我的榮耀 – 航天外站 – 戈壁篇
跟著貝爾去冒險,貝爺帶著大家玩 Survivor Games
每個月十頁免費傳真的FAX.PLUS(台灣OK)
wordpress 5.8 新功能介紹
by Rain Chu | 7 月 22, 2021 | Linux , NFC , Raspberry Pi , 小學 , 幼兒園 , 教育 , 科技
最近更新 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版本,解放了我的口袋以及雙手 ,這個幼兒園廣播系統其流程如下
免下車,可以直接靠卡感應 透過 Wifi 連結幼兒園的主機 透過 AI 合成語音,並且廣播學生的回家的資訊 老師聽到後,帶領學生到接送區域
接下來我們就直接進行安裝的指令,首先進行更新
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
近期留言