在安裝Ubuntu 16.04後,當要使用https,在設置好conf檔後,在瀏灠器出現以下錯誤
ERR_CONNECTION_REFUSED
很有可能是未enable SSL。執行以下
a2enMOD SSL
重啟apache。
2017年7月22日星期六
2017年7月2日星期日
加強ssh保安
為加強ssh的保安,我們可做以下工作:
A.不許root從ssh登入,改為增加用戶為sudoer。
B.禁止用戶用密碼遙距(ssh)登入,只可用key登入。
ssh server 限制用key登入ssh的好處就是入侵者基本上不可能暴力爆SSH server,撞中密碼。當然,也要保存好登入用的key。
以Ubuntu 16.04為例,我們可以按序做以下工作:
useradd -m sudoer_userabc
使用usermod去加用戶入"sudo"群組中
Ubuntu中,預設群組"sudo"中的用戶便可sudo (tested on Ubuntu 16.04)
usermod -aG sudo sudoer_userabc
測試
su sudoer_userabc
sudo apt-get update
如可正常update,則sudoer_userabc已是sudoer的一員了。
ssh-keygen
在過程中,會要求輸入密碼保護金鑰,作用是在每之使用金鑰時,要輸入密碼才可。注意,此密碼跟原本登入ssh server的密碼無關。建議可用一個簡單密碼來保護金鑰。有密碼保護的話,假設金鑰被人複制了一份,他也用不了。
之後會生成
目錄 ".ssh" (請確定".ssh"的權限是"700")
另外目錄下是一對金鑰,分別是
id_rsa (權限應為"600",這是key)
id_rsa.pub (權限應為"644",這是"鎖")
cat id_rsa.pub >> authorized_keys
或
mv id_rsa.pub authorized_keys
將key下載回來。
如是Linux或MacOS,直接用sftp登入下載便可。
如用Windows,可用以下工具
WinSCP (一個sftp工具)
http://winscp.net/
在Windows下,仍需下載puttygen及putty。
============================================================
#修改port為XXXX
Port XXXX
#禁止root登入
PermitRootLogin no
#允許用key登入,設定key的路徑
A.不許root從ssh登入,改為增加用戶為sudoer。
B.禁止用戶用密碼遙距(ssh)登入,只可用key登入。
ssh server 限制用key登入ssh的好處就是入侵者基本上不可能暴力爆SSH server,撞中密碼。當然,也要保存好登入用的key。
以Ubuntu 16.04為例,我們可以按序做以下工作:
1. 增加一個用戶為sudoer
創建一個用戶sudoer_userabcuseradd -m sudoer_userabc
使用usermod去加用戶入"sudo"群組中
Ubuntu中,預設群組"sudo"中的用戶便可sudo (tested on Ubuntu 16.04)
usermod -aG sudo sudoer_userabc
測試
su sudoer_userabc
sudo apt-get update
如可正常update,則sudoer_userabc已是sudoer的一員了。
2. 生成一對密鑰
登入server, 執行ssh-keygen
在過程中,會要求輸入密碼保護金鑰,作用是在每之使用金鑰時,要輸入密碼才可。注意,此密碼跟原本登入ssh server的密碼無關。建議可用一個簡單密碼來保護金鑰。有密碼保護的話,假設金鑰被人複制了一份,他也用不了。
之後會生成
目錄 ".ssh" (請確定".ssh"的權限是"700")
另外目錄下是一對金鑰,分別是
id_rsa (權限應為"600",這是key)
id_rsa.pub (權限應為"644",這是"鎖")
3.把"鎖"裝上
在目錄".ssh"中執行以下:cat id_rsa.pub >> authorized_keys
或
mv id_rsa.pub authorized_keys
將key下載回來。
如是Linux或MacOS,直接用sftp登入下載便可。
如用Windows,可用以下工具
WinSCP (一個sftp工具)
http://winscp.net/
在Windows下,仍需下載puttygen及putty。
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
用puttygen把id_rsa轉為putty格式,再用putty登入。
4. 修改sshd_config,改為只可用key登入
修改以下============================================================
#修改port為XXXX
Port XXXX
#禁止root登入
PermitRootLogin no
#允許用key登入,設定key的路徑
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
============================================================
============================================================
============================================================
保存修改,重啟sshd,如可正常用key登入,再修改以下
#禁止用密碼登入
PasswordAuthentication no
PasswordAuthentication no
============================================================
保存修改,重啟sshd。
5. 登入ssh
在Linux及macOS中,可用以下指令登入ssh
ssh -p port_of_sshd -i name_of_key user@sshd_server_ip
Windows中可用 putty.
完成!
ref:
https://blog.gtwang.org/linux/linux-ssh-public-key-authentication/
https://www.digitalocean.com/community/tutorials/how-to-create-a-sudo-user-on-ubuntu-quickstart2017年5月12日星期五
Raspberry Pi 更改timezone
在Raspbian中更改time zone
以root的身份鍵入以下command
sudo dpkg-reconfigure tzdata
接著便進入互動介面,選擇合適的地區。
保存後,重啟。
完成!
更新:
在Ubuntu 16.04上測試,也是一樣可用。
應該在Ubuntu系列的各版本都適用。
2017/7/2
ref http://aryo.lecture.ub.ac.id/configure-timezone-settings-on-raspberry-pi-raspbian-wheezy/comment-page-1/
以
sudo dpkg-reconfigure tzdata
接著便進入互動介面,選擇合適的地區。
保存後,重啟。
完成!
更新:
在Ubuntu 16.04上測試,也是一樣可用。
應該在Ubuntu系列的各版本都適用。
2017/7/2
ref http://aryo.lecture.ub.ac.id/configure-timezone-settings-on-raspberry-pi-raspbian-wheezy/comment-page-1/
2016年6月6日星期一
Yii2 i18n Basic Template 設置
在使用Yii2 的i18n做多語言設置時,主要有2個地方要設置的。
1. 設置檔案 web.php
假設根目錄是/var/www/basic
編輯 /var/www/basic/config/web.php
加入藍色的設置。
預設的language是en-US。
翻譯的檔案分別是app.php 及error.php,在'/var/www/basic/messages/[language]'中。
<?php
預設的language是en-US。
翻譯的檔案分別是app.php 及error.php,在'/var/www/basic/messages/[language]'中。
<?php
$params = require(__DIR__ . '/params.php');
$config = [
... ...
'language' => 'zh-TW',
'components' => [
... ...
'i18n' => [
'translations' => [
'app*' => [
'class' => 'yii\i18n\PhpMessageSource',
'fileMap' => [
'app' => 'app.php',
'app/error' => 'error.php',
],
],
],
... ...
];
2. 建立目錄及檔案
在/var/www/basic/vendor/yiisoft/yii2/messages中已有部分翻譯,只是檔案名不同,直接 copy便可。
如zh-TW,
cp -r /var/www/basic/vendor/yiisoft/yii2/messages/zh-TW /var/www/basic/messages
cd /var/www/basic/messages
mv yii.php app.php
DONE
在/var/www/basic/vendor/yiisoft/yii2/messages中已有部分翻譯,只是檔案名不同,直接 copy便可。
如zh-TW,
cp -r /var/www/basic/vendor/yiisoft/yii2/messages/zh-TW /var/www/basic/messages
cd /var/www/basic/messages
mv yii.php app.php
DONE
2016年3月23日星期三
Vtiger CRM 中文亂碼
在試用VtigerCRM時發現中文亂碼。分別在顯示時及轉PDF時出現。
實現環境:
Centos 7 + Vtiger6.4
解決辦法:
1. 顯示時的中文亂碼
是由於Database 的Charset不正確造成的,只要更改為UTF8便可。
但如Database已生成,建議重新安裝Vtiger比較節省時間。google了,似乎沒有辦法直接轉換。曾經試過把Database匯出SQL,更改SQL中chatset為UTF8,再匯入。但加index時出現了一些錯誤信息。未知是否有影響。
比較簡單的方法是在安裝Vtiger時,只要把Database的Charset改成UTF8便可。在安裝完成後,所有tables及fields的charset都是UTF8,問題便解決了。
方法如下:
mysql -u root -p
CREATE DATABASE vtiger CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE USER 'vtiger'@'localhost' IDENTIFIED BY 'testing';
grant all privileges on `vtiger`.* to 'vtiger'@'localhost';
FLUSH PRIVILEGES;
2. 轉PDF時出現中文亂碼
TCPDF及字型的問題。
已放棄Vtiger,具體解決方法參考以下
http://www.ossez.com/forum.php?mod=viewthread&tid=761
http://wiki.debian.org.hk/w/Where_can_I_find_fonts_for_GNU/Linux
實現環境:
Centos 7 + Vtiger6.4
解決辦法:
1. 顯示時的中文亂碼
是由於Database 的Charset不正確造成的,只要更改為UTF8便可。
但如Database已生成,建議重新安裝Vtiger比較節省時間。google了,似乎沒有辦法直接轉換。曾經試過把Database匯出SQL,更改SQL中chatset為UTF8,再匯入。但加index時出現了一些錯誤信息。未知是否有影響。
比較簡單的方法是在安裝Vtiger時,只要把Database的Charset改成UTF8便可。在安裝完成後,所有tables及fields的charset都是UTF8,問題便解決了。
方法如下:
mysql -u root -p
CREATE DATABASE vtiger CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE USER 'vtiger'@'localhost' IDENTIFIED BY 'testing';
grant all privileges on `vtiger`.* to 'vtiger'@'localhost';
FLUSH PRIVILEGES;
2. 轉PDF時出現中文亂碼
TCPDF及字型的問題。
已放棄Vtiger,具體解決方法參考以下
http://www.ossez.com/forum.php?mod=viewthread&tid=761
http://wiki.debian.org.hk/w/Where_can_I_find_fonts_for_GNU/Linux
2015年11月26日星期四
在Centos中添加SWAP
在DigitalOcean 的 VPS中用yum update時出現了以下錯誤:
" ... cannot allocate memory ..."
VPS雖然只有512M,但仍未用完。但是沒有SWAP。
Google 後發現,原來真是RAM不足,可能是在安裝過程中某個套件需要更多的RAM吧!不想升VPS計劃,因該主機工作簡單,沒必要用更多RAM的計劃。那只好加SWAP了,反正用的是SSD,速度已不錯的。
以下是在centos7.1中做一個2GB swap的步驟:
1. 生成一個2GB檔案,用來做SWAP
$ dd if=/dev/zero of=/swapfile bs=1024 count=2M
2. 轉"swapfile"為SWAP格式
$ mkswap /swapfile
開啟SWAP
$ swapon /swapfile
查看情況
$ top
KiB Mem : 501144 total, 47088 free, 318512 used, 135544 buff/cache
KiB Swap: 2097148 total, 2006484 free, 90664 used. 63632 avail Mem
3. 修改 fstab, 使reboot後可自行加載swap
$ vi /etc/fstab
加入以下一行
/swapfile swap swap defaults 0 0
完成!
Ref:
https://www.centos.org/docs/5/html/5.2/Deployment_Guide/s2-swap-creating-file.html
" ... cannot allocate memory ..."
VPS雖然只有512M,但仍未用完。但是沒有SWAP。
Google 後發現,原來真是RAM不足,可能是在安裝過程中某個套件需要更多的RAM吧!不想升VPS計劃,因該主機工作簡單,沒必要用更多RAM的計劃。那只好加SWAP了,反正用的是SSD,速度已不錯的。
以下是在centos7.1中做一個2GB swap的步驟:
1. 生成一個2GB檔案,用來做SWAP
$ dd if=/dev/zero of=/swapfile bs=1024 count=2M
2. 轉"swapfile"為SWAP格式
$ mkswap /swapfile
開啟SWAP
$ swapon /swapfile
查看情況
$ top
KiB Mem : 501144 total, 47088 free, 318512 used, 135544 buff/cache
KiB Swap: 2097148 total, 2006484 free, 90664 used. 63632 avail Mem
3. 修改 fstab, 使reboot後可自行加載swap
$ vi /etc/fstab
加入以下一行
/swapfile swap swap defaults 0 0
完成!
Ref:
https://www.centos.org/docs/5/html/5.2/Deployment_Guide/s2-swap-creating-file.html
2015年11月11日星期三
列出檔案清單
本文以WINDOWS 7作實驗,其他WINDOWS系統都應該杷同。
目標:
列出指定目錄及所有子目錄中的檔案,匯出成一個檔案。
1. 將 Windows console 轉成UTF-8編碼
不知為何,Windows的console不是UTF-8編碼的,如此一來,有部分檔案名會亂碼,必須將編碼轉成UTF-8。
在console執行
$ chcp 65001
2. 列出檔案清單
先列子目錄,以檔案名+日期(舊到新)排序,匯出到檔案 "list_all.txt"
$ dir /s /ognd > list_all.txt
/S 顯示指定目錄及所有子目錄中的檔案。
完成!
ref:
1. http://blog.darkthread.net/post-2011-08-11-command-prompt-codepage.aspx
2. http://superuser.com/questions/269818/change-default-code-page-of-windows-console-to-utf-8
3. windows help
DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
[/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]
[drive:][path][filename]
指定要顯示的磁碟機、目錄或檔案。
/A 依照指定的檔案屬性來顯示檔案。
attributes D 目錄 R 唯讀檔
H 隱藏檔 A 保存檔
S 系統檔案 - 無意義
L 重新分析點 - 首碼表示否定
/B 使用單純格式 (沒有標頭資訊或摘要)。
/C 顯示檔案大小千位數分隔符號。這是預設值。使用 /-C 來停用
分隔符號的顯示。
/D 與寬的列表格式相同,但是依照欄來排序。
/L 使用小寫顯示。
/N 使用新的長列表格式,檔名會顯示在最右方。
/O 依照指定的排序順序來列出檔案。
sortorder N 依名稱 (英文字母) S 依大小 (最小的在前)
E 依副檔名 (英文字母) D 依照日期與時間 (日期較早的在前)
G 先列出子目錄 - 表示相反的順序
/P 當資料填滿整個螢幕時暫停顯示。
/Q 顯示檔案擁有者。
/R 顯示檔案的替代資料流。
/S 顯示指定目錄及所有子目錄中的檔案。
/T 指定用來顯示或排序的時間欄位
timefield C 建立
A 上次檔案存取時間
W 上次寫入檔案時間
/W 使用寬的列表格式。
/X 顯示對非 8.3 格式的檔案產生的短檔名。這個格式和 /N 相同,
但是短檔名會插入在長檔名之前。如果沒有長檔名存在,該處會
顯示空白。
/4 顯示四位數的年份
參數可能會在 DIRCMD 環境變數預先設定。您可以在任何參數使用連字號字首(-)
來覆蓋預先的設定--例如: /-W
目標:
列出指定目錄及所有子目錄中的檔案,匯出成一個檔案。
1. 將 Windows console 轉成UTF-8編碼
不知為何,Windows的console不是UTF-8編碼的,如此一來,有部分檔案名會亂碼,必須將編碼轉成UTF-8。
在console執行
$ chcp 65001
2. 列出檔案清單
先列子目錄,以檔案名+日期(舊到新)排序,匯出到檔案 "list_all.txt"
$ dir /s /ognd > list_all.txt
/S 顯示指定目錄及所有子目錄中的檔案。
/O 依照指定的排序順序來列出檔案。
sortorder N 依名稱 (英文字母) S 依大小 (最小的在前)
E 依副檔名 (英文字母) D 依照日期與時間 (日期較早的在前)
G 先列出子目錄 - 表示相反的順序
sortorder N 依名稱 (英文字母) S 依大小 (最小的在前)
E 依副檔名 (英文字母) D 依照日期與時間 (日期較早的在前)
G 先列出子目錄 - 表示相反的順序
ref:
1. http://blog.darkthread.net/post-2011-08-11-command-prompt-codepage.aspx
2. http://superuser.com/questions/269818/change-default-code-page-of-windows-console-to-utf-8
3. windows help
DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
[/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]
[drive:][path][filename]
指定要顯示的磁碟機、目錄或檔案。
/A 依照指定的檔案屬性來顯示檔案。
attributes D 目錄 R 唯讀檔
H 隱藏檔 A 保存檔
S 系統檔案 - 無意義
L 重新分析點 - 首碼表示否定
/B 使用單純格式 (沒有標頭資訊或摘要)。
/C 顯示檔案大小千位數分隔符號。這是預設值。使用 /-C 來停用
分隔符號的顯示。
/D 與寬的列表格式相同,但是依照欄來排序。
/L 使用小寫顯示。
/N 使用新的長列表格式,檔名會顯示在最右方。
/O 依照指定的排序順序來列出檔案。
sortorder N 依名稱 (英文字母) S 依大小 (最小的在前)
E 依副檔名 (英文字母) D 依照日期與時間 (日期較早的在前)
G 先列出子目錄 - 表示相反的順序
/P 當資料填滿整個螢幕時暫停顯示。
/Q 顯示檔案擁有者。
/R 顯示檔案的替代資料流。
/S 顯示指定目錄及所有子目錄中的檔案。
/T 指定用來顯示或排序的時間欄位
timefield C 建立
A 上次檔案存取時間
W 上次寫入檔案時間
/W 使用寬的列表格式。
/X 顯示對非 8.3 格式的檔案產生的短檔名。這個格式和 /N 相同,
但是短檔名會插入在長檔名之前。如果沒有長檔名存在,該處會
顯示空白。
/4 顯示四位數的年份
參數可能會在 DIRCMD 環境變數預先設定。您可以在任何參數使用連字號字首(-)
來覆蓋預先的設定--例如: /-W
訂閱:
文章 (Atom)