RHEL / CentOS 設定 Logrotate 實現記錄檔輪替

在 Linux 如果用套件管理工具 (例如 yum, dnf, apt-get) 安裝套件, 一般會設定好 logrotate 做記錄檔輪替, 但如果套件是自行編譯安裝, 或者是自行開發的系統 (例如 Shell Script), 除了可以自行編譯記錄檔輸替的功能外, 也可以用 Logrotate 實現。Logrotate 的設定檔是 /etc/logrotate.conf, 用作設定 Logrotate 的預設參數, 而 /etc/logrotate.d/ 目錄下建立需要輪替的記錄檔, 每項服務一個檔案, 這樣對日後維護及管理也會較方便。我的 …

MySQL / MariaDB 用 logrotate 替 Log 記錄檔輪替

MySQL 或 MariaDB 的 Log 記錄檔可以紀錄 MySQL 的錯誤, 對伺服器的除錯很有用, 但這個 MySQL Log 記錄檔跟其他 log 一樣, 不理它會一直增大容量, 而 MySQL 內置沒有記錄檔輪替的功能, 要做記錄檔輪替需要借用其他工具, 可以是自行編寫 Shell Script 或 logrotate, 以下文章會示範在用 logrotate 將 MySQL 的 …

MySQL / MariaDB 修改資料插入上限 max_allowed_packet

在 MySQL / MariaDB 插入資料時,每筆資料也會有限制,預設值是 16MB,其實這個 16MB 的限制已經很寬鬆,一般情況都會夠用,但如果將檔案 (例如圖片) 直接儲存在 MySQL 的話,便有可能出現錯誤,當用 inert 插入 或 update 更新的資料超過限制的話,會出現以下錯誤:Error 1153 – Got a packet bigger than ‘max_allowed_packet’ bytes要解決這個問題可以修改 MySQL 的 max_allowed_packet 變數。在修改前可以先查看目前的 …

解決 PHP 錯誤 – Allowed memory size exhausted

PHP 其中一個常見的錯誤 “Allowed memory size exhausted”,這是由於執行的 PHP 程式使用的記憶體超出 PHP 設定的限制,要解決可以很簡單地修改 php.ini 檔案內的 memory_limit 選項即可。首先開啟 php.ini,在 RHEL 及 CentOS 用 yum 安裝的 PHP,預設路徑是 /etc/php.ini: # vi /etc/php.ini 找到 “memory_limit” 的一行,將原來的 128M …

解決 “Could not chdir to home directory”

如果 Linux 帳號的 home directory 不存在,在登入帳號後,會出現以下找不到 home directory 的錯誤:Could not chdir to home directory /home/username: No such file or directory出現這個錯誤的原因,是帳號的 home directory 不存在 (可能錯誤刪除,或者建立帳號時沒有建立目錄),或者權限問題所致。要解決可以重新建立缺少的 home directory,例如 home directory 在 /home/username,可以用以下指令建立目錄及設定權限: …

vi / vim 開啟多個檔案

vi 在 Unix 環境作業系統下常用的文字編輯器,如果想在 vi 或 vim 同時開啟多個檔案,可以用以下方法:開啟 file1 file2: $ vi file1 file2 fileN 開啟所有 .php 副檔名的檔案: $ vi *.php 當開啟了多個檔案後,在 vi 可以用以下指令在檔案間進行切換操作:列出開啟了的檔案: 切換到下一個檔案: 切換到上一個檔案: 以檔案名稱作為切換: 如果是使用 vim,上面指令可以支援使用 Tab …

Linux 隱藏 GRUB 開機選單

GRUB 是 Linux 下十分常用的開機管理工具, 主要作用是在不同作業系統或 kernel 選擇要啟動的項目, 以下文章會介紹將 GRUB 啟動選單隱藏的方法。要隱藏 GRUB 啟動選單, 需要編輯 GRUB 的設定檔 /etc/default/grub, 在編輯前先進行備份, 以免設定錯誤不能啟動: $ sudo cp /etc/default/grub /etc/default/grub.bak 備份了 GRUB 設定檔案, 可以修改設定, 開啟 /etc/default/grub: $ …

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 的 crypt 函式取得加密密碼的字串,執行以下指令:然後系統會印出加密了的密碼,將這個密碼複製,放入 .htpasswd 檔案: …

Nginx 設定 http 自動導向 https

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