手把手教你搭建CentOS和部署Java專案
1. 安裝rzsz
yum -y install lrzsz
2. 安裝jdk
先解除安裝open-jdk
java –version
rpm -qa | grep java
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
開始安裝:
mkdir /usr/local/src/java
cd /usr/local/src/java
rz 上傳jdk tar包
tar -xvfjdk-7u71-linux-i586.tar.gz
①
②在末尾行新增
#set java environment
JAVA_HOME=/usr/local/src/java/jdk1.7.0_75
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
儲存退出
③source /etc/profile 使更改的配置立即生效
④java -version 檢視JDK版本資訊,如果顯示出1.7.0證明成功
3. 建立ucenter使用者
一般生成環境是不會使用root使用者來發布tomcat等應用的。
useradd ucenter –d/ucenter
passwd ucenter
4. 安裝mysql
# 下載mysql源安裝包
# 安裝mysql源
yumlocalinstall mysql57-community-release-el7-8.noarch.rpm
#檢查mysql源是否安裝成功
yum repolist enabled | grep"mysql.*-community.*"
#安裝mysql
yum install mysql
-community-server
#啟動mysql
systemctl start mysqld
#檢視mysql的啟動狀態
systemctl status mysqld
#開機啟動
systemctl enable mysqld
systemctl daemon-reload
#修改root本地登入密碼
mysql安裝完成之後,在/var/log/mysqld.log檔案中給root生成了一個預設密碼。通過下面的方式找到root預設密碼,然後登入mysql進行修改:
grep 'temporary password'/var/log/mysqld.log
mysql
-uroot–p
mysql>
setpassword
for'root'@
'localhost'=password(
'root');
注意:mysql5.7預設安裝了密碼安全檢查外掛(validate_password),預設密碼檢查策略要求密碼必須包含:大小寫字母、數字和特殊符號,並且長度不能少於8位。否則會提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements錯誤。
在/etc/my.cnf檔案新增validate_password_policy配置,指定密碼策略
# 選擇0(LOW),1(MEDIUM),2(STRONG)其中一種,選擇2需要提供密碼字典檔案
validate_password_policy=0
如果不需要密碼策略,新增my.cnf檔案中新增如下配置禁用即可:
validate_password = off
重新啟動mysql服務使配置生效:
systemctl restart mysqld
#設定遠端訪問(使用root密碼):
grant all privileges on *.* to 'root' @'%'identified by 'root';
flush privileges;
預設配置檔案路徑:配置檔案:/etc/my.cnf 日誌檔案:/var/log//var/log/mysqld.log 服務啟動指令碼:/usr/lib/systemd/system/mysqld.service socket檔案:/var/run/mysqld/mysqld.pid
#Linux執行SQL指令碼:
cattaotao.sql | mysql -uroot -proot -Dtaotao
4.1. 解決mysql訪問慢的問題
vim /etc/my.cnf
在[mysqld]下面新增:
skip-name-resolve
重啟mysql服務:
service restart mysqld
原因:
mysql客戶端每次訪問db,mysql就會試圖去解析來訪問的機器的hostname,並快取到hostname cache,如果這時解析不了,等一段時間會失敗,資料才能被取過來。
5. 安裝Redis
yum -y install cppbinutils glibc glibc-kernheaders glibc-common glibc-devel gcc make gcc-c++libstdc++-devel tcl
mkdir -p/usr/local/src/redis
cd /usr/local/src/redis
tar -xvfredis-2.8.17.tar.gz
cd redis-2.8.17
make
make test #這個就不要執行了,需要很長時間
make install
cp redis.conf /etc/
vi /etc/redis.conf
# 修改如下,預設為no
daemonize yes
#啟動
redis-server/etc/redis.conf
#測試
redis-cli
6. 安裝Nginx
#安裝相關服務
yum -y install gcc-c++
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum install openssl openssl-devel
#上傳並解壓安裝包
mkdir /usr/local/src/nginx
cd /usr/local/src/nginx
tar -xvf nginx-1.7.7.tar.gz
#安裝到/ucenter
cd /ucenter
mkdir soft/
cd soft/
mkdir nginx/
chown ucenter: ucenter soft/ -R (改變檔案的許可權所屬為yaochung)
#編譯安裝
cd /usr/local/src/nginx/nginx-1.7.7
./configure --prefix=/ucenter/soft/nginx --user=ucenter--group=ucenter (配置)
./configure --prefix=/ucenter/soft/nginx --user=yaochung--group=yaochung
make (編譯)
make install (安裝)
#使用nginx
cd /ucenter/soft/nginx/sbin
#啟動:./nginx
#重啟:./nginx –s reload
#關掉:./nginx –s stop
#檢視nginx程序:ps –ef |grep nginx
#以yaochunglin身份啟動nginx
chown ucenter: ucenter * -R (改變檔案的許可權所屬為yaochung)
#nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
由於非root使用者不能佔用80埠所以使普通使用者以root身份啟動nginx。
chown root nginx
chmod u+s nginx
7. 安裝TomCat部署專案
#安裝TomCat
mkdir web
cd web
rz apache-tomcat-7.0.86.tar.gz
tar –xvf apache-tomcat-7.0.86.tar.gz
mv apache-tomcat-7.0.86 yaoyao-manage-tomcat(重新命名)
#部署專案
cd yaoyao-manage-tomcat/webapps
rm –rf *
mkdir ROOT
cd ROOT
rz 專案的war包
jar –xvf 專案的war包
修改相關配置路徑
#啟動和關閉TomCat
cd /web/tomcat/yaoyao-manage-tomcat/bin
啟動:./startup.sh
關閉:./shutdown.sh
#啟動TomCat很慢
使用rngd軟體增大熵池
1.需要cpu支援
grep rdrand /proc/cpuinfo
2.安裝rngd服務(熵服務,增大熵池)
yum install rng-tools
3.啟動服務
systemctl start rngd
#檢視日誌
tail -f../logs/catalina.out
8. 關閉防火牆
CentOS 7.0預設使用的是firewall作為防火牆
#關閉firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
firewall-cmd --state #檢視預設防火牆狀態(關閉後顯示notrunning,開啟後顯示running)