---
# System prepended metadata

title: Install CentOS 7.6 on new server
tags: [server, tutorial]

---

###### tags: `tutorial` `server`
# Install CentOS 7.6 on new server 
* **在開始之前**
**以下指令皆在root user下執行**
**關於這些指令在做什麼，建議先閱讀鳥哥[https://linux.vbird.org/linux_basic/centos7/](https://)**
**若安裝遇到問題，建議查套件的官方文件**
## lvm磁區分割建議
| Partition | Recommand Size | 
| --------  | --------       |
|/          |250Gib ↑↑       |
|/boot      |1024Mib         |
|/boot/efi  |200Mib          |
|swap       |16Gib           |
|/home      |free of disk    |
> Ref. https://docs.centos.org/en-US/centos/install-guide/CustomSpoke-x86/#sect-recommended-partitioning-scheme-x86
## 裝好之後
1. 先把net-tools, vim, wget裝起來
`yum install net-tools vim wget -y`
2. 更新全部套件
`yum update -y`
3. 停用NetworkManager(optional)
```
systemctl stop NetworkManager
systemctl disable NetworkManager
```
## 改hostname
`hostnamectl set-hostname [hostname]`
幫電腦取個名字ヾ(≧▽≦*)o
## 設定SELinux
`vim /etc/selinux/config`
把 `enforce` 改成 `permissive`
改完要重啟電腦才會生效
`reboot`
### 鳥哥
http://linux.vbird.org/linux_basic/0440processcontrol.php#selinux
## ssh相關設定(很重要)
* 禁用root登入
`vim /etc/ssh/sshd_config`
找到 `#PermitRootLogin yes`
改成  `PermitRootLogin no` **(記得#要拿掉)**
* 限制可登入主機的ip範圍
  1. `vim /etc/hosts.allow`
  加入
  `sshd:140.117.69.:allow` 
  只允許69段ip登入
  2. `vim /etc/hosts.deny`
  加入
  `sshd:ALL`
  所有登入都被禁止
  重啟ssh才會生效
  `systemctl restart sshd`
>   hosts.allow和hosts.deny若相衝則hosts.allow優先，所以這樣設定會達成限定只有管院69段ip能登入的效果

#### 小補充:在client端用ssh登入遠端電腦之後，要登出時打exit就登出了
## 安裝Apache
`yum install httpd -y`
* 啟用開機自動啟動apache
`systemctl enable httpd`
* 啟動apache
`systemctl start httpd`
* 設定http service通過防火牆
`firewall-cmd --add-service=http --zone=public --permanent `
開好之後重啟防火牆
`firewall-cmd --reload`
* 關閉ipv6
編輯/etc/sysctl.conf，加入底下兩行：
`net.ipv6.conf.all.disable_ipv6 = 1`
`net.ipv6.conf.default.disable_ipv6 = 1`
## 安裝MySQL
* 安裝MySQL Yum repository
`wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm`
`yum localinstall mysql57-community-release-el7-11.noarch.rpm`
* 安裝MySQL
`yum install mysql-community-server`
* 啟動
`systemctl start mysqld`
* 查看狀態
`systemctl status mysqld`
> 為了資料庫的安全性，MySQL在安裝後會為root產生一組隨機密碼放在/var/log/mysqld.log中
> 
* 查看臨時生成的帳號密碼
```
[root@localhost user]# grep 'temporary password' /var/log/mysqld.log
2019-09-23T12:12:03.645181Z 1 [Note] A temporary password is generated for root@localhost: 0/C<b2wK,A)u
```
其中 *0/C<b2wK,A)u* 就是預設密碼，修改密碼需進入MySQL指令模式修改
```
[root@localhost user]# mysql -u root -p
Enter password:[0/C<b2wK,A)u]
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassWord!';
```
***密碼須包含一個大寫字母、一個小寫字母、一個數字和一個特殊符號，且長度至少為8字元 ╯︿╰***

## 安裝PHP
* 安裝 EPEL Repository
`yum install epel-release`
* 安裝 Remi Repository
`yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm`
* 停用PHP5.4 Repo
> Remi Repo預設會安裝PHP5.4，需要停用才能安裝PHP7.3
> 要達成這個目的需透過yum-config-manager這個指令，而這個指令包含在yum-utils指令集
* 安裝yum-utils
`yum install -y yum-utils`
* 停用Repo
`yum-config-manager --disable remi-php54`
* 啟用PHP7.3 Repo
`yum-config-manager --enable remi-php73`
* 安裝PHP
`yum -y install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json`
* 檢查是否安裝成功
```
[root@localhost ~]$ php -v
PHP 7.3.9 (cli) (built: Aug 27 2019 22:52:39) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.9, Copyright (c) 1998-2018 Zend Technologies
```
## 安裝docker
* 設定repo
`sudo yum install -y yum-utils 
 device-mapper-persistent-data 
 lvm2`
* 設定stable repo
`sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo`
* 安裝docker engine - COMMUNITY
`sudo yum install -y docker-ce docker-ce-cli containerd.io`
***有可能會需要輸入 GPG key, verify that the fingerprint matches***
`060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35`
* 啟動docker
`systemctl start docker`
* 測試是否安裝成功
`docker run hello-world`
* 查看運行中的docker container
`docker ps -a`
> 官方安裝文件 : https://docs.docker.com/install/linux/docker-ce/centos/
### 安裝docker-compose
* 下載最新穩定版docker-compose(去官網找最新的，下面指令絕對是舊的)
`curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose`
* 設定docker-compose binary的可執行權限
`chmod +x /usr/local/bin/docker-compose`
* 測試是否安裝成功
```
[root@localhost ~]# docker-compose --version
docker-compose version 1.24.1, build 4667896b
```
> 官方安裝文件 : https://docs.docker.com/compose/install/#install-using-pip
### 使用non-root user管理docker
* 先建立docker群組(通常安裝完就有了，不用自己建立)
`groupadd docker`
* 將要設為管理者的user加入docker群組
`usermod -aG docker $(user)`
**需重新登入才會生效**