centos中搭建java開發環境

安裝jdk(1.7)

jdk通過rpm方式安裝,為了下載速度更快,使用阿里的源。修改rpm:http://mirrors.aliyun.com/help/centos

  1. 在該網站下載jdk的rpm原文件
  2. 使用xShell 5的 SSH Secure File Transfer Client將rpm文件從windows環境中拷貝到centos中
  3. 清理系統默認自帶的jdk
    執行rpm -qa | grep jdk 查看已經能夠自帶的jdk,然后卸載(沒有就不用卸載了)。卸載命令:sudo yum remove xxx(xxx為上一個命令查到的結結果)
  4. 賦權限
    sudo chmod 777 jdk-7u80-linux-x64.rpm
    該命令權限全開,將來用戶、用戶組和其他人都擁有讀寫執行權限
  5. 安裝
    sudo rpm -ivh jdk-7u80-linux-x64.rpm
    該命令默認將jdk安裝在/usr/java下,切換到/usr/java/jdk1.7.0_80/bin
    改目錄下,java -version若執行成功,則表明jdk安裝成功
  6. 配置環境變量
    為了在系統任意位置使用java命令,將jdk路徑添加到系統變量中。
    6.1 修改系統環境變量文件
    sudo vi /etc/profile
    6.2 向文件里面追加以下內容
JAVA_HOME=/usr/java/jdk1.7.0_80
JRE_HOME=/usr/java/jdk1.7.0_80/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

6.3 使修改生效

source /etc/profile  //修改立即生效
echo $PATH   //查看PATH值

6.4 驗證jdk
在系統任意路徑中·java -version·,若成功表示配置成功,否則配置失敗。

安裝tomcat7

  1. 在該網站下載tomcat的壓縮文件
  2. 使用xShell 5的 SSH Secure File Transfer Client將rpm文件從windows環境中拷貝到centos中。tomcat是綠色版的(免安裝,解壓即可用),所以我在系統根目錄下創建了一個developer目錄,將tomcat解壓在該目錄下。
  3. 修改tomcat字符集
    打開conf/server.xml,在<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>中添加URIEncoding="UTF-8"
  4. 開啟防火墻8080端口
    若不開放8080端口,就只有本機能夠訪問tomcat,windows系統也不能訪問linux中的tomcat。
    在 /etc/sysconfig/iptables中添加-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT,然后重啟防火墻。
  5. 啟動和關閉tomcat
  • 啟動:切到tomcat的bin目錄下./startup.sh
  • 關閉:切到tomcat的bin目錄下./shutdown.sh

開啟和關閉防火墻的幾個命令

Linux操作系統中永久性生效,重啟后不會復原
開啟: chkconfig iptables on
關閉: chkconfig iptables off

即時生效,重啟后復原
開啟: service iptables start
關閉: service iptables stop

安裝maven(3.0.5)

  1. 在該網站下載maven的壓縮文件
  2. 使用xShell 5的 SSH Secure File Transfer Client將rpm文件從windows環境中拷貝到centos中。tomcat是綠色版的(免安裝,解壓即可用),所以我在系統根目錄下創建了一個developer目錄,將tomcat解壓在該目錄下。
  • 以上兩步可以換成在linux的developer目錄下直接wget http://learning.happymmall.com/maven/apache-maven-3.0.5-bin.tar.gz(該方式下載速度較慢,適用于下載小文件),然后解壓縮tar -zxvf apache-maven-3.0.5-bin.tar.gz
  1. 配置環境變量
    向/etc/profile文件中追加以下內容:
export MAVEN_HOME=/home/admin/developer/apache-maven-3.0.5
export PATH=$PATH:$MAVEN_HOME/bin

配置完成后使之立即生效source /etc/profile

  1. 驗證配置成功
    在系統任意目錄下mvn -version檢查是否成功
  2. 配置阿里云的鏡像倉庫
    在/apache-maven-3.0.5/conf/settings.xml文件的mirrors節點里面加上一個mirror子節點,內容如下:
<mirror>
    <!--This sends everything else to /public -->
    <id>nexus-aliyun</id>
    <mirrorOf>*</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

安裝vsftpd(2.2.2)

  1. 檢查linux是否自帶vsftpdrpm -qa | grep vsftpd,若有則卸載之
  2. 安裝 sudo yum -y install vsftpd,默認的配置文件在/etc/vsftpd/vsftpd.conf
  3. 創建虛擬用戶
    3.1 創建ftp目錄
    我在/home/admin/developer下創建了一個叫做ftpfile的目錄,以后上傳的文件將保存到該目錄
    3.2 添加匿名用戶
    sudo useradd ftpuser -d /ftpfile/ -s /sbin/nologin,添加一個叫做ftpuser的用戶。
    3.3 修改ftpfile文件權限
    sudo chown -R ftpuser:ftpuser /ftpfile/
    將ftpuser用戶與ftpfile目錄關聯起來,并賦予用戶和用戶組的權限
    3.4 重設frp密碼
    sudo passwd ftpuser
    我將其設置為admin
  4. 配置ftp服務器
    4.1 在ftpfile下新建一個index.html文件,寫入一點內容。
    4.2 配置ftp服務器指向/ftpfile/,并配置用戶到frp服務器。
    編輯/etc/vsftp/vsftp.conf,將85行ftpd_banner=Welcome to blah FTP service.前的#刪除,并回車添加如下:
local_root=/ftpfile
anon_root=/ftpfile

這兩行分別配置服務器指向ftpfile目錄和匿名用戶執行ftpfile目錄。
找到chroot_list_enable=YES(大概在100行),將前面的#刪除,找到chroot_list_file=/etc/vsftpd/chroot_list(大概在102行),將前面的#刪除
添加uses_localtime=yes,就添加在之前的 anon_root=/ftpfile下一行就行,表示ftp服務器使用本地時間
設置匿名訪問anonymous_enable=YES將YES改為NO
在文件最后添加

pasv_min_port=61001
pasv_max_port=62000

這兩行表示設置被動傳輸端口的范圍
保存退出
重啟vsftpd服務sudo service vsftpd restart

  1. 配置防火墻
    在/etc/sysconfing/iptables中添加如下內容:
-A INPUT -p TCP --dport 61001:62000 -j ACCEPT 
-A OUTPUT -p TCP --sport 61001:62000 -j ACCEPT 
-A INPUT -p TCP --dport 20 -j ACCEPT 
-A OUTPUT -p TCP --sport 20 -j ACCEPT 
-A INPUT -p TCP --dport 21 -j ACCEPT 
-A OUTPUT -p TCP --sport 21 -j ACCEPT 

保存退出后重啟防火墻sudo service iptables restart
重啟vsftpd服務sudo service vsftpd restart
注: 啟動vsftpd服務sudo service vsftpd start
停止vsfptd服務sudo service vsftpd stop

  1. 安裝ftp
    若使用ftp命令返回command not found才需要自己安裝ftp,否則不用再次安裝,安裝命令yum install ftp,安裝后重啟vsftpd服務
  2. 更改selinux權限(不知道這是什么鬼,據說要是不改匿名用戶不可以創建文件和文件夾)
    vi /etc/sysconfig/selinux
    將SELINUX=enforcing改為SELINUX=disabled,這個修改完成后要重啟機器才能生效
  3. 測試
    測試有兩種方式:
    8.1 在瀏覽器上測試
    瀏覽器地址欄輸入ftp://localhost,使用賬號:ftpuser 密碼:admin登陸
    8.2 在命令行測試
    ftp localhost,使用賬號:ftpuser 密碼:admin登陸
    8.3 在windows系統環境下測試
    瀏覽器地址欄輸入ftp://xxx.xxx.xxx.xxx, xxx代表虛擬機的ip地址
  4. 通過nginx的反向代理映射img.imooc.com/xxx.jpg到vsftpd服務器出錯問題
    nginx服務器反向代理有兩種情況,第一種是反向代理http請求到另一個http請求,第二種是反響代理http請求到本地的vsftpd服務器。第一種情況比較簡單,第二種情況我搭建的時候出現訪問vsftpd的主目錄(img.imooc.com)報403錯誤或訪問圖片(img.imooc.com/xxx.jpg)報404 not found,這個是因為我配置nginx的轉發配置時使用的是自定義root路徑root /ftpfile,此時nginx的權限不夠就報錯。解決辦法是在nginx.confT

安裝nginx服務器

nginx服務器是一款輕量級的web服務器,它可以作為http反向代理服務器、負載均衡服務器、郵件代理服務器。

  1. 安裝依賴
yum install gcc
yum install pcre-devel
yum install zlib zlib-devel
yum install openssl openssl-devel
  1. 下載壓縮包
    wget http://learning.happymmall.com/nginx/Linux-nginx-1.10.2.tar.gz
  2. 解壓
    tar -zxvf Linux-nginx-1.10.2.tar.gz
  3. 編譯安裝
    進入解壓縮文件的nginx目錄執行
./configure
make && make install

系統默認將nginx安裝在/usr/local/nginx中

  1. 常用命令
    測試配置文件是否正確: /usr/local/nginx/sbin/nginx -t
    啟動: /usr/local/nginx/sbin/nginx
    停止: /usr/local/nginx/sbin/nginx -s stop
    重啟: /usr/local/nginx/sbin/nginx -s reload
    查看進程: ps -ef |grep nginx
    平滑重啟: kill -HUP [nginx主進程號(上面查到的pid)]
  2. 增加防火墻訪問權限
    編輯/etc/sysconfig/iptables文件開放80端口(nginx服務器默認使用80端口),重啟防火墻
  3. nginx虛擬域名配置與測試驗證
    1. 編輯nginx的配置文件sudo vim /usr/local/nginx/conf/nginx.conf,增加include vhost/*.conf;
    2. 創建vhost文件夾
      在/usr/local/nginx/conf下創建一個叫vhost的文件夾
    3. 創建域名轉發配置文件
      在vhost文件夾下創建一個叫www.imooc.com.conf的文件,在文件中寫入如下內容:
server {
    listen 80;
    autoindex on;
    server_name www.imooc.com;
    access_log /usr/local/nginx/logs/access.log combined;
    index index.html index.htm index.jsp index.php;
    if ( $query_string ~* ".*[\;'\<\>].*" ) {
        return 404;
    }
    location / {
        proxy_pass http://127.0.0.1:8080;
        add_header Access-Control-Allow_Origin *;
    } 
}

改配置表示將對www.imooc.com的請求轉發到http://127.0.0.1:8080這個ip地址
重啟nginx /usr/local/nginx/sbin/nginx -s reload
4. 修改hosts文件
編輯hosts文件sudo vim /etc/hosts,增加以下內容:
192.168.11.130 www.imooc.com,重啟瀏覽器
5. 訪問驗證

  • 若訪問localhost:80出現nginx服務器主頁表示nginx正確啟動
  • 若訪問www.imooc.com出現tomcat主頁表示已成功轉發http請求

安裝mysql

安裝就不寫了,安裝很簡單,主要是配置。看視頻時,視頻中用的mysql是5.1版本,而我自己用的是5.7版本,兩個版本略有差別,配置時要看情況操作。

  1. 字符集配置(不同版本的mysql配置有差別)
    編輯mysql的配置文件/etc/my.cnf,在5.1版本時,為了解決中文亂碼問題設置默認字符集為utf8時,在my.ini內的[mysql] 和 [mysqld] 項中都是寫: default-character-set=utf8,到了5.5版本, [mysql]項內可以這么寫, [mysqld] 項內這么寫在啟動MySQL服務時會有1067錯誤,經查詢發現這里必須要這樣寫:character-set-server=utf8
  2. 自啟動配置
    檢查mysql是否已經開機自啟動chkconfig --list,若打印的結果中沒有mysql則chkconfig mysql on在重新檢查,接下來使用chkconfig --list mysql查看2到5位狀態是否為on,狀態為on就ok
  3. 防火墻配置
    編輯/etc/sysconfig/iptables文件,添加
    -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
    重啟防火墻sudo service iptables restart
  4. 修改用戶密碼
    set password for root@localhost = password('password');
    root:用戶名
    locahost:ip(網絡限制)
    這條語句從側面反應了同一個用戶在不同的網絡限制下可以設置不同的密碼
  5. 刪除匿名用戶(這個是為了系統安全)
    1. 查看是否存在匿名用戶
      select user,host from mysql.user;
    2. 如果存在user為空的用戶就刪除
      delete from mysql.user where user='';
    3. 再次查看,確認已經刪除匿名用戶
      select user,host from mysql.user;
    4. 刷新,使之生效
      flush privileges
  6. 創建新用戶
    CREATE USER 'mmall'@'localhost' IDENTIFIED BY 'admin';
    mmall:新用戶名
    localhost:ip(網絡限制),localhost表示只允許該用戶本地登錄
    admin:密碼
  7. 建庫
    create databasemmalldefault character set utf8 collate utf8_general_ci;
    這里要注意的是`是反引號,而不是單引號
  8. 為用戶賦予訪問權限
    為用戶賦予權限時可以在不同情況下賦予不同的權限,這里只寫幾個當例子
    1. GRANT ALL ON mmall.* TO 'mmall'@'%';
      我學習的時候是這樣設置的。它表示將對mmall庫下的所有表的所有操作的權限賦予mmall用戶在任意ip下操作
    2. grant all privileges on mmall.* to 'username' @localhost idenified by 'yourpassword';
      表示將mmall庫下的所有表的所有操作權限賦予username用戶在本地的訪問
    3. grant select,insert,update on mmall.* to 'username'@'%' identified by 'password';
      表示將mmall庫中所有表的增、改、查權限賦予username用戶在任意ip下操作

注:2和3種的命令在高版本中可能不能用,因為給用戶賦權限肯定是root用戶才可以操作,而賦權限時肯定已經登陸,那么為什么還要在sql語句中寫密碼呢?

  1. mysql權限(還沒用過)
    dql: 擁有select權限
    dml: 擁有insert、update、delete權限
    ddl: 擁有create權限
    dcl: 擁有grant權限
    10 遠程連接
    防火墻開放3306端口后,可以使用navicat工具遠程登陸mysql,這讓想起實習的時候在centos中安裝mysql workbench費了老大勁,當時還不如直接在windows中用navicat遠程登陸來的方便,現在想起來,當時的行為簡直弱智,mysql workbench搞了不知道多久才弄好。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,673評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,610評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,668評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,004評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,173評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,705評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,426評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,656評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,833評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,371評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,621評論 2 380