一個 PHPer 的 Linux 入門小冊子

iVerywang發表於2018-10-07

::Linux 從入門到精通

第一步:安裝軟體

Virtualbox(V5.1.8) 下載地址:

https://www.virtualbox.org/wiki/Download_O...

CentOS下載:

http://mirrors.163.com/centos/7/isos/x86_6...-
x86_64-Minimal-1611.iso
官方下載地址: https://www.centos.org/download/

第二步:安裝基礎服務

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
if

重啟服務

service network restart

路由網址

traceroute car.blessjing.cn

安裝 ifconfig

yum install net-tools

安裝 wget

yum install wget

安裝 vim

yum install vim

檢視程式

ps -ef |grep ssh

第三步: 檢視虛擬機器版本

cat /etc/redhat-release

第四步:CentOS 映象使用(替換預設源)

http://mirrors.163.com/.help/centos.html


#備份/etc/yum.repos.d/CentOS-Base.repo

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
cd /etc/yum.repos.d
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
#執行以下命令生成快取
yum clean all
yum makecache

免密登入

生成key

ssh-keygen

將客戶機公鑰複製一份到目標機的
~/.ssh/authorized_keys

埠安全

修改 ssh 服務埠
vim /etc/ssh/sshd_config

service sshd restart

常用命令

軟體包管理器:yum

  • 安裝軟體:yum install xxx
  • 解除安裝軟體:yum remove xxx
  • 搜尋軟體:yum serach xxx
  • 清理快取:yum clean packages
  • 列出已安裝:yum list
  • 軟體包資訊 : yum info xxx

伺服器硬體資源和磁碟操作

  • 記憶體:free -m
  • 硬碟:df -h
  • 負載:w/top(閥值低於1)
  • cpu : 個數和核數

    cat /proc/cpuinfo

  • fdisk:格式化磁碟

檔案和資料夾操作命令

  • 文a件目錄結構

    1. 根目錄 /
    2. 家目錄 /home
    3. 臨時目錄 /tmp
    4. 配置目錄 /etc
    5. 使用者程式 /usr
  • 檔案基本操作命令

    1. mkdir -p imooc/test1(迴圈檔案目錄)
  • 編輯器 vim

    1. gg 首行
    2. G 尾行
    3. dd 刪除
    4. u 恢復
    5. yy 複製
    6. p 貼上
  • 檔案許可權 421

    1. r:4 w:2 x:0
  • 檔案搜尋,查

    1. tail 從檔案尾部開始讀
    2. head 從檔案頭部讀
    3. more 分頁讀取
    4. grep -n '' filename 搜尋
    5. wc cat imooc | wc -l 統計行數
    6. find /etc/ -name "*.conf" 該目錄下字尾為 .conf 的檔案
  • 檔案壓縮和解壓

    1. tar -czvf imooc.tar.gz imooc.md 壓縮
    2. tar -xzvf imooc.tar.gz 解壓
    3. tar -tzvf imooc.tar.gz 檢視

      系統使用者操作命令

    4. useradd 新增使用者
    5. adduser 新增使用者
    6. userdel 刪除使用者
      a. userdel -r username 徹底刪除使用者
    7. passwd 設定密碼

      防火牆相關設定

  • 只開放 80 22 43(https)

  • 安裝

    1. 檢查安裝

      yum list |grep firewall

    2. 檢視執行狀態

      ps -ef |grep firewall

    3. 安裝

      yum install firewalld

  • 啟動

    service firewalld start

  • 檢查狀態

    service firewalld status

  • 關閉或禁用防火牆

    service firewalld stop/disable

  • 相關操作

    firewall-cmd --version

    firewall-cmd --query-port=22/tcp

    firewall-cmd --list-services

    firewall-cmd --remove-service=ssh

    firewall-cmd --add-service=ssh

    提權操作 sudo 和檔案傳輸操作

  • 提權

    $ visudo

    %imooc ALL=(ALL) ALL

  • 檔案下載

    1. 下載到檔案

      curl -o baidu.html http://www.baidu.com

    2. wget http://www.baidu.com

    3. scp imooc@192.168.0.101:/tmp/imooc.text ./

  • 檔案上傳

    scp imooc.txt imooc@192.168.0.101:/tmp/

WebServer

Apache

  • 安裝

    yum install httpd

  • 啟動

    service httpd start

    查詢程式

    ps -ef | grep httpd

  • 停止

    service nginx stop

    Nginx

  • 安裝

    1. sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/...

    2. yum install -y nginx

    查詢程式

    ps -ef | grep nign

  • 啟動

    service nginx start

  • 停止

    service nginx stop

  • 過載 (使用者無感)

    service nginx reload

  • 偽靜態

  • 日誌格式化

    百度一下:

    nginx log_format

    access_log /var/log/nginx/access_imooc.log imooc;

  • 反向代理

  • 負載均衡

  • 除錯技巧

8: MySQL

a. CentOS 預設安裝了想先解除安裝 mariable 資料庫

yum search mysql

yum remove mariadb-libs.x86_64

b. 下載 MySQL 源:

wget https://dev.mysql.com/get/mysql80-communit...

c. 安裝源

yum localinstall mysql80-community-release-el7-1.noarch.rpm

d. 安裝 MySQL

yum install mysql-community-server

e. 預設密碼:

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

f.登入

mysql -h192.168.0.104 -uroot -password

g. 開啟 Genelog 記錄日誌方便除錯

# 設定general log儲存路徑 
# 注意   在Linux中只能設定到 /tmp 或 /var 資料夾下,設定其他路徑出錯 
# 需要root使用者才有訪問此檔案的許可權 
mysql> set global general_log_file='/tmp/general.log';  

# 開啟general log模式 
mysql> set global general_log=on;  

# 關閉general log模式 
mysql>set global general_log=off;  

在general log模式開啟過程中,所有對資料庫的操作都將被記錄 general.log 檔案

h. 新建使用者

CREATE USER 'imooc'@'%' IDENTIFIED BY '123456';

i. 許可權操作

賦予許可權
GRANT ALL PRIVILEGES ON *.* TO 'imooc'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
GRANT select,insert,update,delete ON *.* TO 'imooc'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;
收回許可權
REVOKE ALL PRIVILEGES ON *.* FROM imooc;
FLUSH PRIVILEGES;

i. 忘記 root 密碼怎麼辦

在 /etc/my.cnf 加入 skip-grant-tables
use mysql;
 update user set authentication_string=password('456789') where user='root';

j. 遠端連結

1. 連結資料庫
mysql -h192.168.0.104 -uroot -password
2. use mysql;
3.select Host,User from user \G;
4.update user set Host = '%' where Host = "localhost" and User = "root";
5. flush privileges;
6. 重啟資料庫
7.關閉防火牆

大檔案匯入用命令列比客戶端效率高

source D:\hudong.sql

9: 快取 Memcache 和 Redis

telnet

telnet 127.0.0.1 11211
-bash: telnet: command not found

yum install telnet.*
telnet 127.0.0.1 11211
set imooc 0 60 5
hello
get imooc
delete imooc

Memcache

安裝:

yum install memcached

啟動:

memcached -d -l -m -p

停止:

kill pid

Redis

安裝:

1:獲取原始碼
    wget http://download.redis.io/releases/redis-4.0.2.tar.gz
2:解壓
    tar -xzvf redis-4.0.2.tar.gz
3:安裝
    yum install gcc
    make MALLOC=libc
    sudo make install
啟動: 命令 簡介
redis-server Redis伺服器端啟動程式
redis-cli Redis客戶端操作工具。也可以用telnet根據其純文字協議來操作
redis-benchmark Redis效能測試工具
redis-check-aof 資料修復工具
redis-check-dump 檢查匯出工具

cd src && ls
./ redis-server

停止:

redis-server stop

客戶端
redis-client

10:Git

1 : 安裝
sudo yum install  git

2:生成SSH KEY
ssh-keygen
3:訪問碼雲(https://gitee.com),配置SSH Key
4:基本命令

推薦學習Git基本命令網址:http://www.runoob.com/git/git-tutorial.html  

5:命令自動補全
5.1. 下載原始碼 使用下載原始碼中的 git-completion.bash 自動補全命令的檔案(如果無法下載請到慕課課程群中下載)
    git clone git@github.com:git/git.git
5.2 複製 git-completion.bash 檔案
    cp contrib/completion/git-completion.bash /etc/bash_completion.d/
5.3 載入 bash 指令碼
    source /etc/bash_completion.d/git-completion.bash
5.4 自動載入指令碼,編輯~/.bash_profile
    # Git bash autoload
if [ -f /etc/bash_completion.d/git-completion.bash ]; then
source /etc/bash_completion.d/git-completion.bash
fi

PHP 環境搭建

基礎執行環境搭建

1:預設版本太低(5.4) 升級php 到5.6
1.1.檢查當前安裝的PHP包
yum list installed | grep php
1.2如果有安裝的PHP包,先刪除他們
    yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x86_64
2 : 配置源
sudo rpm -Uvh http://mirror.webtatic.com/yum/el7/epel-release.rpm
sudo rpm -Uvh http://mirror.webtatic.com/yum/el7/webtatic-release.rpm
如果想刪除上面安裝的包,重新安裝
rpm -qa | grep webstatic
rpm -e  上面搜尋到的包即可
3:fpm 安裝 和 基本操作
    sudo yum install php56w-fpm( 也可以php55w-fpm  php70w-fpm  )
    service php56w-fpm start/restart/stop
4:安裝PHP擴充套件 
    sudo yum install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64

Laravel 執行環境搭建

    server {
        charset utf-8;
        client_max_body_size 128M;
        listen 80;
        server_name laravel.imooc.test;

        root  /home/www/mooc/vagrant/phpmvc/laravel5/public;
        index  index.php;

        location ~* \.(eot|otf|ttf|woff)$ {
            add_header Access-Control-Allow-Origin *;
        }

        location / {
            try_files $uri $uri/ /index.php?$args;
        }

        location ~ \.php$ {
            include   fastcgi_params;
            fastcgi_pass   127.0.0.1:9000;
            try_files $uri =404;
        }

    }

PHPMyAdmin 配置安裝

  • 官網

    www.phpmyadmin.net

    • 下載
      https://files.phpmyadmin.net/phpM yAdmin/4.8.3/phpMyAdmin-4.8.3-all-languages.zip
    • 解壓
      unzip phpMyAdmin-4.8.3-all-languages.zip
    • 簡化檔名
      mv phpMyAdmin-4.8.3-all-languages phpmyadmin

PHPRedisAdmin 配置安裝

14. 服務管理

設定軟連結

sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

Ntpdate 日期同步

Logrotate 日誌切割

supervisor 程式管理

15. Zabbix 伺服器監控

  • 學習資料
    https://www.cnblogs.com/clsn/p/7885990.html

  • 安裝源

    rpm -ivh https://repo.zabbix.com/zabbix/3.2/rhel/7/...

  • 安裝服務

    sudo yum install zabbix-server-mysql zabbix-web-mysql

  • create database zabbix;

  • 安裝客戶端

    sudo yum install zabbix-agent

  • 匯入表

    cd /usr/share/doc/zabbix-server-mysql-3.2.11/

zcat create.sql.gz | mysql -uroot -p zabbix

sercer {
        listen 80;
        server_name www.blessjing.cn;
        root /usr/share/zabbix;
        index index.php index.html;
        access_log /var/log/nginx/access_zabbix.log imooc;
        location / {
                try_files $uri $uri/ /index.php?$args;
        }
        location ~ \.php$ {
                include fastcgi_params;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                try_files $uri =404;
        }
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結

善始善終 嗯!

相關文章