Tag: Debian & Ubuntu

Nginx 設定密碼保護目錄

在 Apache 設定密碼保護目錄會使用 .htpasswd 這種檔案,在 Nginx 有提供 auth_basic 模組,設定也很方便,以下是 Nginx 設定密碼保護目錄的方法。 首先建立儲存使用者名稱及加密密碼的檔案 .htpasswd,可以用 htpasswd 指令完成,以下會設定使用者名稱是 username,密碼檔放在 /var/www/domain.com/member/ 目錄下面: # htpasswd -c /var/www/domain.com/member/.htpasswd username 然後會出現提示,要求設定密碼。 如果系統內沒有安裝 htpasswd,可以手動建立這個檔案,每個使用者一行紀錄。 在手動建立密碼檔前,需要先用 Perl 的 …

Nginx 設定 http 自動導向 https

當網站從 http 轉換到 https 後,想自動將前往 http 的訪客自動導向到 https 頁面,以下是 Nginx 設定 http 自動轉址到 https 連線的設定方法。 以下假設網站域名是 mydomain.com, 會將所有 http 的連線自動導向到 https 的頁面, 另外會將沒有 www 的連線自動導向到 www 的網頁: 加入以下三個 block, …

檢視,搜尋,解壓 .tar / .tar.gz 內個別檔案

當 .tar 或 .tar.gz 壓縮檔容量十分大, 在解壓前想先檢視壓縮檔內的內容, 可以在 tar 指令加上 -tf 參數實現, 例如: $ tar -tf myfile 以上指令會將 myfile 內所有檔案列出, 想要進行檔案搜尋, 可以用 pipe 配合 grep 使用, 例如想列出所有 .php 檔案, 可以這樣: …

ss 指令 – 顯示網路 Socket 資訊

ss 指令的全寫是 Socket Statistics, 顧名思義,它的作用是顯示 Sockets 的統計資訊。ss 跟 netstat 指令差不多,但 ss 可以顯示更多有關 TCP / UDP 及連線狀態的資訊,而且由於 netstat 由 /proc 逐個資訊讀取,而 ss 會由 kernel 直接讀取數據,所以 ss 比 netstat 執行上更快速,尤其在連線數量多的時候。 以下是 …

Ubuntu 安裝 PHP Memcached 緩存

Memcached 是一套開放源碼的分散式記憶體快取系統, 目前已經有多個網站使用。在網站的應用上, 由於資料庫的查詢多數是讀取, Memcached 先將資料庫加以緩存, 那便可以減少資料庫的讀取, 從而增加效率。Memcached 在 PHP 另一個常用的地方是用作緩存 session。下文會示範在 Ubuntu 安裝 Memcached 及 Memcached 的 PHP 模組。 1. 安裝 Memcached 在 Ubuntu 安裝 Memcached 十分簡單, 可以直接用 …

重設 MySQL / MariaDB 忘記的 root 密碼

在安裝 MySQL 或 MariaDB 伺服器後, 當執行 mysql_secure_installation 後會完成一些基本的安全設定, 其中一項就是設定 root 的密碼。 如果在往後忘記了這個 MySQL root 密碼, 可以用以下方法重設, 以下文章會以 CentOS 環境作為例子. 首先將運行中的 MySQL Server 停止執行: # systemctl stop mariadb 或 # …

Apache 編譯錯誤 – cannot install ‘libaprutil-1.la’ to a directory

今天編譯安裝 Apache, Apache 的預設安裝目錄是 /usr/local/apache2, 但我將它安裝到 /usr/local/apache, 但在編譯時出現以下錯誤: 原因可能是之前編譯 Apache 時, 有一些紀錄是安裝到 /usr/local/apache2 所致, 解決方法是有兩個: 1. 執行 make clean 指令, 再重新編譯。 2. 將原始碼的目錄刪除, 再重新解壓 Apache 的源始碼, 再進行編譯安裝即可。

Linux find 指令的 exec 參數

Linux 下找檔案很多時會用上 find 指令,當用 find 指令找到檔案或目錄後,可以在後面加上 -exec 參數,來對每一個找到的檔案或目錄執行特定指令。 find 指令加上 -exec 參數的具體語法是這樣: $ find /path/to -name “filename” -exec command {} \; 在 -exec 前面是 find 指令找出想要的檔案,在 -exec 後面的 command …

vi / vim 搜尋並取代字串

不管系統管理還是寫程式,在檔案內對字串進行搜尋並取代十分常用,在 Unix Like 環境下常會用 sed 或 perl 做 search & replace. 如果在開啟檔案後需要取代字串,其實在 vi 及 vim 內同樣可以做搜查及取代字串,做法跟 sed 差不多,以下是 vi 做搜尋及取代的語法: :%s/search_from/replace_to/g 以上 vi 的語法會將檔案內,所有 “search_from” 的字串替換成 “replace_to”。 將上面指令最後加上一個 “c” …

用 SSH 在遠端主機執行指令

當需要在兩台主機間執行指令,可以用 SSH 直接傳送要執行的指令,該遠端主機直接執行,而無需登入另一台主機。 以下是具體指令的語法: 上面的 “user” 是登入帳號的使用者名稱,remote.server 是遠端主機,而 “ls -l” 是要執行的指令。當執行以上指令後,如果系統沒有設定自動免密碼登入,會詢問遠端主機的密碼,輸入密碼後會在遠端執行指令,並輸出執行結果。 如果要同時執行多個指令,可以用 “;” 或 “&&” 分隔,例如: 或 如果需要用 Shell Script 執行遠端指令,當需要在指令加入變數,需要將上面的單引號,改成雙引號,例如: 最後是執行類似 top 這類互動模式的指令,只要加入 -t 選項即可: 除了 top 後,也可以用在 …