第一次使用Linux服务器所栽之坑
一直以來想擁有一個服務器,但是一直舍不得.9.21日終于心血來潮,買了一個騰訊云服務器.對比了一下騰訊云和阿里云,發現騰訊云比較良心,不僅有學生價1元/月,而且整體價格也比阿里云便宜.之前用過一次阿里云,當時是windows server2008,安裝啥軟件都安裝不成功.所以,以后就用騰訊云了.最便宜的服務器是45元/月,首次注冊免費贈送一大堆代金券,分成很多類別,比如服務器代金券,數據庫代金券等.要想使用學生價,就要進行學生認證,這就要求在學信網上注冊信息.剛剛開學,學校還沒有將學生的信息輸入到學信網上.所以就用20元代金券+25元人民幣買了一個服務器,等學生認證成功之后在用學生價.服務器有很多選項,比如內存,網速,操作系統等,我選了ubuntu操作系統.
有了服務器之后,就開始折騰.花了一天半時間,安裝卸載了好幾次軟件,中間栽了大坑無數,特此總結以警示后來人.
一.盡量不要使用sudo apt-get來安裝程序
linux上的軟件最好使用綠色免安裝的,用wget url來下載,用tar -zxvf來解壓.
apt方式弊端太多了,上面軟件很老!要想使用最新版,必須手動去下載.當你輸入java指令,提示安裝jre,會發現apt的軟件倉庫里面jdk都很舊.安裝默認的mysql也是5.x的,有點老.
apt方式弊端太多了,它把目錄結構弄得混亂不堪!雖然通過指令安裝成功了,但是你根本就不知道程序安裝到了哪里,想找配置文件都很麻煩.
二.ssh遠程登錄和ftp兩個最重要服務器操作手段
xshell用于SSH加密遠程登錄服務器,它的同類產品有:SecureCRT,Putty,apache mina項目中有一個SSH子項目.
vsftpd用于ftp上傳下載文件,apache mina項目是一個網絡相關庫,包括SSH,FTP相關庫.它下面有一個ftpserver的子項目。SSH其實再帶SFTP,無需安裝任何其他FTP工具,SFTP默認端口為22。
服務器端使用vsftpd作為ftp服務器端,客戶端可以使用任意一種ftp工具,比如filezilla.使用vsftpd需要在/etc/vsftpd文件中進行配置,一個是改密碼,另一個是允許寫數據.
允許寫數據,添加這句話:
# Uncomment this to enable any form of FTP write command. write_enable=YES有了vsftpd,就可以通過filezilla向服務器上傳軟件了,有些服務器上wget無法下載的程序,可以從客戶端傳上去.
三.安裝mysql
如果使用apt安裝默認的mysql,版本比較老.注意要安裝mysql時,有好幾個安裝包:mysql-core,mysql-client,mysql-server等,它們之間有依賴關系,也就是有包含關系,只需要輸入安裝mysql-server就夠了.一定別安錯了,輸入sudo apt-get install mysql之后,多按幾次tab鍵.mysql如果手動下載然后安裝,會很復雜,比tomcat,ftpserver的安裝復雜多了.所以,最好使用sudo apt-get install mysql-server命令來安裝mysql.
安裝完mysql之后,本地訪問正常,在客戶端使用workbench連接時總是報錯,這是因為需要配置/etc/my.conf.默認情況下,這個文件中有一句:
bind-address=127.0.0.1這表示mysqld只監聽本地的3306端口,不監聽外部端口,把這句話中的ip地址改成0.0.0.0表示監聽一切端口.或者注釋掉這句話,默認情況下監聽一切端口.
為了讓mysql支持遠程登錄,先mysql -uroot -p進入數據庫,把mysql.user表中的root的host修改為%或者固定的ip地址.
上述兩個操作完成之后,sudo service mysql restart
mysql的默認編碼是latin而非utf8,為了解決亂碼問題,修改/etc/mysql/my.cnf,
[client]default-character-set=utf8[mysqld]#加default-character-set=utf8無法啟動character-set-server=utf8四.安裝java和tomcat
為了使用java8,從官網上下載jdk需要點擊按鈕同意,然后才允許下載,這樣wget就得換一種方式,讓wget帶著accept liscense這個cookie去下載.
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u71-b14/jdk-7u71-linux-x64.rpm也可以用客戶端下載完成后使用ftp傳上去.解壓之后就能使用了.
需要把java和javac命令添加到環境變量中去.
ubuntu中的環境變量跟windows一樣,也是分成好幾種,包括系統環境變量,用戶環境變量,超級用戶環境變量.
如果更改~/.profile或者~/.bashrc,那么更改的就是用戶環境變量,不影響其他用戶.
如果更改/etc/profile及profiled下的文件,那么更改的就是系統環境變量,也影響其他用戶.
$PATH變量最開始是在/etc/environment中定義的,所以也可以更改這個文件.
但是上面所有方法都沒法在sudo命令下使用java,因為sudo命令會把$PATH等環境變量重置,于是你添加的目錄就看不見了.這么怪異而偏僻的東西,吾如何知之?不信可以編寫一個haha.sh,里面只有一句話:echo $PATH.使用./haha.sh和sudo ./haha.sh輸出結果是不一樣的.那么如何更改sudo下的PATH呢?更改/etc/sudoers文件.
tomcat可以直接wget下載,解壓即用.進入其bin目錄下,運行startup.sh就可以啟動服務器了,這個startup.sh調用了catalina.sh,setclasspath.sh等文件.它會自動根據java命令所在的位置來定義JAVA_HOME,JRE_HOME.
注意,因為需要綁定端口號,運行tomcat是一個權限較高的操作,所以需要使用sudo ./startup.sh.
這時如果發現提示找不到JAVA_HOME,那就跟我走的坑一樣了.我明明在~/.bashrc中把java命令所在文件夾添加到了$PATH中,為何找不到?這是因為使用了sudo導致$PATH被重置了,所以就找不到java命令了!解決方法是更改startup.sh腳本,在腳本中直接定義JAVA_HOME或者直接更改$PATH.這么偏僻的東西我怎么能想到!!!
運行startup.sh之后,運行ps -a命令會發現有一個java正在運行,這說明tomcat已經啟動.額.打開瀏覽器,訪問服務器8080端口,結果一直顯示正在請求,一直無法加載成功.為啥呀?這個問題讓我糾結了一晚上,我到底做錯了什么,為啥服務器啟動了無法訪問?在服務器上使用wget localhost:8080看看能不能本地訪問,也說:請求已發送,正在等待回復.這時,如果你靜靜的等待個半小時,會發現好了,一切正常運行,網頁訪問速度也絲毫不慢.然而,我昨天晚上糾結這個問題時,沒有等待這么長時間,所以一直不知道錯誤原因.百度"linux 安裝tomcat"看看別人是怎么安的,結果人家都是解壓就用.昨晚真是氣沖斗牛,錯了不知道哪里錯了這種感覺真是人間最痛苦的感覺之一.實際上,我什么都沒有做錯,錯的是系統,這個問題網上有大量的資料,百度"ubuntu tomcat啟動慢"就可以了,原因是為了加密,生成某個隨機數,那個隨機數需要收集系統噪音,所以需要等待很長時間,在startup.sh中添加一句話就可以了
export CATALINA_OPTS="-Djava.security.egd=file:/dev/./urandom"要想停止tomcat,有兩種方法:一是運行bin/shutdown.sh;另一種方法是ps -a,kill 名字叫java的那個程序.
實際上,運行tomcat完全不需要sudo,因為tomcat占用的是8080端口!這樣也確實能夠運行,但是打開瀏覽器卻無法訪問很多webapp,這是因為CATALINA_HOME這個文件夾下有很多owner為root的文件,webapp無法訪問這些文件,解決方法是:
chown 用戶名 apache-tomcat -R-R表示遞歸更改文件所屬用戶
五.使用ubuntu的幾個原則
盡量自己下載解壓即用的軟件,不要使用apt-get.
盡量在~/和/opt/目錄下操作,不要摻和其他目錄.比如tomcat說沒有JAVA_HOME,那么就更改它的startup.sh,在里面添加一句JAVA_HOME,而不要更改/etc/sudoer.即盡量把問題在自己家里解決,不要把問題在系統級別上解決.
盡量避免rm指令,不對,一定不要使用rm指令,而是要自己編寫一個del腳本,它把刪除了的文件移到rubbish文件夾中.
總之,只有DIY才能活得好,才能有主權,才能減少學習量.
最后,上面所說的每一個坑我都躺了半天,耗費了大量時間與精力,我認為這是不值得的,因為這些知識毫無用處,只是"知道了",如果有人指導我,那將省去很多功夫.這么糾結而茫然求索的過程十分痛苦,不利于身體健康,有這功夫就不如去研究一下深度學習.在"人造"的坑里躺著遠遠不如在"天然"坑里面躺著舒服.
總結
以上是生活随笔為你收集整理的第一次使用Linux服务器所栽之坑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第四届大数据与首都治理论坛成功举办
- 下一篇: win10粘贴用不了怎么办? Win10