摘要:微軟也意識(shí)到了這個(gè)問(wèn)題,于是來(lái)了,不僅開源而且跨平臺(tái),前不久已經(jīng)發(fā)布了版本,號(hào)稱已經(jīng)兼容了下的的類庫(kù),并且開發(fā)了強(qiáng)大的服務(wù)器應(yīng)用來(lái)替代用以跨平臺(tái)部署。
前言:被linux和java虐了快1年,筆者的內(nèi)心是崩潰的,這一年的經(jīng)歷,更加堅(jiān)定了擁 護(hù).NET之心,微軟對(duì)于開發(fā)者真的是太友好了,無(wú)論從工具到文檔,乃至技術(shù)應(yīng)用性都是那么為用戶著想,筆者認(rèn)同一種說(shuō)法JAVA之所以占有比例高的原因是JAVA從開發(fā)工具到部署環(huán)境都是免費(fèi)的,高自由度的JAVA也意味著更多的折騰,而.NET的開發(fā),2015年之前是沒有community版之前,搞.NET開發(fā)是要錢的而且是很多錢(VS、WINDOWS、MSSQL),這也是大公司傾向于JAVA的原因之一吧,可能國(guó)內(nèi)盜版橫行并不能感受到國(guó)外對(duì)版權(quán)對(duì)知識(shí)產(chǎn)權(quán)的重視,很多開發(fā)者并不覺得.NET開發(fā)很花錢,單一個(gè)VS 2017 professional版本就要3k5軟妹幣以上,而且是每年,服務(wù)器系統(tǒng)以及MSSQL一整套微軟的解決方案花錢可真不低。微軟也意識(shí)到了這個(gè)問(wèn)題,于是.NET CORE來(lái)了,不僅開源而且跨平臺(tái)(WINDOWS、LINUX、MAC OS),.NET CORE前不久已經(jīng)發(fā)布了2.0版本,號(hào)稱已經(jīng)兼容了.NET Framework下nuget的70%的類庫(kù),并且開發(fā)了強(qiáng)大的Kestrel服務(wù)器應(yīng)用來(lái)替代IIS用以跨平臺(tái)部署。全球90%的服務(wù)器使用的都是liux系統(tǒng),而且docker的興起,.NET CORE在5年后應(yīng)該會(huì)有較大的需求,所以,linux系統(tǒng)的操作和使用也即將成為.NET CORE開發(fā)者一條必經(jīng)之路,學(xué)好用好linux是必須的,筆者未來(lái)(預(yù)計(jì)半年內(nèi))可能會(huì)出個(gè).NET CORE系列,有興趣的可以關(guān)注下。言歸正傳,之前筆者學(xué)習(xí)了ubuntu沒多久之后,又用上了RHEL,由于RHEL企業(yè)版是收費(fèi)的,故而經(jīng)常用的是與RHEL同根同源版本CentOS,當(dāng)前時(shí)間2017年7月,可以下到CentOS 7.3也就是對(duì)應(yīng)RHEL 7.3(兩者區(qū)別知乎上講得更清楚)。以下記錄了筆者遇到的幾個(gè)坑,本文僅供自用,不足之處請(qǐng)諒解,本文不定期更新:
1.Linux常用小技巧a.vi的使用,一般linux的發(fā)行版本都會(huì)自帶這個(gè)編輯器,替代品就很多啦,vim、nano等。注意linux是嚴(yán)格區(qū)分大小寫的,命令是vi xxx/xxx意為使用vi打開某文件,shift+g或者大寫G是直接跳轉(zhuǎn)到最后一頁(yè),linux有很多用同字母大小寫來(lái)實(shí)現(xiàn)對(duì)反操作的命令,我想你已經(jīng)猜到了小寫g則就是跳轉(zhuǎn)到第一頁(yè)。
在vi編輯器(vim也是)下分編輯模式和非編輯模式,默認(rèn)打開的是非編輯模式,即只可以查看不能修改,如果需要修改文件,按i(小寫)進(jìn)入編輯模式(左下角有會(huì)---INSERT---的狀態(tài)提示)才能修改,修改時(shí)候注意你的光標(biāo)所在位置哈,剛開始很不習(xí)慣容易改到其他地方,編輯完成之后先按ESC鍵退出編輯模式,再輸入:wq進(jìn)行保存,如果你誤操作了,要放棄,則先按ESC鍵退出編輯模式,再輸入:q!即可,vi的其他幾個(gè)常用命令,非編輯模式下輸入:q正常退出vi,非編輯模式輸入/xxx進(jìn)行模糊查找,查找下一個(gè)是小寫n,查找上一個(gè)是大寫N。記命令要這么記哈,q是英文quit(退出)的首字母,linux里有大量的這種英文首字母簡(jiǎn)寫,明白單詞分分鐘就記住怎么用了,wq=write quit(寫入、退出),n=next(小寫下一個(gè),取反上一個(gè)則是大寫)。更多vi命令
b.WinSCP是一款連接linux的軟件,不僅提供了SFTP的功能,也提供了PuTTY的bash終端直連linux,這個(gè)東西比你直接在linux下操作要方便很多,什么光標(biāo)選擇、粘帖復(fù)制易如反掌。要使linux完全使用上WinSCP的全功能你需要安裝SSH,CentOS 7.3下為yum -y install openssh-server,裝完之后記得開啟SSH的root遠(yuǎn)程連接權(quán)限,不然很多寫入操作你都沒辦法操作,編輯/etc/ssh/sshd_config文件,注意這里是sshd_config不是ssh_config,多了一個(gè)d,linux下很多這種同一個(gè)東西不同名字的坑,找到PermitRootLogin這一行,將之修改為PermitRootLogin yes,完了記得需要重啟sshd服務(wù)才能生效,命令service sshd restart,完成之后就可以用WinSCP連接了。如下圖,協(xié)議默認(rèn)SFTP,端口默認(rèn)22
c.使用虛擬機(jī)時(shí),網(wǎng)絡(luò)部分建議使用NAT模式,該模式下可以使用主機(jī)的網(wǎng)卡直接出去,簡(jiǎn)單容易操作
d.常用指令及對(duì)應(yīng)軟件命:
1.ifconfig,查看你網(wǎng)卡、IP信息的,與Windows上ipconfig同功能,如果沒有這個(gè)命令,請(qǐng)裝net-tools,安裝例子yum -y install net-tools
2.curl,這個(gè)是很實(shí)用的工具可以上傳下載訪問(wèn)各種協(xié)議的URL,詳細(xì)功能自行研究,我一般也就用來(lái)調(diào)試應(yīng)用,沒有這個(gè)命令,請(qǐng)裝curl
3.wget,該命令用于下載文件,沒有的話,請(qǐng)裝wget
e.不知道命令怎么用,一般都會(huì)有help幫助,例子vi --help,命令后加 --help就會(huì)顯示
f.按2次tab鍵會(huì)列出當(dāng)前文件夾下的所有文件,如果輸入了xxx,再按兩次tab則會(huì)自動(dòng)補(bǔ)全或列出以xxx開頭的文件夾及文件
g.常用shell命令
1.cd,轉(zhuǎn)到某文件夾(目錄),全拼:change directory,示例:cd xxx
2.mkdir,創(chuàng)建文件夾,全拼:make directory,示例:mkdir temp
3.mv,移動(dòng)文件或文件夾,全拼:move,示例:mv aaa bbb 移動(dòng)aaa到bbb
4.rm,刪除文件,全拼:remove,示例:rm -f xxx
5.rmdir,刪除文件夾,全拼:remove directory,示例:rmdir xxx
6.cp,拷貝文件,全拼:copy,示例:cp a path,將a文件拷貝到path文件夾
7.ls,查看文件夾下資源,全拼:List Source,后面可以跟很多種參數(shù)來(lái)進(jìn)行篩選和排序,示例:ls -a
8.locate,查找某文件路徑,示例:locate index.html
9.其他常用文件操作命令
10.十大常用命令
h.linux默認(rèn)路徑為絕對(duì)路徑,及任意路徑下cd /xxx意味著你將轉(zhuǎn)到系統(tǒng)根目錄下的xxx文件夾,如果要到當(dāng)前目錄下的xxx文件夾則需要使用cd ./xxx這樣的表示方法,./即表示當(dāng)前文件夾下,上一級(jí)文件夾下的xxx文件夾則為../xxx,可以依次類推
2.Linux 代理設(shè)置a./etc/profile為用戶變量配置,/etc/environment為系統(tǒng)變量配置,當(dāng)同一變量出現(xiàn)在兩個(gè)文件中時(shí),以/etc/profile用戶變量配置為準(zhǔn),linux各種環(huán)境配置文件看這里
b.使用root帳號(hào)登錄之后,先修改用戶變量配置,也就是/etc/profile文件,在最后添加以下代碼:
MY_PROXY_URL="http://x.x.x.x:xxx" HTTP_PROXY=$MY_PROXY_URL HTTPS_PROXY=$MY_PROXY_URL FTP_PROXY=$MY_PROXY_URL http_proxy=$MY_PROXY_URL https_proxy=$MY_PROXY_URL ftp_proxy=$MY_PROXY_URL export HTTP_PROXY HTTPS_PROXY FTP_PROXY http_proxy https_proxy ftp_proxy
c.保存之后,使用source /etc/profile重新加載一下配置
d.修改yum的配置文件,/etc/yum.conf,在最后添加以下代碼:
proxy=http://x.x.x.x:xxx
傳送門一篇較詳細(xì)的配置
3.xxx is not in the sudoers file. This incident will be reported,某用戶不是sudoera.使用root帳號(hào)登錄之后,為/etc/sudoers文件添加修改權(quán)限(為了安全性默認(rèn)是只讀),使用這個(gè)命令chmod u+w /etc/sudoers
b.編輯/etc/sudoers文件,找到root ALL=(ALL) ALL這一行,然后另一起行,添加代碼:xxx ALL=(ALL) ALL(xxx是你的用戶名),然后wq保存退出
c.記得撤銷該文件的修改權(quán)限哈,命令為chmod u-w /etc/sudoers
傳送門筆者當(dāng)時(shí)搜到的有效文章
a.這個(gè)問(wèn)題筆者在CentOS 7.3 minimal版本下遇到,原因是你網(wǎng)卡沒開
b.編輯/etc/sysconfig/network-script/ifcfg-ens33這個(gè)文件,找到ONBOOT=no這一行,將它改為ONBOOT=yes,保存退出
c.然后使用dhclient刷新配置即可
筆者當(dāng)時(shí)搜到的有效文章
以下操作,筆者建議你直接登錄root帳號(hào)進(jìn)行,否則出現(xiàn)的root權(quán)限要求會(huì)很多
a.這是筆者在ubuntu里欠下的坑,一直沒忙贏寫就又跑來(lái)CentOS下挖坑了,兩者大同小異,湊合看吧,建議你按JRE/JDK->Tomcat->Apache的順序安裝
b.JRE/JDK的安裝
如果只是服務(wù)器跑JAVA應(yīng)用,安裝JRE就夠了,JDK全稱是Java Development Kit(java開發(fā)套件),JRE全程是Java Runtime Environment(java運(yùn)行時(shí)環(huán)境),從字面意思就可以區(qū)分你什么環(huán)境該裝啥了
1.裝JRE/JDK,我建議使用rpm安裝,其他方法筆者在安裝、卸載時(shí)候都遇到各種問(wèn)題
2.以JRE1.8.0_131為例,首先下載rpm安裝包,命令wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jre-8u131-linux-x64.rpm,安裝后默認(rèn)路徑是/usr/java/jre1.8.0_131,其他JDK/JRE地址
3.安裝rpm,命令rpm -ivh jre-8u131-linux-x64.rpm
4.檢查JRE/JDK版本,命令java -version
5.配置JAVA_HOME環(huán)境變量,編輯/etc/profile文件,在末尾追加export JAVA_HOME="/usr/java/jre1.8.0_131,退出編輯器后重新加載該文件source /etc/profile
6.卸載用rpm方式安裝的JDK/JRE,命令rpm -e jre-8u131-linux-x64.rpm
7.rpm命令詳解,ivh為install(安裝)、verbose(輸出詳細(xì)信息)、hash(打印hash值),rpm命令可以跟很多參數(shù),有興趣使用rpm --help查看,e的全拼為erase(刪除/抹除)此處不同于常見的remove、uninstall這類用詞,學(xué)linux也是學(xué)計(jì)算機(jī)英語(yǔ)的好機(jī)會(huì),更多rpm命令看這里
c.Tomcat的安裝
筆者建議下載tar.gz壓縮包,解壓安裝
1.以tomcat8.5.16為例,先下載tomcat,命令wget --no-check-certificate --no-cookies http://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.16/bin/apache-tomcat-8.5.16.tar.gz
2.解壓apache-tomcat-8.5.16.tar.gz,命令tar -xvzf apache-tomcat-8.5.16.tar.gz
3.開啟關(guān)閉命令工具在apache-tomcat-8.5.16/bin/目錄下,一個(gè)start.sh一個(gè)shutdown.sh,使用sh ./apache-tomcat-8.5.16/bin/start.sh啟動(dòng)tomcat
4.檢測(cè)tomcat是否開啟,命令ps aux|grep tomcat,將可以看到進(jìn)程信息,該命令會(huì)產(chǎn)生默認(rèn)的一個(gè)進(jìn)程信息(圖中39900),只有帶路徑的進(jìn)程信息才是正在運(yùn)行的tomcat進(jìn)程
5.關(guān)閉tomcat的兩種方式,一是用bin/shutdown.sh,二是直接殺掉tomcat進(jìn)程kill -9
6.tomcat默認(rèn)端口8080,需要開防火墻,臨時(shí)開啟命令firewall-cmd --add-port=80/tcp,然后重新加載防火墻配置firewall-cmd --reload,最后檢查8080端口是否已經(jīng)生效sudo firewall-cmd --list-all
7.如果開了8080端口,那么則可以直接使用x.x.x.x:8080訪問(wèn),x.x.x.x為你的linux所用ip,順利看到下圖則表示你的tomcat成功搭建完成
8.關(guān)于war包的上傳與部署,將編譯后的war包上傳至./apache-tomcat-8.5.16/webapps/文件夾下即可,tomcat在啟動(dòng)時(shí)會(huì)自動(dòng)部署,另外一種方式是使用Manager App功能(如下圖),但筆者并不建議開啟該功能(基于服務(wù)器安全原因考慮),有興趣的請(qǐng)看這里
d.Apache的安裝
apache官方并沒有提供官方編譯版文件,只提供了源碼,你可以下載后自行編譯,或者使用官方推薦的第三方編譯版本安裝,筆者最佳實(shí)踐是使用yum或apt直接安裝,當(dāng)前筆yum可使用的apache版本為2.4.6
1.apache在linux大部分系統(tǒng)里的軟件名叫httpd,命令yum -y install httpd,如果需要使用SSL(俗稱https)的話,可以一起把mod_ssl這個(gè)module安裝了yum -y install mod_ssl
2.打開防火墻端口(永久性),firewall-cmd --permanent --add-port=80/tcp,這里只開了80端口,如果需要使用SSL,則還需要開啟443端口firewall-cmd --permanent --add-port=443/tcp
3.重新加載防火墻配置firewall-cmd --reload并檢查端口firewall-cmd --list-all
4.檢查apache是否開啟service httpd configtest,當(dāng)看到Syntax [OK]則表示已經(jīng)正常開啟,如果不正常則需要重啟一下apache
5.在CentOS下啟動(dòng)start、重啟restart、關(guān)閉stop,apache需要調(diào)用systemctl,示例:systemctl restart httpd
6.如果已經(jīng)打開了80端口,則可以直接使用x.x.x.x:80訪問(wèn)(:80可省略,默認(rèn)80端口),x.x.x.x為你的linux所用ip,順利看到下圖則表示你的apache成功搭建完成
7.在CentOS中,apache默認(rèn)安裝后的路徑為/etc/httpd
e.Apache與Tomcat整合
首先說(shuō)一下實(shí)現(xiàn)Apache與Tomcat整合目前主流有2種方案,一種是使用代理及反向代理的方式,另一種則是使用AJP的方案,個(gè)人最佳實(shí)踐是使用方案一:代理及反向代理,這樣做可以方便做負(fù)載均衡和集群,后者方案配置也麻煩,當(dāng)然后者的優(yōu)點(diǎn)是啥,筆者了解到的是AJP是二進(jìn)制的協(xié)議,速度快一點(diǎn),具體沒有實(shí)際對(duì)比過(guò),二者從實(shí)際操作上來(lái)說(shuō),前者更容易上手,利用Apache處理http的強(qiáng)大功能,可以按要求處理之后再轉(zhuǎn)發(fā)給tomcat
1.在Apache的/etc/httpd/conf.d文件夾,注意是conf.d,該文件夾下的所有*.conf文件都會(huì)被apache當(dāng)作配置文件加載,創(chuàng)建你自己的配置文件即可,示例:
vi fortomcat.conf創(chuàng)建fortomcat.conf
添加如下代碼
ProxyPreserveHost On ProxyPass / http://localhost:8080/xxx/ ProxyPassReverse / http://localhost:8080/xxx/ ErrorLog /var/log/httpd/xxx-error.log CustomLog /var/log/httpd/xxx-access.log common
代碼解析,ProxyPass /為正向代理,ProxyPassReverse /為反向代理,加上VirtualHost *:80的意思就是為把80端口下的所有/請(qǐng)求轉(zhuǎn)發(fā)到localhost:8080/xxx/下,xxx即為你的tomcat應(yīng)用名,注意結(jié)尾必須帶/,這個(gè)配置的關(guān)系請(qǐng)嘗試修改后感受,很難用語(yǔ)言描述清楚他們之間的微妙關(guān)系,總的來(lái)說(shuō)就是路由的問(wèn)題,ErrorLog為指定apache錯(cuò)誤日志,CustomLog為指定apache訪問(wèn)日志
保存退出,然后重啟apache,命令systemctl restart httpd
2.如果完成以上操作仍未能通過(guò)apache連同tomcat,請(qǐng)查看/var/log/httpd/xxx-error.log錯(cuò)誤日志文件,在CentOS 7.3 minimal版本中,筆者遇到[error] (13)Permission denied: proxy: AJP: attempt to connect to x.x.x:8080的問(wèn)題(該錯(cuò)誤信息來(lái)源于配置的/var/log/httpd/xxx-error.log),這里下需要使用/usr/sbin/setsebool -P httpd_can_network_connect 1命令即可修復(fù)
f.關(guān)于Aapche配置SSL
我覺得我看到的文章里微軟為.NET CORE寫的apache+kestrel的文檔是簡(jiǎn)潔明了而且有效的了,有興趣的朋友可以看一下,筆者配置apache時(shí)參照這篇文章完成的,國(guó)內(nèi)大部分都是AJP的方案,很繁瑣
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/35840.html
摘要:環(huán)境問(wèn)題如下操作系統(tǒng)版本是否支持不支持版本是否支持不支持是否支持支持是否支持支持重要文件是否完整完整服務(wù)器是否開啟安全模式關(guān)閉解決方式版本不能太高,用的會(huì)出現(xiàn)不支持問(wèn)題本次使用的版本為。 環(huán)境:php5.4.45+nginx1.13.6+mysql5.7.20+ecshopV2.7.3 問(wèn)題:如下操作系統(tǒng)............................................
摘要:環(huán)境問(wèn)題如下操作系統(tǒng)版本是否支持不支持版本是否支持不支持是否支持支持是否支持支持重要文件是否完整完整服務(wù)器是否開啟安全模式關(guān)閉解決方式版本不能太高,用的會(huì)出現(xiàn)不支持問(wèn)題本次使用的版本為。 環(huán)境:php5.4.45+nginx1.13.6+mysql5.7.20+ecshopV2.7.3 問(wèn)題:如下操作系統(tǒng)............................................
閱讀 3725·2023-04-25 22:43
閱讀 3726·2021-09-06 15:15
閱讀 1342·2019-08-30 15:54
閱讀 3583·2019-08-30 14:20
閱讀 2896·2019-08-29 17:16
閱讀 3123·2019-08-29 15:28
閱讀 3405·2019-08-29 11:08
閱讀 1078·2019-08-28 18:05