Saturday, March 13, 2021

Nginx 架兩個站

既然開始玩伺服器當然就要盡量使用資源。底下是新增一個站的筆記。

首先去設定一個 Type A DNS record ,導向同一個 server 

比如 exp.yourdomain.com > 999.999.999.999 

接下來在伺服器新增一個根目錄。和首頁的資訊

mkdir /var/www/exp
vim /var/www/exp/index.html

<html>
        <title>Chieh's experiment site</title>
        <h1>This is Chieh's experimental setting with Nginx webserver. </h1>
</html>

 

再來設定 Nginx。

vim /etc/nginx/sites-available/exp.yourdomain.com

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

   location / {
       try_files $uri $uri/ =404;
   }

}

告訴 Nginx 我們要啟動這個網站

ln -s /etc/nginx/sites-available/exp.yourdomain.com /etc/nginx/sites-enabled/

測試沒有問題

nginx -t

重啟 Nginx server

service nginx restart

打完收工....

啊,當然要啟動安全連線,這裡使用 Certbot 安裝並註冊憑證。

certbot --nginx

隨意拿個瀏覽器測試,安全連線也沒有問題:


輕鬆寫意,我也沒有料到這麼容易。

剛成功架好第二個 WordPress ,基本上就是照著前一篇,1) 新增資料庫和使用者 2) 設定該站的 Nginx server 3)下載 WordPress 並更新設定,其實不困難,只是即使是這樣簡單的任務,像我不熟悉的情況下,還是會需要 debug 一些低級錯誤XD,設定的時候還是不能夠傻傻單純複製貼上哈哈。



Thursday, March 11, 2021

用 Certbot 安裝免費的 Let’s Encrypt 憑證

 寫完上篇以後,搜尋到了一個可以得到免費憑證的機構 Let’s Encrypt 。真是佛心來著。其實基本上照步驟叫 Certbot 機器人做就可以了。安裝這個會需要能夠使用 root 權限設定已經在跑的 http 網站。依序安裝snapd,certbot,並執行即可。

設定 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官方手冊