CentOS 7 個性化配置指南

来源:https://www.cnblogs.com/leviatan/archive/2019/02/12/10366988.html
-Advertisement-
Play Games

博客原文地址: "CentOS 7 個性化配置指南 Wind Spirit" 0x00 前言 該教程主要安裝瞭如下軟體包 iptables MySQL PHP PHP 相關模塊 Nginx 主要配置實現了以下功能 修改軟體源 修改 PS1,更改配色 SSH 每隔 30 秒發送一個心跳包 修改 ipt ...


博客原文地址:CentOS 7 個性化配置指南 - Wind Spirit

0x00 前言

該教程主要安裝瞭如下軟體包

iptables
MySQL
PHP
PHP 相關模塊
Nginx

主要配置實現了以下功能

修改軟體源
修改 PS1,更改配色
SSH 每隔 30 秒發送一個心跳包
修改 iptables 規則,開放埠
修改 MySQL 密碼
修改 PHP-FPM 的工作模式
使 Nginx 支持解析 .php 文件

大部分軟體的配置文件被修改後需要重啟進程才能應用更改

為了配置方便我個人習慣先切換到 root 許可權,使用如下命令並輸入密碼

註意:這是一種錯誤的,不良的習慣,在 root 許可權下任何行為都不會受到系統的限制,因此導致的任何後果需要自己承擔

sudo -s

註意:這是一種錯誤的,不良的習慣,在 root 許可權下任何行為都不會受到系統的限制,因此導致的任何後果需要自己承擔

註意:在 linux 中被要求輸入的密碼都是不可見的

正確的做法應該是以用戶許可權執行如下命令

sudo 命令

註意:這是一種錯誤的,不良的習慣,使用 -y** 參數執行的命令會直接跳過用戶確認的流程,因此導致的任何後果需要自己承擔**

本文中大部分命令使用了 -y 這一參數,該參數的含義是在執行命令的過程中預設確認所有需要用戶手動確認的提示,例如安裝或卸載軟體包時明確告知用戶該動作涉及哪些依賴包

註意:這是一種錯誤的,不良的習慣,使用 -y** 參數執行的命令會直接跳過用戶確認的流程,因此導致的任何後果需要自己承擔**

正確的做法是執行命令後等待系統提示確認,再根據提示手動輸入類似 y/yes/n/no 的關鍵詞,然後按下 回車 執行

0x01 SSH

使 SSH 服務每隔30秒發送一個心跳包,用來保持 SSH 連接

echo "ClientAliveInterval 30" >> /etc/ssh/sshd_config

重啟 sshd

systemctl restart sshd

0x02 修改 PS1 配色

自帶的配色實在太難看了

將 PS1 也就是控制配色的變數寫入 ~/.bashrc

bash 在每次啟動時都會載入 .bashrc 文件的內容

echo "PS1='\${debian_chroot:+(\$debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\\$ '" >> ~/.bashrc

應用更改後的 ~/.bashrc

source ~/.bashrc

0x03 修改源

由於大家都懂的原因,CentOS 的預設源訪問速度賊慢或者根本無法訪問,所以替換成國內服務商的源,這裡用的是阿裡雲的

wget 下載源列表到 /etc/yum.repos.d/ 並重命名為 CentOS-AliCloud.repo

wget -O /etc/yum.repos.d/CentOS-AliCloud.repo http://mirrors.aliyun.com/repo/Centos-7.repo

如果這一步發生錯誤,可能是因為沒有安裝 wget 使用如下命令安裝

yum install -y wget

安裝 epel 源

EPEL 全稱 Extra Packages for Enterprise Linux,是由 Fedora 社區為 RHEL 系 Linux 打造的軟體源,比官方發佈的源更新,質量更高

yum 全稱 Yellow dog Updater, Modified,是 RHEL 系 Linux 上的軟體包管理工具

yum install -y epel-release

清除並重建 yum 緩存

yum clean all
yum makecache

檢查並應用已安裝軟體包的可用升級

yum update -y

0x04 小工具

一些我自己經常用到的工具類軟體包

yum install -y bash-completion curl git unzip htop yum-utils lsof tree

具體用法請移步如下鏈接

Baidu
Google

0x05 開發/編譯工具

一些我自己經常用到的用於開發或編譯的軟體包,同時也作為很多第三方軟體的依賴包,建議安裝

yum install -y vim gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

0x06 卸載 firewalld

firewalld 是系統自帶的防火牆,emmmmmm,很辣雞

停止 firewalld 服務

systemctl stop firewalld

關閉 firewalld 的開機自啟

systemctl disable firewalld

卸載 firewalld

yum remove -y firewalld

0x07 安裝 iptables-servers

這是一個我自己用著比較舒服的防火牆

yum install -y iptables-services

啟動 iptables

systemctl start iptables

設置 iptables 開機自啟

systemctl enable iptables

0x08 systemctl

單獨說一下 systemctl

systemctl 是一個 systemd 工具,主要負責控制 systemd 系統和服務管理器

systemd 是一個系統管理守護進程、工具和庫的集合,用於取代 system V 初始進程,systemd 的功能是用於集中管理和配置類 UNIX 系統

在 Linux 生態系統中,systemd 被部署到了大多數的標準 Linux 發行版中,只有為數不多的幾個發行版尚未部署

在平時的工作中主要會用到以下幾種參數,以 iptables 為例,其中服務名可以簡寫為 iptables,也可以寫全稱 iptables.service

啟動 iptables 服務

systemctl start iptables

停止 iptables 服務

systemctl stop iptables

重載 iptables 服務

如果修改了服務的配置文件,建議重啟而不是重載

systemctl reload iptables

重啟 iptables 服務

systemctl restart iptables

開啟 iptables 開機自啟

systemctl enable iptables

關閉 iptables 開機自啟

systemctl disable iptables

0x09 配置 iptables 規則

該規則主要控制可以從外部訪問哪些埠,預設應該只有 22 埠,用於 SSH 訪問,請勿刪除,刪除 22 埠訪問許可權會導致無法通過 SSH 登陸伺服器

這裡直接用 sed 添加到 iptables 的配置文件里,常規的做法是使用 vim 打開配置文件,並手動添加

sed -i '/-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT/a-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT' /etc/sysconfig/iptables
sed -i '/-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT/a-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT' /etc/sysconfig/iptables
sed -i '/-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT/a-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT' /etc/sysconfig/iptables

這裡添加了三條規則,對應三個埠

80:web 服務
443:web 服務中的 https
3306:MySQL

重啟 iptables

systemctl restart iptables

0x10 導入 MySQL 5.7 鏡像源

這個是 MySQL 自己的源,用著比較舒服,直接安裝這一個就可以解決所有依賴項

目前 MySQL 5.7 是穩定版本中最新的,雖然現在已經有 MySQL 8.0 了,但 8.0 還不成熟,而且他的上一個版本就是 5.7,中間沒有 6.0 和 7.0

yum install -y http://repo.mysql.com/mysql57-community-release-el7.rpm

安裝 mysql-server

yum install -y mysql-server

啟動 MySQL 並設置開機自啟

systemctl start mysqld
systemctl enable mysqld

0x11 查詢 MySQL 預設密碼

MySQL 在安裝後會設置一個預設密碼,使用 grep 工具查詢安裝日誌中包含 password 關鍵詞的行並輸出

grep "password" /var/log/mysqld.log

應該會輸出這樣一行日誌

時間 [Note] A temporary password is generated for root@localhost:

不管後邊的字元有多奇怪,那個就是密碼

登錄 mysql

mysql -u root -p

輸入密碼後進入 MySQL 控制台

0x12 修改 MySQL 密碼

MySQL 要求密碼至少符合以下條件

數字、小寫字母、大寫字母 、特殊字元、長度至少8位

但這種要求可能不適合一些記不住密碼的人,所以直接寫出來修改規則的方式

註意:這是一種錯誤的,不良的習慣,低安全等級的密碼可能遭到攻擊甚至意料之外的訪問、修改及數據泄露,因此導致的任何後果需要自己承擔

設置密碼安全等級為 0

mysql> SET GLOBAL VALIDATE_PASSWORD_POLICY = 0;

設置密碼最小長度為 1

mysql> SET GLOBAL VALIDATE_PASSWORD_LENGTH = 1;

註意:這是一種錯誤的,不良的習慣,低安全等級的密碼可能遭到攻擊甚至意料之外的訪問、修改及數據泄露,因此導致的任何後果需要自己承擔

更改密碼為 passwd

註意:passwd 是個示例密碼,安全度極低,請自己修改

mysql> ALTER USER USER() IDENTIFIED BY 'passwd';

允許 root 使用 passwd 從任意主機連接

註意:passwd 是個示例密碼,安全度極低,請自己修改

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'passwd' WITH GRANT OPTION;

退出 mysql 控制台

mysql> exit

0x13 安裝 nginx

yum install -y nginx

啟動 nginx 並設置開機自啟

systemctl start nginx
systemctl enable nginx

0x14 修改 nginx 基礎配置

備份 nginx.conf 為 nginx.conf.bak,並將 nginx.conf.default 複製為nginx.conf

mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf

nginx 配置文件中使用 { } 來標識配置文件塊,本文中只修改使其支持 php 的部分

打開 nginx 配置文件

vim /etc/nginx/nginx.conf

i 鍵進入編輯模式

http -> server 塊中添加如下配置

location ~ \.php(.*)$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
    include        fastcgi_params;
        }

按鍵盤左上角的 ESC 鍵退出編輯模式,直接輸入如下命令保存並退出

:wq

重啟 nginx

systemctl restart nginx

0x15 mv 命令

mv 命令全稱 move

常用的功能如下

將文件 test 更名為 abc

mv test abc

將文件 test 移動到 /home/ 目錄下

mv test /home

0x16 修改網站根目錄

預設的網站根目錄位於 /usr/share/,我個人不太習慣,所以修改到 /var/www/html/

建立 /var/www/ 文件夾

mkdir -p /var/www

將 /usr/share/nginx/html/ 下的 html/ 目錄移動到 /var/www/

mv /usr/share/nginx/html/ /var/www/

在 /usr/share/nginx/ 處建立 /var/www/html/ 的軟鏈接並命名為 html

ln -s /var/www/html /usr/share/nginx/html

重啟nignx

systemctl restart nginx

0x17 安裝 PHP 7.2

安裝 remi 源

remi 是一個包含 PHP、MySQL 等工具的軟體源

yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm

啟用 PHP 7.2 倉庫

該命令屬於 yum-utils

yum-config-manager --enable remi-php72

安裝 PHP 7.2

yum install -y php72

安裝 PHP 模塊

使用 remi 安裝的 PHP 7.2 在安裝模塊時的首碼均為 php72-php-

yum install -y php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysql php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache

啟動 PHP-FPM 並設置開機自啟

PHP-FPM 是一個 PHP FastCGI 進程管理器,並且直接被整合進 PHP 中

systemctl start php72-php-fpm
systemctl enable php72-php-fpm

修改 PHP-FPM 進程保留設置

php-fpm 的進程在創建後並不會直接退出,並且會占用大量記憶體,修改配置文件中的運行方式可以節省大量記憶體

sed -i 's/^pm = dynamic/pm = ondemand/' /etc/opt/remi/php72/php-fpm.d/www.conf

重啟 PHP-FPM

systemctl restart php72-php-fpm

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • /*方法其實很簡單,將下麵的方法放在你的類裡面就能用了,要是看不懂原理的話回去補補小學的知識,哈哈。*/public static int GCD() { Scanner input = new Scanner(System.in); //不要忘了引入方法 int a = input.nextInt... ...
  • 在作完預備的初始化和session測試後,到了作為一個權鑒別框架的核心功能部分,確認你是誰--身份認證(Authentication)。 本文涉及到token的構建,框架結構下認證行為的調用,realm中授權數據的獲取、登錄信息比較,login過程中對已有有subject、session的處理 ...
  • 新年第一篇博文,接著和大家分享springcloud相關內容;本次主要內容是使用cloud結合zookeeper作為註冊中心來搭建服務調用,前面幾篇文章有涉及到另外的eureka作為註冊中心,有興趣的朋友會回顧下上幾篇文章。 springcloud版本說明 docker快速啟動一個zookeeper ...
  • 1.泛型:先聲明,延遲編譯。 public static void DoSome<T>(T t) { Console.WriteLine(t); } 這個方法就是泛型方法,先申明參數為T,不知道具體是什麼類型。 使用的時候DoSome<int>(1); DoSome<string>("hello") ...
  • 效果:兩個DataGrid的滾動條實現同步滾動。 代碼參考了博客園chuncn的文章《.net中同步多個ScrollViewer滾動的四種方法》,原文是針對ListBox的。現改為針對DataGrid,略微作了修改,代碼以水平滾動條為例。 原文地址:https://www.cnblogs.com/c ...
  • EF是 EntityFramework 的簡稱。在程式和資料庫交互的過程中,起到了極大的方便。 首先在需要使用EF的項目單擊,然後 Ctrl+Shift+a 找到ADO.NET實體數據模型。 首先在需要使用EF的項目單擊,然後 Ctrl+Shift+a 找到ADO.NET實體數據模型。 單擊添加後, ...
  • 在使用notepad++工具的時候,很多情況下我們會遇到批量替換空行的操作,之前的操作方法是快捷鍵Crtl+h調出視窗選擇替換欄,在查找目標欄中輸入\r\n\r\n,替換為 欄中輸入\r\n並選擇全部替換,可實現批量刪除空行的操作。隨著Visual Studio Code的普及,之前notepad+... ...
  • 請給出如下格式的date命令 例:19-01-18.再給出實現按周輸出 比如:周六輸出為6,請分別給出命令。 解答: 方法1: [root@zhaokang ~]# date2019年 01月 17日 星期四 07:41:14 CST[root@zhaokang ~]# LANG=en[root@z ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...