安裝jdk(1.7)
jdk通過rpm方式安裝,為了下載速度更快,使用阿里的源。修改rpm:http://mirrors.aliyun.com/help/centos
- 在該網站下載jdk的rpm原文件
- 使用xShell 5的 SSH Secure File Transfer Client將rpm文件從windows環境中拷貝到centos中
- 清理系統默認自帶的jdk
執行rpm -qa | grep jdk
查看已經能夠自帶的jdk,然后卸載(沒有就不用卸載了)。卸載命令:sudo yum remove xxx(xxx為上一個命令查到的結結果)
- 賦權限
sudo chmod 777 jdk-7u80-linux-x64.rpm
該命令權限全開,將來用戶、用戶組和其他人都擁有讀寫執行權限 - 安裝
sudo rpm -ivh jdk-7u80-linux-x64.rpm
該命令默認將jdk安裝在/usr/java下,切換到/usr/java/jdk1.7.0_80/bin
改目錄下,java -version
若執行成功,則表明jdk安裝成功 - 配置環境變量
為了在系統任意位置使用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
- 在該網站下載tomcat的壓縮文件
- 使用xShell 5的 SSH Secure File Transfer Client將rpm文件從windows環境中拷貝到centos中。tomcat是綠色版的(免安裝,解壓即可用),所以我在系統根目錄下創建了一個developer目錄,將tomcat解壓在該目錄下。
- 修改tomcat字符集
打開conf/server.xml,在<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
中添加URIEncoding="UTF-8"
- 開啟防火墻8080端口
若不開放8080端口,就只有本機能夠訪問tomcat,windows系統也不能訪問linux中的tomcat。
在 /etc/sysconfig/iptables中添加-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
,然后重啟防火墻。 - 啟動和關閉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)
- 在該網站下載maven的壓縮文件
- 使用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
- 配置環境變量
向/etc/profile文件中追加以下內容:
export MAVEN_HOME=/home/admin/developer/apache-maven-3.0.5
export PATH=$PATH:$MAVEN_HOME/bin
配置完成后使之立即生效source /etc/profile
- 驗證配置成功
在系統任意目錄下mvn -version
檢查是否成功 - 配置阿里云的鏡像倉庫
在/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)
- 檢查linux是否自帶vsftpd
rpm -qa | grep vsftpd
,若有則卸載之 - 安裝
sudo yum -y install vsftpd
,默認的配置文件在/etc/vsftpd/vsftpd.conf - 創建虛擬用戶
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 - 配置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
- 配置防火墻
在/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
- 安裝ftp
若使用ftp命令返回command not found才需要自己安裝ftp,否則不用再次安裝,安裝命令yum install ftp
,安裝后重啟vsftpd服務 - 更改selinux權限(不知道這是什么鬼,據說要是不改匿名用戶不可以創建文件和文件夾)
vi /etc/sysconfig/selinux
將SELINUX=enforcing改為SELINUX=disabled,這個修改完成后要重啟機器才能生效 - 測試
測試有兩種方式:
8.1 在瀏覽器上測試
瀏覽器地址欄輸入ftp://localhost,使用賬號:ftpuser 密碼:admin登陸
8.2 在命令行測試
ftp localhost
,使用賬號:ftpuser 密碼:admin登陸
8.3 在windows系統環境下測試
瀏覽器地址欄輸入ftp://xxx.xxx.xxx.xxx, xxx代表虛擬機的ip地址 - 通過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反向代理服務器、負載均衡服務器、郵件代理服務器。
- 安裝依賴
yum install gcc
yum install pcre-devel
yum install zlib zlib-devel
yum install openssl openssl-devel
- 下載壓縮包
wget http://learning.happymmall.com/nginx/Linux-nginx-1.10.2.tar.gz
- 解壓
tar -zxvf Linux-nginx-1.10.2.tar.gz
- 編譯安裝
進入解壓縮文件的nginx目錄執行
./configure
make && make install
系統默認將nginx安裝在/usr/local/nginx中
- 常用命令
測試配置文件是否正確:/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)]
- 增加防火墻訪問權限
編輯/etc/sysconfig/iptables文件開放80端口(nginx服務器默認使用80端口),重啟防火墻 - nginx虛擬域名配置與測試驗證
- 編輯nginx的配置文件
sudo vim /usr/local/nginx/conf/nginx.conf
,增加include vhost/*.conf;
- 創建vhost文件夾
在/usr/local/nginx/conf下創建一個叫vhost的文件夾 - 創建域名轉發配置文件
在vhost文件夾下創建一個叫www.imooc.com.conf的文件,在文件中寫入如下內容:
- 編輯nginx的配置文件
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版本,兩個版本略有差別,配置時要看情況操作。
- 字符集配置(不同版本的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
- 自啟動配置
檢查mysql是否已經開機自啟動chkconfig --list
,若打印的結果中沒有mysql則chkconfig mysql on
在重新檢查,接下來使用chkconfig --list mysql
查看2到5位狀態是否為on,狀態為on就ok - 防火墻配置
編輯/etc/sysconfig/iptables文件,添加
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
重啟防火墻sudo service iptables restart
- 修改用戶密碼
set password for root@localhost = password('password');
root:用戶名
locahost:ip(網絡限制)
這條語句從側面反應了同一個用戶在不同的網絡限制下可以設置不同的密碼 - 刪除匿名用戶(這個是為了系統安全)
- 查看是否存在匿名用戶
select user,host from mysql.user;
- 如果存在user為空的用戶就刪除
delete from mysql.user where user='';
- 再次查看,確認已經刪除匿名用戶
select user,host from mysql.user;
- 刷新,使之生效
flush privileges
- 查看是否存在匿名用戶
- 創建新用戶
CREATE USER 'mmall'@'localhost' IDENTIFIED BY 'admin';
mmall:新用戶名
localhost:ip(網絡限制),localhost表示只允許該用戶本地登錄
admin:密碼 - 建庫
create database
mmalldefault character set utf8 collate utf8_general_ci;
這里要注意的是`是反引號,而不是單引號 - 為用戶賦予訪問權限
為用戶賦予權限時可以在不同情況下賦予不同的權限,這里只寫幾個當例子-
GRANT ALL ON mmall.* TO 'mmall'@'%';
我學習的時候是這樣設置的。它表示將對mmall庫下的所有表的所有操作的權限賦予mmall用戶在任意ip下操作 -
grant all privileges on mmall.* to 'username' @localhost idenified by 'yourpassword';
表示將mmall庫下的所有表的所有操作權限賦予username用戶在本地的訪問 -
grant select,insert,update on mmall.* to 'username'@'%' identified by 'password';
表示將mmall庫中所有表的增、改、查權限賦予username用戶在任意ip下操作
-
注:2和3種的命令在高版本中可能不能用,因為給用戶賦權限肯定是root用戶才可以操作,而賦權限時肯定已經登陸,那么為什么還要在sql語句中寫密碼呢?
- mysql權限(還沒用過)
dql: 擁有select權限
dml: 擁有insert、update、delete權限
ddl: 擁有create權限
dcl: 擁有grant權限
10 遠程連接
防火墻開放3306端口后,可以使用navicat工具遠程登陸mysql,這讓想起實習的時候在centos中安裝mysql workbench費了老大勁,當時還不如直接在windows中用navicat遠程登陸來的方便,現在想起來,當時的行為簡直弱智,mysql workbench搞了不知道多久才弄好。