Linux 部署項目經驗總結

来源:https://www.cnblogs.com/luxh88/archive/2018/12/03/10058783.html
-Advertisement-
Play Games

【通用命令】 1.創建文件夾 mkdir -p xxx 2.解壓包 tar -zxvf xxxx.tar.gz 3.縮文件 tar zcvf 壓縮包名稱.tar.gz 要壓縮的文件 4.動命令 mv 文件 移動到的位置 5添加服務 chkconfig --ad 6賦權 chmod -R 777 xx ...


 【通用命令】
   1.創建文件夾

 mkdir -p xxx 

 2.解壓包
 tar -zxvf xxxx.tar.gz 
 3.縮文件
 tar zcvf 壓縮包名稱.tar.gz 要壓縮的文件 
 4.動命令
 mv 文件 移動到的位置 
 5添加服務
 chkconfig --ad 
 6賦權
 chmod -R 777 xxx 
 7.想開的埠是否已開
 firewall-cmd --query-port=666/tcp  
提示 no 表示未開
 8開永久埠號
 firewall-cmd --add-port=666/tcp --permanent  
提示 success 表示成功

【運行環境安裝】

  一、安裝 jdk 1.7
  參考資料點這裡

jdk1.7官網下載地址

 1.解壓包
  tar -zxvf jdk-7u80-linux-x64.tar.gz 

2.將jdk移動到 /usr/local  這個目錄下麵
 mv jdk1.7.0_80/ /usr/local/ 

3.配置環境變數

1  vim /etc/profile
2 
3  export JAVA_HOME=/usr/local/jdk1.7.0_80
4  export JRE_HOME=$JAVA_HOME/jre 
5  export PATH=$PATH:/$JAVA_HOME/bin 
6  export CLASSPATH=./:/$JAVA_HOME/lib:/$JAVA_HOME/jre/lib

 

4.重新載入文件
 source /etc/profile 

5.檢查是否安裝成功
 java -version 

其他:
  1.如果linux本身安裝了 linux jdk,可以通過如下命令查找對應安裝目錄
    which java 
  2.如何更改預設 jdk 為自己剛剛安裝的jdk
  參考這裡

二、安裝 tomcat 8

1.上傳 tomcat 文件,首選 tomcat8
安裝包自行下載 
2.解壓包
 tar –zxvf 路徑/包名 
3.修改防火牆埠放行
 firewall-cmd --add-port=8080/tcp --permanent  
提示 success 表示成功
4.啟動 tomcat,停止tomcat
進入  tomcat/bin  ,執行
 ./startup.sh 
 ./shutdown.sh 

5.查看tomcat運行情況

 ps -ef|grep tomcat 

6.添加tomcat服務
1.複製服務腳本tomcat/bin/catalina.sh到/etc/init.d
 cp $ CATALINA _ HOME /bin/catalina.sh /etc/init.d/tomcat 
2.修改該腳本
-a.在第三行插入
 chkconfig: 2345 10 90 
 description:Tomcat service 
-b.設置java環境變數到該腳本中
 CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8.5.35-8070 
 JAVA_HOME=/usr/local/jdk1.7.0_80 

3.設置服務腳本為可執行許可權
 chmod 755 /etc/init.d/tomcat 

4.添加(註冊)服務
 chkconfig --add tomcat 
5.開機啟動
 chkconfig tomcat on 

6.tomcat 調優

 vi /usr/local/apache-tomcat-7.0.63/bin/catalina.sh 
 JAVA_OPTS="-server -Xms1024m -Xmx10240m -XX:PermSize=128m -XX:MaxPermSize=512m -XX:MaxNewSize=128m"   

三、安裝 nginx
  重點:nginx 首先要安裝 gcc 等依賴庫,之後無論是否有網路都可以進行安裝

1.利用 yum 安裝依賴
 yum -y install gcc gcc-c++ gdb  
備註:如果伺服器無法訪問網路,則需要利用掛載技術,重新指定本地的 yum 源

2.利用ftp工具,上傳 nginx 響應依賴包,參考路徑為 /home/wljy/nginx 

——有網路情況下安裝方法——
1.檢查是否已經安裝 nginx
 find -name nginx 

2.卸載已有的 nginx
 yum remove nginx 

3.下載 nginx 或者使用 ftp 上傳到 /usr/local/src
 wget http://nginx.org/download/nginx-1.14.1.tar.gz  

4.解壓包
 tar -zxvf nginx-1.14.1.tar.gz 

5.安裝
  1、 ./configure --prefix=/usr/local/nginx  
  【此步驟可能會引發錯誤如下
  

處理方案: yum -y install pcre-devel openssl openssl-devel 】

  2、 make 

  3、 make install 

6.查看 nginx 安裝目錄
 whereis nginx 
備註:
//啟動命令
安裝路徑下的 /nginx/sbin/nginx 
//停止命令
安裝路徑下的 /nginx/sbin/nginx -s stop 
或者 :  nginx -s quit 
//重啟命令
安裝路徑下的 /nginx/sbin/nginx -s reload 

四、安裝 mysql5.6

1.卸載系統自帶的 mariadb
 rpm -qa|grep mariadb 
 rpm -e --nodeps  上句命令查出來的命令
2.刪除原有的 my.cnf
 rm /etc/my.cnf 
3.創建 mysql 用戶組
 groupadd mysql 
4.創建 mysql 用戶
 useradd -g mysql mysql 
5.上傳 mysql 安裝包並解壓到 /usr/local
 tar -zxvf mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz 
 mv mysql-5.6.42-linux-glibc2.12-x86_64 mysql 
 mv mysql /usr/local 
6.複製配置文件 my.cnf 到 etc 目錄下
 cd /usr/local/mysql/support-files 
 cp my-default.cnf /etc/my.cnf 
修改對應內容為

 1 [mysql]
 2 # 設置mysql客戶端預設字元集
 3 default-character-set=utf8 
 4 socket=/var/lib/mysql/mysql.sock
 5 
 6 [mysqld]
 7 skip-name-resolve
 8 #設置3306埠
 9 port = 3306 
10 socket=/var/lib/mysql/mysql.sock
11 # 設置mysql的安裝目錄
12 basedir=/usr/local/mysql
13 # 設置mysql資料庫的數據的存放目錄
14 datadir=/usr/local/mysql/data
15 # 允許最大連接數
16 max_connections=200
17 # 服務端使用的字元集預設為8比特編碼的latin1字元集
18 character-set-server=utf8
19 # 創建新表時將使用的預設存儲引擎
20 default-storage-engine=INNODB
21 lower_case_table_name=1
22 max_allowed_packet=16M

備註:資源包中已經包含了修改好的 my.cnf,可直接複製到指定路徑下

7.執行安裝步驟

 cd /usr/local/mysql 
 chown -R mysql:mysql ./ 
 ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ 

此操作可能會觸發找不到 prel 依賴包的錯誤
解決方案:先執行 yum install -y perl-Module-Install.noarch  再執行初始化 mysql 操作
8:修改當前data目錄的擁有者為 mysql 用戶
 chown -R mysql:mysql data 
9.授權my.cnf,否則會無法創建各類文件
 chmod 777 /etc/my.cnf 
10.設置開機自啟動
 cd /usr/local/mysql 
 cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld 
 chmod +x /etc/rc.d/init.d/mysqld 
 chkconfig --add mysqld  ##將 mysql 的服務加到系統服務
 chkconfig --list mysqld  ##檢查服務是否生效
11.運行 msql
 service mysqld start/stop/restart 
12.將 mysql 的 bin 目錄加到 path 環境變數中,使 mysql 命令可用
 cd ~ 
 vi .bash_profile 
輸入“E”,代表編輯改文件。
 export PATH=$PATH:/usr/local/mysql/bin 
按一下 "esc" 鍵 ,結束編輯;
 source .bash_profile 
13.登錄 mysql,mysql 預設是沒有密碼的,直接回車就可以
 mysql -u root -p 
14.更改root密碼

1 mysql>use mysql;
2 mysql>update user set password=password('gxogMB$9YV') where user='root' and host='localhost';
3 mysql>flush privileges;

 


15.設置遠程主機登錄:

1 mysql>GRANT ALL PRIVILEGES ON *.* TO 'wljy'@'%' IDENTIFIED BY 'gxogMB$9YV' WITH GRANT OPTION;
2 
3 mysql>flush privileges;

 

五、安裝redis

1.上傳安裝文件到  /home/wljy/redis 
安裝包自行下載
2.解壓包,複製解壓文件到 /usr/local/src 
3.編譯安裝tcl
 cd /usr/local/src/tcl8.6.1/unix 
 ./configure && make && make install 
4.安裝 redis
 cd /usr/local/src/redis-4.0.6/src 
 make MALLOC=libc && make install 
5.配置redis

mkdir -p /etc/redis
mkdir -p /var/redis/6379
mkdir -p /var/log/redis/6379
cp /usr/local/src/redis-4.0.6/redis.conf /etc/redis/6379.conf
cp /usr/local/src/redis-4.0.6/utils/redis_init_script /etc/init.d/redisd
chmod 755 /etc/init.d/redisd

6.修改 redis 配置參數

vi /etc/redis/6379.conf

daemonize yes 
pidfile /var/run/redis_6379.pid 
port 6379 
dir /var/redis/6379 
logfile "/var/log/redis/6379/redis.log"
requirepass dev2017
bind 127.0.0.1#此配置可導致外網鏈接失敗
protected-mode no

7.修改內核信息

vi /etc/sysctl.conf

vm.overcommit_memory = 1 

sysctl -p

8.redis 啟動測試

cd /etc/init.d/
./redisd start

9.redis 添加服務
 vi /etc/init.d/redisd 
//添加 chkconfig 和 description 兩行 不然會提示 服務 redisd 不支持  chkconfig
//start下麵的 "$EXEC $CONF"改為"$EXEC $CONF &" 否則無法後臺運行

chkconfig: 2345 90 10
description: Redis is a persistent key-value database

chkconfig --add redisd

備註:現在已經可以通過服務啟動或關閉redis,相關命令如下

service redisd start
service redisd stop【防火牆對應埠號放行】

 ——防火牆配置方法  firewall ——

  1.查詢埠號80 是否開啟:
  firewall-cmd --query-port=80/tcp
  2.永久開放80埠號:
  firewall-cmd --permanent --zone=public --add-port=80/tcp
  3.查看防火牆狀態:
  systemctl status firewalld.service
  4.啟動|關閉|重新啟動 防火牆
  systemctl [start|stop|restart] firewalld.service 
  systemctl restart firewalld.service
  systemctl stop firewalld.service
  systemctl start firewalld.service

——防火牆配置方法二— iptables ——

    配置防火牆
  //打開防火牆文件
  sudo vi /etc/sysconfig/iptables
  //新增行 開放80埠
  -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
  //保存退出
  //重啟防火牆
  sudo service iptables restart

【掛載磁碟,添加本地 yum 源】
  虛擬機掛載時,是在已經運行的虛擬機上,利用光碟重新添加系統iso文件即可
  如果無法控制虛擬機的時候,可以將鏡像文件複製到yum目錄下,執行之後的配置即可

  1.創建文件

mkdir -p /mnt/yum-iso

mkdir /yum

 

  2.添加掛載
   mount -t auto /dev/cdrom /mnt/yum-iso/ 
  備註:dev 下的文件名稱可根據實際情況修改
  3.複製文件到 yum 路徑下
   cp -a /mnt/yum-iso/ /yum/ 
  4.備份 repo

cd /etc/yum.repos.d/
tar zcvf repo-bk.tar.gz CentOS-*
rm -f CentOS-Base.repo CentOS-CR.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Sources.repo CentOS-Vault.repo

  5.編輯本地 repo 配置文件
   vi CentOS-Media.repo 

[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///yum/yum-iso/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

  6.製作 cache

yum clean all
yum makecache

  7.查看當前正在使用的yum源地址
   yum repolist all 
【其他問題記錄】
  1.當centos沒有安裝ifconfig
     yum search ifconfig   yum install net-tools.x86_64 
  2.當安裝openssl時提示,you need perl5,可通過 yum 安裝 perl
   yum install perl* 
  3.【未解決】MySQL 無法重啟問題解決 Warning: World-writable config file ‘/etc/my.cnf’ is ignored
  解析:在關閉資料庫的命令發現 mysql 關不了,提示 Warning: World-writable config file ‘/etc/my.cnf’ is ignored ,大概意思是許可權全局可寫,任何一個用戶都可以寫。mysql 擔心這種文件被其他用戶惡意修改,所以忽略掉這個配置文件。這樣 mysql 無法關閉

  4.部署完成後上傳的圖片無法查看,而伺服器中已經上傳成功
  解析:此問題是tomcat8出現的問題,需要修改 tomcat/bin/catalina.sh 

  vi /usr/local/tomcat/tomcat-XXX/bin/catalina.sh
  :/umask,將0027改為0022

  修改完成後重啟tomcat
  5.nginx make 時報 “make: *** No rule to make target `build', needed by `default'. Stop.”
  解析:沒有預先安裝 nginx 所需各種依賴,安裝完成後執行 config 再執行 make

  6.機器硬體信息查詢
  //查看系統位數、內核版本
   uname -a  
  //查看系統版本
   rpm -q centos-release 
  //磁碟分區和使用情況
   df -h 
  //查看 cpu 信息
   cat /proc/cpuinfo | grep name 
  //記憶體情況
   cat /proc/meminfo | head -4 
  7.tomcat 記憶體泄漏問題解決
  配置項:

JAVA_OPTS="-server -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m -XX:MaxNewSize=128m"

  備註:-Xmx 最大記憶體,不超過物理記憶體的1/2
  備註:

if [ $have_tty -eq 1 ]; then
(插入位置)
echo "Using CATALINA_BASE: $CATALINA_BASE"

  8.linux 下執行資料庫腳本
    1、進入  MySQL:
     mysql -u 用戶名 -p 
    2、在 MySQL-Front 中新建你要建的資料庫,這時是空資料庫,如新建一個名為 blog 的目標資料庫( mysql>create database blog; )
    3、輸入: mysql>use 目標資料庫名 
    4、導入文件: ysql>source 導入的文件名; 

  9、Nginx 403 forbidden 的解決辦法
  原因:nginx.cnf 配置的 root 裡面的根目錄許可權不足或根目錄內無已配置的首頁文件
  解決方案:
    1、 賦予許可權給根目錄

chmod –R 755 根目錄地址
nginx.cnf 文件頂部配置:

      1、配置為  ps –ef|grep nginx 下 nginx 進程的用戶 
      2、 user root (終極方案)
    2、 忽略,或者將index.html 文件放進根目錄
    3、參考這裡

  10、無法獲取網路
    方法一
       vi /etc/sysconfig/network-scripts/ifcfg-ens33 
      將 ONBOOT=no  改成 ONBOOT= yes 
      重啟服務 service network restart 
    方法二
    (方法一無效時使用)
      關閉網路管理
       systemctl stop NetworkManager 
      重啟網路管理
       systemctl start network.service 
    (網路詳解見問題12)
  11、mysql 報錯 Access denied for user ''@'localhost' to database
    解決方案:將 mysql 庫中 user 表裡面所有用戶名為空的數據刪除,重啟即可
  12、VMware 虛擬機下 linux 網路配置
    上網方式選擇
      橋接:虛擬機能連接互聯網,並且外部部網路和區域網都能訪問到虛擬機
      NAT:虛擬機能連接互聯網,但是不在意虛擬機與宿主機是否能通信(比如連接 SSH),外部網路不能訪問虛擬機
      僅主機:虛擬機不能連接互聯網,並且虛擬機與宿主機能夠相互通信

    【橋接模式】虛擬機中參考配置
      1、編輯網卡配置文件
         vim /etc/sysconfig/network-scripts/ifcfg-eth0 

        --若不存在 ehh0 可在同目錄中尋找其他配置文件,具體文件名可查詢網路配置 ifconfig –a
      2、關鍵參數修改
        ONBOOT : 是否啟用網卡
        需修改為【yes】,否則以後每次都要使用【ifup eth0】啟動網卡
        BOOTPROTO : 獲取IP 方式
        【static】靜態 IP、【dhcp】動態分配、【none】不使用

        1、若使用【staic】靜態 IP 模式,需要修改如下配置

ONBOOT=yes
BOOTPROTO=staic
NETMASK=255.255.255.0#子網掩碼,與宿主機一致

IPADDR=192.168.*.*#靜態 IP 地址,與宿主機在同一網段內,且不能被其他設備占用
GATEWAY=192.168.1.1#網關,與宿主機一致

        之後,再編輯一下文件設置 DNS,否則能聯網但是無法解析功能變數名稱
         vim /etc/resolv.conf 
        該文件預設為空文件

nameserver 114.114.114.114
nameserver 8.8.8.8

        DNS 無需與宿主機一致,但是一定要設置,否則就使用 IP 吧

        最後使用 service network restart 重啟網路服務,即可聯網
      2、 若使用【dhcp】動態分配的方式獲取 IP,需要修改如下配置

ONBOOT=yes
BOOTPROTO=dhcp

    【僅主機】虛擬機中參考配置
      1、共用網路
       如果要使得虛擬機能聯網,我們可以將主機網卡共用給 VMware Network Adapter VMnet1 網卡,從而達到虛擬機聯網的目的。接下來,我們就來測試一下。
       首先設置“虛擬網路編輯器”,可以設置 DHCP 的起始範圍。

      2、虛擬機設置
       設置虛擬機為Host-Only模式。

      3、網卡配置設置
       開機啟動系統,然後設置網卡文件。

 



      4、測試通信
       保存退出,然後重啟網卡,利用遠程工具測試能否與主機通信。

 

over~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

寫在最後:

第一次寫博客,可能會有些排版或者邏輯方面有疏忽或者錯漏,希望各位大佬能不吝指教,萬分感謝~

 


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

-Advertisement-
Play Games
更多相關文章
  • 對於開發人員來說,編寫介面文檔需要消耗大量的時間,並且,手動編寫的文檔介面會由於需求的頻繁變動變得難以維護,這就需要一個在介面開發階段可以自動監測介面輸入參數,自動生成文檔的功能;由於 Swagger 插件的出現,這項工作幾乎可以實現完全的自動化。 ...
  • 我們都知道ORM全稱叫做Object Relationship Mapper,也就是可以用object來map我們的db,而且市面上的orm框架有很多,其中有一個框架 叫做dapper,而且被稱為the king of ORM。 一:為什麼選擇Dapper 1. 性能優越: 其實在各大網站上,我們大 ...
  • ASP.NET -- WebForm: ScriptManager 類 ...
  • [root@localhost ~]# ifconfig bond0:0 10.0.0.202 netmask 255.255.255.255 broadcast 10.0.0.255 up 摘自:http://www.wangxuejin.cn/post-247.html ...
  • 1.打開任務管理器切換到啟動Tab,在需要刪除的項目上點擊右鍵,點擊打開文件所在位置,這樣就找到了啟動項所在磁碟位置,可以根據需要決定是否刪除。 2.從註冊表中刪除在啟動中的註冊信息。 regedit 打開註冊表後,將註冊表定位於 \HKEY_LOCAL_MACHINE\SOFTWARE\Wow64 ...
  • 最近瀏覽博客的時候,經常會看到博主展示出自己的公鑰,於是對 GPG/PGP 產生興趣。下麵簡單記錄相關文章的鏈接,方便以後瞭解。 簡介: 1991年,程式員Phil Zimmermann為了避開政府的監視,開發了加密軟體PGP。因為這個軟體非常好用,迅速流傳開來成為許多程式員的必備工具。但是,它是商 ...
  • 1、定義方式:在[]內用逗號分隔開多個任意類型的值l l=['a','b','c'] l=list(['a','b','c']) ​ 類型轉換 l=list('hello') l=list({'x':1,'y':2}) print(l) ​ 2,常用操作+內置的方法 同字元串相似 ​ (1),追加& ...
  • 1. Method 請求方法,表明客戶端希望伺服器對資源執行的動作; 1.1 GET 向伺服器請求資源。 1.2 HEAD 和GET方法的行為類似,但伺服器在響應中只返迴首部,不會返回實體的主體部分。這就允許客戶端在未獲取實際資源的情況下,對資源的首部進行檢查。 可以做到: 不獲取資源的情況下瞭解資 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...