Thursday, March 11, 2021

設定 nginx SSL 安全連線

上篇設定好了 Wordpress 可是只能用 http 連線,一直看到瀏覽器提醒很討厭,所以就來研究一下怎麼設定 nginx 網站的SSL連線。參考資料是這篇。以下指令都要用root權限執行。


1. 製作憑證/密鑰。


我不是很確定系統哪裡放密鑰比較好,所以我參考這篇放在 /root 下面:

mkdir /root/certs/

接下來用這個指令製作密鑰:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /root/certs/nginx.key -out /root/certs/nginx.crt

系統會問你一串問題,但最重要的是 Common Name (e.g. server FQDN or YOUR name)要填正確的 domain name

執行完後會得到一組密鑰,其中 nginx.crt 是公開的憑證,nginx.key 是系統的密鑰。


2. 設定 nginx


vim /etc/nginx/sites-available/default

重點如下:

listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate     /root/certs/nginx.crt;
ssl_certificate_key /root/certs/nginx.key;
ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers         HIGH:!aNULL:!MD5;

存檔後重啟 nginx:

nginx -t
service nginx restart

基本上就大功告成了

3. 附記


雖然這樣就結束設定,但是瀏覽器不會喜歡這個憑證。因為這個憑證沒有經過認證。連線是安全的,但是因為每個人都可以設定,現在的瀏覽器喜歡經過認證的憑證。稍微查了一下,十分昂貴呢。所以我也不確定這個小小的個人 project 會不會變成吸金怪獸....


Wordpress 架站筆記

好久沒更新了,其實主要是因為現在線上資源太多,基本上資訊唾手可得,也就懶惰了。但是Covid疫情的關係,閒著也是閒著,來嘗試架個站,放一點心得筆記好了。

目標: 試著架個 Wordpress server,順便把這個多年來使用 Linux 的興趣拿來實作。

主要就是參考這個網頁 https://restorebin.com/wordpress-on-digitalocean/

照著說明設定好 Digitalocean 和 Domain Name 之後,正式進入架站。我用 Ubuntu 20 (Debian對不起)

所需軟體為 Nginx, MySQL, and PHP (也就是所謂的 LEMP Stack)。我對這些都完全沒經驗,所以就是走一步算一步。

1. Nginx


聽說是個小巧可愛的 Webserver,設定十分容易。

apt-get update
apt-get install nginx
service nginx restart

裝完應該可以看到網頁 homepage

2. PHP 7.4


我沒有改 Source,直接裝下列 package:

apt-get install php7.4 php7.4-cli php7.4-common php7.4-fpm php7.4-curl php7.4-mbstring php7.4-mysql php7.4-zip php7.4-xml php7.4-gd php7.4-intl php7.4-soap

3. MySQL 8.0


apt-get install mysql-server php7.4-mysql

因為版本不同,所以開始 database 的指令改成

mysqld --initialize
mysql_secure_installation


這邊會被要求設定mysql的root密碼和一些安全設定,照步驟做就可以了

4. 接下來照步驟設定一個資料庫給 Wordpress 用,沒什麼大問題


用這個指令進入 mysql

mysql -u root -p

輸入密碼之後,在 mysql 之下,下下面的指令新增一個使用者給 Wordpress 的資料庫

CREATE DATABASE wpdatabase;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'wppassword';
GRANT ALL ON wpdatabase.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
exit;


上述安全性的設定 (wpdatabase, wpuser, wppassword) 記得改掉啊....

5. 接下來設定 nginx


vim /etc/nginx/sites-available/default

重點如下:

server { 
listen 80 default_server; 
listen [::]:80 default_server; 
root /var/www/demo; 
index index.php index.html index.htm index.nginx-debian.html; 
server_name demo.yourdomain.com;  
 
location / { 
try_files $uri $uri/ /index.php$is_args$args; 
}  
 
location ~ \.php$ { 
include snippets/fastcgi-php.conf; 
fastcgi_pass unix:/run/php/php7.4-fpm.sock; 
} 
 
location ~ /\.ht { 
deny all; 
} 
}

存檔後重啟 nginx:

nginx -t
service nginx restart

6. 安裝 Wordpress:

把 Wordpress 抓到 /tmp 然後解安裝

cd /tmp
curl -LO https://wordpress.org/latest.tar.gz
tar zxvf latest.tar.gz

用提供的檔案來做設定,之後把整個 Wordpress 複製到網頁的目錄下

cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
sudo cp -a /tmp/wordpress/. /var/www/demo


接下來需要改權限

chown -R www-data:www-data /var/www/demo

7. 設定 Wordpress

用 Wordpress 提供的工具製作密鑰:

curl -s https://api.wordpress.org/secret-key/1.1/salt/

會得到如下資料:

把上面這些東西複製起來,取代 /var/www/demo/wp-config.php 裡面的相關部分,另外設定好MySQL的資料庫和使用者

define('DB_NAME', 'wpdatabase');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'wppassword');


並且加入這行

define('FS_METHOD', 'direct');

重新開機之後,用網頁開啟伺服器的網址,就可以在線上設定部落格了。







Saturday, May 16, 2015

開機時不執行 gdm3 登入

想要在開機時直接進入命令列,沒想到花了一個小時才解決,而且不是很好的解決方式...

這應該是 bug 而且還沒修好
我的 debian 版本是剛裝不久的 Jessie (stable)

參考這邊把這兩個檔案殺了
/lib/systemd/system/gdm3.service 
/lib/systemd/system/gdm.service
但是我的 gdm3 也回不來了T_T

所以本篇會有「不可回復」的後果請小心。(懶得解決了,查了好久才好不容易達成任務)

Saturday, November 23, 2013

設定特定鍵盤的語系

人在瑞士,買了一個新鍵盤。 雖然一般打字對我沒有問題,但是如果是遇到寫程式,或者是刻latex文件的時候,常常需要怪符號。這個時候就會覺得還是有必要讓正確的設定鍵盤,比較好打字。 參考這篇,發現可以針對特定裝置設定一點也不困難。

首先要找出裝置的名稱。
xinput -list |grep -i key

會得到如下的訊息
⎣ Virtual core keyboard                   id=3 [master keyboard (2)]
    ↳ Virtual core XTEST keyboard             id=5 [slave  keyboard (3)]
    ↳ Power Button                             id=6 [slave  keyboard (3)]
    ↳ Video Bus                               id=7 [slave  keyboard (3)]
    ↳ Sleep Button                             id=8 [slave  keyboard (3)]
    ↳ UVC Camera (17ef:480c)                   id=10 [slave  keyboard (3)]
    ↳ USB Device HID Compliant Device         id=11 [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard             id=13 [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                   id=15 [slave  keyboard (3)]
    ↳ ACPI Virtual Keyboard Device             id=16 [slave  keyboard (3)]
    ↳ Logitech USB Receiver                   id=9 [slave  keyboard (3)]

可以發現我新買的 Logitech 鍵盤是 id = 9

於是輸入
setxkbmap -device 9 ch

便大功告成

Monday, September 20, 2010

關閉螢幕

節能減碳嘛
遠端連線的話Server能關的儘量關
遠端登入後,用root權限執行
vbetool dpms off/on 可以關開Console的螢幕
參考這裡來的

Wednesday, September 15, 2010

X11 forwarding 加速

參考http://www.miscdebris.net/blog/2007/06/01/speed-up-ssh-x11-forwarding/

用另外(比較好)的方式壓縮資料解決一些網路速度的問題
雖然我是在家裡用區域網路

ssh -c arcfour,blowfish-cbc -XC host.com

-C 是強制壓縮資料
-X X11 forwarding
-c 指定壓縮方式

Friday, March 12, 2010

無線網路設置

之前都用 WEP 加密,聽說十分不安全
心血來潮改用WPA2加密

基地台部份
在無線網路router上面改了一下設定
改成 WPA2 mit Pre-shared key
並且把 ssid 和 pre-shared key 設好

電腦部份
安裝 wpasupplicant 套件
執行 wpa_passphrase [ssid] [passphrase]
並且在 /etc/network/interfaces 裏面設定成類似這樣
iface ath0 inet dhcp
wpa-ssid homezone # ssid
# hexadecimal psk is encoded from a plaintext passphrase
wpa-psk 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f #wpa_passphrase 得到的數字

就可以用ifupdown來使用無線網路了

本篇是參考Debian官方手冊

Thursday, February 18, 2010

nfs

mount.nfs operation not permitted....

感謝這篇

基本上,就是Server用version3,我的新系統想用version4
然後就爆炸了

解決方法就是加入mount option
nfsvers=3
把他放到 fstab 裡面一切搞定

不過學到一招,就是有問題的時候看一下verbose
可能可以找到解決方法

Wednesday, February 03, 2010

合併pdf檔 (for paper)

配合mogrofy

mogrify -format pdf *.jpeg

使用GhostScript

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=combined.pdf Manuscript.pdf Figure*.pdf

參考Putting together PDF files

Tuesday, February 02, 2010

命令列轉換圖片格式

使用的軟體套件: ImageMagick
command line指令: mogrify
可以批次大量轉換圖片
轉換格式:mogrify -format jpg -quality 100 *.png (會產生*.jpeg檔)
填滿透明:mogrify -format tiff -layers flatten -background white *.png (會產生*.tiff檔,並且把原來的透明區域改成白色)

參考網頁:ImageMagick

Tuesday, December 08, 2009

BibTeX - Title 大小寫

一直以來,論文的參考書目引用我都是用Dan Rizzuto大大寫的neuron.bst
但是我不喜歡他把整個title都改成首字大寫,這樣子有些蛋白質或基因的名稱看起來就非常怪

找到這篇裏面提到的解決方法,修改function
把這幾行
FUNCTION {format.title}
{ title empty$
{ "" }
{ title "t" change.case$ }
if$
}

改成
FUNCTION {format.title}
{ title field.or.null
}

BibTeX就不會處理title的大小寫了

Tuesday, December 01, 2009

CJK

這東西花了我快兩個小時!

在LaTeX使用中文環境CJK的時候要用
\usepackage[encapsulated]{CJK}

不然會常常出現
\CJK@XXX ...endcsname {`#2}{`#3}\CJK@ignorespaces
錯誤訊息

我試過大範圍的CJK環境,但是因為文章內還有其他的拉丁字母,在CJK環境下顯示不出來,還好這個方法解決了所有的問題。

氣死我了,只是這不到一行的字害我找半天
感謝這裡(德文)

另外新學到的是,一般來說我使用繁體/正體字形:
\begin{CJK}{UTF8}{bsmi}(阿捷筆記)\end{CJK}

但是如果使用簡體字的話字型需要改變
\begin{CJK}{UTF8}{gbsn}(阿捷笔记)\end{CJK}

整體來說明體的效果鑲在英文文稿上還算不錯

Sunday, February 15, 2009

rsync using different ssh port

家裡的主機有防火牆設定
我不喜歡用 port 22 所以繞了個彎

可是 rsync 沒有直接提供改 ssh port 的方式
所以要用這招
rsync -av -e "ssh -p 11111" work/ user@the.address:/backup/work-rsync/

Saturday, February 14, 2009

鍵盤配置

有的時候要打 äöüß 這些德文字母
不太方便
以前只會用 kde 或 gnome 的 keyboard switch
現在才知道原來有一個簡單指令可以解決這個問題

就這樣:
setxkbmap de

在現階段的 X 裏面就會變成德國鍵盤啦
好用得很

換回來當然就是
setxkbmap us
簡單吧

Thursday, February 12, 2009

網卡名稱

因為老黑X31有三個網卡 Firewire, e100, ipw2100
而Debian Lenny 很多事地亂改了一堆名稱
還讓名稱互相衝突 = =

所以改名字就在
/etc/udev/rules.d/XX-persistent-net.rules
找到裝置改改名稱就是了

Monday, February 09, 2009

燒DVD的命令

參考這邊來的

目前需求不多所以簡單寫一下
為了我的小 etch 工作站

安裝 dvd+rw-tools這個套件
DVD RW 好像需要先fromat

dvd+rw-format -force /dev/hda

然後下這個命令

growisofs -dvd-compat -input-charset=ISO-8859-1 -Z /dev/hda -R -J -pad "/my/directory/datas"

結束XD

Friday, February 06, 2009

拼字檢查

Evolution Mail 的拼字檢查是需要 gnome-spell 套件低
然後 aspell 裡面可以選擇需要的字典

Wednesday, February 04, 2009

備份策略

目前所有的工作都存在 ~/work/
但是實驗室的備份資料是用 windows 系統當server
所以 rsync -av 會出現很多錯誤
真正的備份使用之前的虛擬硬碟來處理
但是為了檔案交換方便還是要再 windows 系統下有一個可以讀取的地方

看了一下 rsync 的說明
使用這個指令來做這件事情
rsync -vrtO ~/work/ /mnt/lab/work-rsync/
v= verbose 看一下程式在做啥
r= recursive 整個目錄
t= time preserving 時間是要保留的
O=但是資料夾的時間 windows 不給改 XD

Tuesday, February 03, 2009

掃描器備忘

可以使用掃描器的群組是 scanner

可以用 scanimage -L 確認有沒有偵測到掃描器

Monday, February 02, 2009

印表機

純「書籤」
裝實驗室的印表機:

HP8150: 在 hpijs 套件裡
KMC2525E 的 ppd: 官方網站有提供