1. 程式人生 > >centos7裝機與基礎配置

centos7裝機與基礎配置

# centos7裝機與基礎配置

Linux是一套免費使用和自由傳播的類Unix作業系統,也是常見的伺服器作業系統之一。Linuxdistributions有很多,工作室的伺服器普遍採用CentOS,它是RedHatLinux的社群版。下面以CentOS7-Minimal為例,講解linux伺服器的安裝和簡單配置。

## 虛擬機器VirtualBox安裝

linux初學者不推薦直接在個人電腦上安裝linux系統,由於各種驅動的問題,其過程會比較艱辛=_=,不過非常歡迎作死!

一般將Linux安裝在虛擬機器中。可選的虛擬機器有很多,如Windows/MacOS著名的VMware Workstation

Mac上常用的Parallel Desktop,這裡推薦輕量但功能齊全的開源虛擬機器Oracle VM VirtualBox

1.jpg

安裝完成後,開啟Virtualbox,看看安裝成功了沒,沒有就gg

## CentOS7安裝

2.jpg

選擇任意國內映象下載,注意一些常見的國內映象站,如ustc(中科大),163(養豬場),tuna(清華),sjtu(上交)。

另外centos7只支援64位(x86_64架構)的計算機,如果你的古董32位電腦需要安裝centos,可以在官網下載頁(如下圖)點選alternative downloads,選擇i386架構的centos6.8下載安裝。你也可以選擇debian

支援32位的版本。

Pasted Graphic 3.tiff


同樣的,你也可以選擇在工作室內網網盤SeaFile上下載centos7映象。

系統映象下載完成後,進入virtualbox,選擇new新建一個虛擬機器,取一個你喜歡的名字,型別選擇linux,版本選擇RedHat(64bit)

Pasted Graphic 4.tiff

記憶體根據需求選定,不要超過總記憶體的1/2

Pasted Graphic 5.tiff

繼續,預設設定

Pasted Graphic 6.tiff

Pasted Graphic 7.tiff

Pasted Graphic 8.tiff

總大小根據需求選擇,不要過分擔心容量問題,因為測試機不會存放很多檔案,其次之後有辦法擴容。

選擇建立之後,你會看到左側出現了剛剛建立好的虛擬機器。

Pasted Graphic 9.tiff

現在點選start開始安裝系統,這裡我們選擇需要掛載的映象檔案,如果你之前安裝過,列表中應該出現了之前的映象名稱,否則我們需要點選右側的按鈕開啟檔案。

Pasted Graphic 11.tiff

開始安裝,選擇校驗檔案完整性後安裝(第二項)

Pasted Graphic 12.tiff

選擇語言後進入到安裝介面

Pasted Graphic 14.tiff

進入到NETWORK & HOST NAME中,把乙太網Ethernet開啟,Ethernet後面的括號就是目前網絡卡的名字,如這裡的enp0s3。完成後選擇done回到主頁

Pasted Graphic 17.tiff

接下來選擇時間,時區選到上海,開啟網路時間。如果你的網路連線外網有障礙,請手動新增國內的ntp服務,如time1.aliyun.com

Pasted Graphic 16.tiff

其他項根據自己的喜好設定。最後進入到INSTALLATION DESTINATION,選擇安裝硬碟。一般預設設定就足夠了,完成安裝後再使用LVM管理分割槽。如果你的計算機是混合儲存型(硬碟+ssd),你可以像很多教程一樣,在高速儲存的ssd上單獨設定一個/swap分割槽用作快取。(詳細的教程之後新增)

Pasted Graphic 18.tiff

設定完成後,開始安裝吧。

安裝過程中需要設定root使用者密碼,也可以建立一個自己的專屬賬戶(後面會介紹使用者管理)

Pasted Graphic 19.tiff

安裝過程中,可以回到主介面(用快捷鍵退出滑鼠捕獲,預設Mac是左CMD鍵,win是右Ctrl),選擇Settings-Network,選擇橋接模式以及需要橋接的主機網路,一般是wifiethernet(網線),如果你的主機換了網路接入方式而導致虛擬機器網路不通,記得到這裡檢視和更改網路哦。

Pasted Graphic 20.tiff

安裝完成,火車要啟動了555555

## 使用者新增與許可權修改(beta

root登入,非root賬戶suroot賬戶,或者將使用者新增到sudoers,使用sudo命令執行。

新增賬戶使用useradd -cdgGsu NEWUSER 命令:

引數:

-c comment 指定一段註釋性描述。

-d 目錄指定使用者主目錄,如果此目錄不存在,則同時使用-m選項,可以建立主目錄。

-g 使用者組指定使用者所屬的使用者組。

-G 使用者組,使用者組指定使用者所屬的附加組。

-s Shell檔案 指定使用者的登入Shell

-u 使用者號指定使用者的使用者號,如果同時有-o選項,則可以重複使用其他使用者的標識號。

舉例子 useradd -d /var/test/sademo -m -g root sademo

新增sademo使用者,加入到root組,使用者的跟目錄地址在/var/testsademo

sademo設定密碼,使用passwd sademo命令

## 網路通暢性檢查

#首先介紹幾個常用的網路命令:

#ipcentos7 ifconfigcentos6/macifup/ifdown  lsof 

ip addr 嘗試獲取本機ip

還記得之前安裝時我們檢視到的網絡卡名字嗎,demo安裝的網絡卡名字是enp0s3。如下圖所示,ip addr顯示的結果中,enp0s3 沒有對應的ip資訊——“inet xxx.xxx.xxx.xxx”,說明目前是沒有網路的。我們可以ping一下區域網驗證一下,結果顯示 Network is unreachable,說明網路確實是不通暢的。

Pasted Graphic 6_1.tiff

網路不通暢的原因有很多。一般初始安裝的CentOS7環境網路不通的原因是網絡卡並沒有啟動。

所以我們需要手動啟動網絡卡,並且設定網路的自啟動。

vi編輯器開啟網絡卡的配置檔案 vi /etc/sysconfig/network-scripts/ifcfg-“你的網絡卡名字,得到一下下圖所示的介面。找到ONBOOT=no這一項,將no修改為yes。儲存退出。

Pasted Graphic.tiff

vi編輯器的使用較為複雜,你可以先百度學習一波。這裡大致介紹一下這裡需要用到的:

方向鍵控制游標的位置,鍵盤i是插入模式(相當於MS-Word中正常的文字插入模式),修改成功後使用ESC退出插入模式,如果你手抖了刪除或者輸入錯誤了什麼東西,退出了插入模式後按u撤銷上次操作。輸入 :wq (冒號wq 冒號不要忘記了!!!)儲存修改並退出,程式提示寫入成功。

開啟網絡卡: ifup enp0s3

開啟網路並設定自啟動:systemctl enable network && systemctl start network 

現在再試試有沒有ipip addr 

Pasted Graphic 4_1.tiff

如果和上圖一樣,說明ip是有的了,顯示 inet 192.168.123.103 ,即本機ip 192.168.123.103。一般路由器啟動了DHCP協議,登入情況的不同可能導致下次登入的ip 發生了變化。如果你部署了網路服務,需要固定ip,你可以在路由器上或者網絡卡配置中修改。

我們再嘗試一下外網的連線:。如果有資料流,說明外網連線成功。

## yum源替換和新增

yum centos上的使用的軟體包管理器,是我們安裝軟體常用的方式之一。但是centos自帶的yum官方下載源國內訪問速度慢,建議更換成國內的映象源。

如果你是centos7,請執行以下命令,將源備份後替換成阿里的映象源:

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

yum makecache

(更新軟體,可選)yum update all

yum源中的軟體有限,我們新增額外軟體包epel的源,便可以下載一些常用的軟體: yum -y install epel-release

## sshd配置(禁止遠端root登陸,允許key無密碼登陸)

ssh是常用的遠端登入命令。一般centos是預設安裝了ssh的,嘗試輸入ssh,如果提示沒有這個命令,你需要使用yum install ssh安裝,並使用systemctl enable sshd && systemctl start sshd 啟動sshd服務並設定自啟動。

出於對安全性的考慮,一般伺服器都禁止直接使用root使用者登入,我們也來學習一下,你自己測試用的虛擬機器可以不用設定。

修改vi /etc/ssh/sshd_config,找到PermitRootLogin如下圖:

Pasted Graphic 8_1.tiff

將前邊的註釋號#去掉,保證後面的值為yes:wq儲存退出,systemctl restart sshd,便禁止了root遠端登入。用ssh root@centosip 測試一下,看正確輸入密碼是否也提示Permission Denied,如果是的,即設定成功。

自己的主機出於方便性的考慮、或者公司伺服器出於安全性考慮關閉了密碼登入,都要用到ssh登入的另一種方式,key登入。大致的原理就是將登入機上的生成的獨一無二的身份鑰匙傳遞到伺服器的特定位置中登記,這樣每次ssh登入時伺服器檢測到有人拿著登記過的鑰匙就放行,甚至不需要輸入密碼。

Mac 登入 CentOS7為例,我們來具體操作:

登入機操作:

ssh-keygen -t rsa ,將生成~/.ssh/id_rsa.pub scp ~/.ssh/id_rsa.pub sademo@”centosip“:~/.ssh/id_rsa.pub 上傳到伺服器中

伺服器端:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 寫入到.ssh/authorized_keys檔案裡,chmod 600 ~/.ssh/authorized_keys修改許可權

ssh登入測試一下吧。

## python環境搭建(含pip源替換)

centos7目前預設安裝了python2.7,你可以嘗試 python -V 檢視python版本。如果你沒有安裝python或者需要安裝python3,請自行yum安裝。

我們常常需要使用到基於python的各種應用和包,因此python中的包管理器pip的安裝是非常有必要的。

python ~/get-pip.py 

安裝完成,用pip -V測試一下

pip源的下載速度真的是非常緩慢,強烈建議替換成國內豆瓣映象源:

修改 ~/.pip/pip.conf (沒有就mkdir ~/.pip && touch ~/.pip/pip.conf建立一個) 修改或新增:

## LNMP環境搭建和基礎配置

Linux環境搭建基本完成,而這僅是web伺服器LNMP/LAMP環境搭建的第一步。

工作室目前採用LNMP架構,即LinuxNginxMySQLMariadb),PHP

Pasted Graphic_1.tiff

Linux就是環境所在的作業系統;Nginx則是一個「高效能的HTTP和反向代理伺服器;MySQL則是一個方便地對資料進行增刪改查的資料庫管理系統;PHP則是用來處理具體請求的後臺指令碼語言。

下面具體介紹NginxMySQLPHP環境的搭建和簡單部署:

### Nginx 安裝

首先是在 yum源替換和新增一節中提到的epel依賴庫的安裝,如果當時你沒有安裝,請使用 yum -y install epel-release 安裝

這裡介紹官網repo安裝nginx的方法:

首先建立nginxrepotouch /etc/yum.repos.d/nginx.repo

vi /etc/yum.repos.d/nginx.repo 

寫入

[nginx]

name=nginx repo

baseurl=http://nginx.org/packages/centos/7/$basearch/

gpgcheck=0

enabled=1

儲存後 yum install -y nginx 安裝

systemctl enable nginx && systemctl start nginx 設定自啟動並開啟nginx

nginx 預設監聽80埠,工作目錄在/etc/nginx,運維最常用的日誌檔案預設在/var/log/nginx中(在/etc/nginx/nginx.conf中設定

)。如果啟動nginx出現異常,請用lsof/netstat檢查端口占用情況,如果你的linux環境中有Apache,請關閉和解除安裝apache後再啟動nginx

nginx -V 檢視nginx版本

systemctl status nginx 檢視nginx工作情況

再來我們試試用lsof -i:80檢視80埠的佔用情況,發現nginx正常佔用。

我們需要在centos7的防火牆firewall中開啟80埠允許外部訪問:

firewall-cmd —add-port=80/tcp ; firewall-cmd -add-port=80/tcp —permanent

然後我們去瀏覽器上輸入伺服器地址,看看能不能載入nginx預設頁面。

Pasted Graphic 3_1.tiff

### Mysql 安裝

新版本的centos 預設使用mariadb作為mysql的替代。<https://www.zhihu.com/question/41832866> mariadb全面相容mysql,所以請放心安裝。如有需要你也可以安裝正統mysql

直接使用yum 安裝mariadb

yum install -y mariadb mariadb-server 安裝

systemctl enable mariadb && systemctl start mariadb 設定自啟動並啟動mariadb

mysql_secure_installation 開始進行MariaDB的相關簡單配置

Enter current password for root (enter for none): 第一次配置請直接回車

Set root password? [Y/n]  回車設定root賬戶

Remove anonymous users? [Y/n] 生產環境請務必刪之!!

Disallow root login remotely? [Y/n] 是否禁止root遠端登入,根據自己的需求選擇Y/n並回車,建議禁止

Remove test database and access to it? [Y/n]  是否刪除test資料庫,直接回車

Reload privilege tables now? [Y/n]  是否重新載入許可權表,直接回車

提示安裝完成後嘗試登陸:mysql -uroot -p

成功進入到mysql,安裝完成

### php環境安裝

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

yum install php56w-fpm php56w-opcache php56w-common

安裝完成後,我們來配置和測試php的解析。

開啟nginx的預設配置檔案 /etc/nginx/conf.d/default.conf 

找到

location ~ \.php$ {

        root           html;

        try_files $uri =404;

        fastcgi_pass   127.0.0.1:9000;

        fastcgi_index  index.php;

        fastcgi_param  SCRIPT_FILENAME   /script$fastcgi_script_name;

        include        fastcgi_params;

    }

這一段,如果這一段被註釋掉了請刪除註釋符號,如果沒有請新增。

這裡我們需要修改兩個地方,第一個是root,即根目錄地址,我們暫時設定為/usr/share/nginx/html,並且將fastcgi_param  SCRIPT_FILENAME 修改為 $document_root,儲存。

隨後重新載入nginx的配置檔案: nginx -t && nginx -s reload

隨後,我們在/usr/share/nginx/html 建立test.php 檔案,寫入 <?php echo phpinfo(); ?> 

Pasted Graphic 4_2.tiff