## 系統更新
### 1 安裝EPEL源
yum -y install epel-release.noarch
or
sudo yum install epel-release
### 2 手動進行
升級所有包,改變軟件設置和系統設置,系統版本內核都升級
yum -y update
升級所有包,不改變軟件設置和系統設置,系統版本升級,內核不改變
yum -y upgrade
出現 `remi could not retrieve mirrorlist` 的錯誤有可能是DNS設置問題,用以下方法解決
在CentOS 7下,手工設置 /etc/resolv.conf 里的DNS,過了一會,發現被系統重新覆蓋或者清除了。和CentOS 6下的設置DNS方法不同,有幾種方式:
#### (1)使用全新的命令行工具 nmcli 來設置
#顯示當前網絡連接
#nmcli connection show
NAME UUID TYPE DEVICE
eno1 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 802-3-ethernet eno1
#修改當前網絡連接對應的DNS服務器,這里的網絡連接可以用名稱或者UUID來標識
#nmcli con mod eno1 ipv4.dns "114.114.114.114 8.8.8.8"
#將dns配置生效
#nmcli con up eno1
#### (2)使用傳統方法,手工修改 /etc/resolv.conf
修改 /etc/NetworkManager/NetworkManager.conf 文件,在main部分添加 “dns=none” 選項:
plugins=ifcfg-rh
dns=none
NetworkManager重新裝載上面修改的配置
#systemctl restart NetworkManager.service
手工修改 /etc/resolv.conf
nameserver 114.114.114.114
nameserver 8.8.8.8
## Nginx 安裝
添加nginx官方庫
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum -y install nginx
## MySQL 安裝
在CentOS命令行,運行
sudo rpm -ivh http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
將其添加到yum庫。
運行
sudo yum install mysql-server
安裝MySQL
運行
sudo systemctl start mysqld
登錄并修改MySQL的root密碼
mysql> USE mysql ;
mysql> UPDATE user SET Password = password ( 'new-password' ) WHERE User = 'root' ;
mysql> flush privileges ;
mysql> quit
允許root用戶在任何地方進行遠程登錄,并具有所有庫任何操作權限,具體操作如下:
在本機先使用root用戶登錄mysql:
mysql -u root -p"youpassword"
進行授權操作:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
重載授權表:
FLUSH PRIVILEGES;
退出mysql數據庫:
exit
win下遠程訪問可能還需要如下步驟
mysql>use mysql;
mysql>update user set password = password('newpassword') where user='root';
mysql>Flush privileges;
## PHP5.6 安裝
http://www.if-not-true-then-false.com/2010/install-apache-php-on-fedora-centos-red-hat-rhel/comment-page-3/
https://www.ifshow.com/the-new-centos-7-install-lnmp-linux-nginx-mariadb-php-and-multi-site-configuration/
## vsfptd 安裝
https://www.ifshow.com/centos-7-install-vsftpd-with-pasv-over-ssl-explicit/
## 新建ftp用戶:
useradd -d /home/ftp -g ftp -s /sbin/nologin ftptest
passwd ftptest
/etc/vsftpd/chroot_list 添加剛才的用戶
CentOS7 安裝 golang
wget https://storage.googleapis.com/golang/go1.4.linux-amd64.tar.gz
tar -xzf go1.4.linux-amd64.tar.gz
vim /etc/profile //寫在最底下
export GOROOT=/data1/go (改成自已放置的位置)
export PATH=$PATH:$GOROOT/bin
export GOPATH=/data1/goWork (改成自已放置的位置)
yum install git
go version
## 搭建ngrok
http://ekan001.com/article/38
bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":8000"
修改全局配置并立即生效
nano /etc/profile
source /etc/profile //使配置立刻生效
## CentOS 7開機啟動腳本
在/etc/rc.d/init.d這個文件中輸入的命令在開機時會執行,所以如果只是簡單語句可以直接寫進去,如果是個腳本,就可以通過這個文件去調用你自己的腳本,經過嘗試,結果開機并沒有執行,然后發現了文件中的這句話:
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
ls -l一下發現確實缺少執行權限,于是執行chmod +x /etc/rc.d/rc.local后再重啟便成功了。
## 啟動服務命令
#自啟動
systemctl enable docker.service
#關閉自啟動
systemctl disable docker.service
#顯示已啟動服務
systemctl list-units --type=service
#服務詳細信息
systemctl status docker.service
#僅顯示是否 Active
systemctl is-active docker.service
#啟動服務
systemctl start docker.service
#暫停服務
systemctl stop docker.service
#重啟服務
systemctl restart docker.service
## Centos7開放端口
Centos升級到7之后,發現無法使用iptables控制Linuxs的端口,google之后發現Centos 7使用firewalld代替了原來的iptables。下面記錄如何使用firewalld開放Linux端口:
CentOS7 防火墻
http://havee.me/linux/2015-01/using-firewalls-on-centos-7.html
開啟端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
命令含義:
--zone #作用域
--add-port=80/tcp #添加端口,格式為:端口/通訊協議
--permanent #永久生效,沒有此參數重啟后失效
重啟防火墻
firewall-cmd --reload
Laravel 空白頁
chmod -R 777 app/storage //給了權限就可以
## unzip解壓
在linux下解壓zip文件,最簡單的方式就是unzip命令直接跟上要解壓的zip文件。
unzip <zip-file>
上面的用法是把文件解壓到當前目錄下,如果要把文件解壓到指定的目錄下,需要用到-d參數。
unzip -d <dst-dir> <zip-file>
解壓的時候,有時候不想覆蓋已經存在的文件,那么可以加上-n參數。
unzip -n <zip-file>
unzip -n -d <dst-dir> <zip-file>
有時候,我們只想看一下zip壓縮包中包含哪些文件,就可以使用-l參數。
unzip -l <zip-file>
我們在使用WinZip或WinRar的時候,它顯示的文件列表還包含壓縮比率,unzip命令使用-v命令也可以看到這些信息。
unzip -v <zip-file>
我們經常會碰到這種情況,從網上下載的zip文件可能不完整,在使用WinZip或WinRar打開的時候,會報錯,unzip提供了-t參數來檢查zip文件是否損壞。
unzip -t <zip-file>
如果在unzip命令后,增加 -o的參數,則不再進行詢問,直接覆蓋原文件解壓縮,節省了很多事兒。
unzip -o filename.zip
如何把tar.gz格式文件解壓到指定目錄?
格式 :#tar zxvf *.tar.gz -C 您想指定的目錄。一個簡單例子:
比如把kleandisk-2.1.tar.gz解壓后,釋放到/home/cao目錄下。可以這樣:
#tar zxvf kleandisk-2.1.tar.gz -C /home/cao
## 基本語法:
chown [-R] 賬號名稱 文件或目錄
chown [-R] 賬號名稱:用戶組名稱 文件或目錄
參數:
-R : 進行遞歸( recursive )的持續更改,即連同子目錄下的所有文件、目錄
都更新成為這個用戶組。常常用在更改某一目錄的情況。
示例1:
[root@localhost home]# touch testfile //由 root 用戶創建文件
[root@localhost home]# ls testfile –l
-rw--w--w- 1 root root 0 Jun 7 19:35 testfile //文件的擁有者及擁有者級均為 root
[root@localhost home]# chown yangzongde testfile //修改文件擁有者為 yangzongde
[root@localhost home]# ls testfile -l
-rw--w--w- 1 yangzongde root 0 Jun 7 19:35 testfile //查看文件擁有者為 yangzongde,但組仍為 root
示例2:
chown bin install.log
ls -l
-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log
chown root:root install.log
ls -l
-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log
三、使用chgrp命令更改文件所屬用戶組
在shell中,可以使用chgrp命令來改變文件所屬用戶組,該命令就是`change group`(改變用戶組)的縮寫。需要注意的是要改變成為的用戶組名稱,必須在` /etc/group`里存在,否則就會顯示錯誤。
基本語法:
chgrp [-R] 用戶組名稱 dirname/filename ...
參數:
-R : 進行遞歸( recursive )的持續更改,即連同子目錄下的所有文件、目錄
都更新成為這個用戶組。常常用在更改某一目錄的情況。
示例3
[root@localhost home]# ls testfile -l
-rw--w--w- 1 yangzongde root 0 Jun 7 19:35 testfile //查看文件擁有者為 yangzongde,但組為 root
[root@localhost home]# chgrp yangzongde testfile //修改擁有者組為 yangzongde
[root@localhost home]# ls testfile -l
-rw--w--w- 1 yangzongde yangzongde 0 Jun 7 19:35 testfile
[root@localhost home]# chown root:root testfile // 使用 chown 一次性修改擁有者及組
[root@localhost home]# ls testfile -l
-rw--w--w- 1 root root 0 Jun 7 19:35 testfile
示例4
[root@linux ~]# chgrp users install.log
[root@linux ~]# ls -l
-rw-r--r-- 1 root users 68495 Jun 25 08:53 install.log
示例5
更改為一個 /etc/group里不存在的用戶組
[root@linux ~]# chgrp testing install.log
chgrp: invalid group name `testing' <== 出現錯誤信息~找不到這個用戶組名~
## CentOS7 修改時區
timedatectl 命令
timedatectl //等同于 timedatectl status 查看當前服務器時區
2.2 設置時間
timedatectl set-time "YYYY-MM-DD HH:MM:SS"
2.3 列出所有時區
timedatectl list-timezones
2.4 設置時區
timedatectl set-timezone Asia/Shanghai
2.5 是否NTP服務器同步
timedatectl set-ntp yes //yes或者no
2.6 將硬件時鐘調整為與本地時鐘一致
timedatectl set-local-rtc 1
hwclock --systohc --localtime //與上面命令效果一致
* 注意 硬件時鐘默認使用UTC時間,因為硬件時鐘不能保存時區和夏令時調整,修改后就無法從硬件時鐘中讀取出準確標準時間,因此不建議修改。修改后系統會出現下面的警告。
2.6 硬件時間設置成 UTC:
timedatectl set-local-rtc 1
hwclock --systohc --utc //與上面命令效果一致
## git添加 ssh
問題:Permission denied (publickey).
查看我的密鑰
ls ~/.ssh/
# bajie bajie.pub known_hosts
發現我的id_rsa文件我命令為bajie, 所以根本沒有使用它。同時可以使用如下命令查看密鑰列表:
ssh-add -l
上面命令的密鑰列表為空,所以要添加我的密鑰,使用命令:
ssh-add ~/.ssh/bajie
Enter passphrase for /home/gr/.ssh/bajie:
Identity added: /home/gr/.ssh/bajie (/home/gr/.ssh/bajie)
再次查看,如下,添加成功:
ssh-add -l
2048 63:c5:d8:6c:a0:0c:a8:9c:26:d8:f8:95:de:29:04:eb /home/gr/.ssh/bajie (RSA)
問題:`Could not open a connection to your authentication agent`
執行`ssh-add ~/.ssh/id_rsa`報標題上的錯誤:
先執行 `eval `ssh-agent`` (是~鍵上的那個`) 再執行 `ssh-add ~/.ssh/rsa`成功,
`ssh-add -l `就有新加的rsa了。
- 前言
- 讀者須知
- 第一章 Linux
- HTTP
- 簡介
- 狀態碼
- 特點
- URL
- Request
- Response
- 請求方式
- 工作原理
- 生命周期
- GET和POST區別
- 組成
- 端口
- 命令
- 常用命令
- chmod命令詳解
- ubuntu apt-get命令
- 用戶和用戶組
- Nginx
- 四個基本功能
- 進程
- 進程管理[ps命令]
- 進程管理[top命令]
- 進程管理[kill命令]
- 進程管理[進程優先級]
- 進程管理[netstat命令]
- 定時任務
- crontab
- 實現每秒執行
- >/dev/null 2>&1說明
- 文件管理
- 工作管理
- 資源管理
- 第二章 NGINX
- 介紹
- 入門
- 特性
- 安裝啟動
- 基礎必會
- 常用功能
- 反向代理
- 負載均衡
- 正向代理
- HTTP服務器
- 動靜分離
- 技能點匯總
- 顯示亂碼
- 打開目錄瀏覽功能
- 錯誤碼原因和解決方案
- location用法
- 常用正則
- rewrite
- 全局變量
- if語句塊
- https
- php后端處理(fast-cgi)
- flag標志位
- 過期功能
- gzip壓縮
- 會話保持時間
- 配置nginx worker進程最大打開文件數
- sendfile
- 單個工作進程的最大連接數
- 選擇事件驅動模型
- 隱藏ngxin版本號
- 網絡連接的優化
- 緩存原理及機制
- 限流
- 日志配置
- 灰度發布
- 配置一鍵生成
- 第三章 MySQL
- 入門
- 簡介
- 術語
- 特點
- 三范式
- 8.0 新特性
- 數據類型
- 數據類型詳解
- 常用函數
- 命令速查
- MyISAM與InnoDB區別
- 服務器構成
- 事務
- 本質
- 特性
- 分類
- 隔離級別
- PHP中使用事務實例
- MVCC
- 問題和解決
- 調優原則
- 分布式事務
- 索引
- 簡介
- 索引的分類
- 創建索引
- 刪除索引
- 哈希索引
- btree索引和hash索引的區別
- 單列索引和多列索引
- 索引優化
- 查看SQL語句對索引的使用情況
- 鎖
- 技能點
- 開發規范
- 導入導出數據庫
- blob和text的區別
- char與varchar類型區別
- SQL查詢語句優化
- 事務隔離和鎖操作需要在語言級別來做嗎
- 58到家數據庫30條軍規解讀
- 數據遷移
- SKU數據庫設計
- RBAC數據庫設計
- 第四章 Redis
- 入門
- 簡介
- 應用場景
- 安裝啟動
- 生命周期
- 事務
- 配置項
- 緩存
- 數據持久化
- 安全
- 數據類型
- string
- hash
- list
- set
- zset
- php代碼實戰
- 字符串緩存實戰
- 隊列實戰
- 發布訂閱實戰
- 計數器實戰
- 排行榜實戰
- 字符串悲觀鎖實戰
- 事務的樂觀鎖實戰
- 高級應用
- 分片機制
- 主從復制
- 緩存問題
- 解決 Redis 并發競爭 Key 問題
- 淘汰策略
- 第五章 PHP
- composer
- 什么是composer
- composer常用概念解析
- 使用composer的正確姿勢
- 消息隊列
- 為何使用消息隊列
- Beanstalkd
- PSR規范
- PSR-0
- PSR-1
- PSR-2
- PSR-3
- PSR-4
- OOP基礎
- 面向對象概念
- 類和對象
- 類
- 操作對象成員
- this使用
- 構造方法和析構方法
- 封裝
- __set(),__get(),__isset(),__unset()四個方法的應用
- 繼承
- 重載新的方法(parent::)
- 訪問類型(public,protected,private)
- final關鍵字的應用
- static和const關鍵字的使用(self::)
- static關鍵字
- __toString()方法
- 克隆對象__clone()方法
- __call()處理調用錯誤
- 抽象方法和抽象類(abstract)
- 接口(interface)
- 多態
- 把對象串行化serialize()方法,__sleep()方法,__wakeup()方法
- 自動加載類 __autoload()函數
- OOP進階
- 語法糖
- 異常處理
- 后期靜態綁定
- 后期靜態綁定在框架的運用
- 代碼優化思路
- Closure(閉包)
- 巧用PHP內置方法
- 數組操作的奇技淫巧
- 設計模式
- 單例模式(Singleton Pattern)
- 工廠模式(Factor Pattern)
- 建造者模式(Builder Pattern)
- 原型模式(Prototype Pattern)
- 適配器模式(Adapter Pattern)
- 裝飾器模式(Decorator Pattern)
- 代理模式(Proxy Pattern)
- 外觀模式(Facade Pattern)
- 橋接模式(Bridge Pattern)
- 組合模式(Composite Pattern)
- 享元模式 (Flyweight Pattern)
- 策略模式 ( Strategy Pattern )
- 模板模式 (Template Pattern)
- 觀察者模式 (observer Pattern)
- 迭代模式(Iterator Pattern)
- 責任鏈模式(Chain of Responsibility Pattern)
- 命令模式 (Command Pattern)
- 備忘錄模式(Memento Pattern)
- 狀態模式 (State Pattern)
- 訪問者模式(Visitor Pattern)
- 中介者模式(Mediator Pattern)
- 解釋器模式(Interpreter Pattern)
- 數據映射模式(Data Mapper Pattern)
- 注冊樹模式(Registry Pattern)
- 空對象模式(Null Object Pattern)
- 搜索引擎
- Elasticsearch
- 安裝
- 入門
- 實踐
- 集群
- 查詢
- API
- 接口調用
- cURL
- Guzzle
- RPC
- yar
- session
- 概念
- 客戶端實現形式
- cookie與session的區別
- Cookies的安全性
- JWT
- 組成
- 入門
- 應用
- 知識點
- 常見
- $_SERVER
- php的引用
- 第六章 技術棧擴展
- 使用第三方靜態資源服務
- 七牛對象存儲實戰
- 七牛對象存儲之客戶端上傳
- aliyunOSS服務端文件上傳
- aliyunOSS客戶端文件上傳
- 第三方支付
- 微信支付
- 支付寶支付
- SEO排名影響因素
- PHP架構師之路
- CTO職能
- web宏觀分析
- 常見的企業軟件系統
- 負載的優化思路
- 從容應對負載并發的前期準備
- 第七章 網絡安全
- XSS
- CSRF
- DDoS
- SQL注入
- 停用js
- 文件上傳
- 點擊劫持
- APT
- 會話劫持
- 第八章 運維
- devops
- devops簡介
- 常用工具
- 搭建運行環境
- Centos7 lnmp環境搭建
- ubuntu lnmp環境搭建
- Apache多站點配置
- docker
- 輕松使用和理解docker
- lnamp產品級環境搭建
- lnamp產品級環境搭建【第二版】
- 基于 Docker 容器的沙盒化評測系統
- vagrant
- vagrant入門
- vagrant之Vagrantfile
- vagrant之集成jenkins
- homestead
- gitlab
- gitlab簡介
- webhook
- ssh堡壘機
- 第九章 測試
- 壓力測試
- 單元測試
- 第十章 團隊協作
- 軟件開發模式
- 邊做邊改模型
- 瀑布模型
- 迭代模型
- 快速原型模型
- 增量模型
- 螺旋模型
- 敏捷軟件開發
- 演化模型
- 噴泉模型
- 智能模型
- 混合模型
- 模型對比
- TDD
- git
- git_入門
- git_使用
- git_進階
- git workflow
- git_高級
- git_小技巧
- okr工作法
- API接口文檔管理系統
- 敏捷協作工具
- 第十一章 技術燈塔
- github項目
- 社區好貨
- 紙質書
- 第十二章 代碼之外
- 面試官的角度看面試
- 程序員的壯年思考