1、安裝jdk7
//檢查jdk是否已經安裝 [root@iZwz9catu2mrq92b07d1d0Z ~]# yum list installed | grep java java-1.7.0-openjdk.x86_64 java-1.7.0-openjdk-demo.x86_64 java-1.7.0-openjdk-devel.x86_64 java-1.7.0-openjdk-javadoc.noarch java-1.7.0-openjdk-src.x86_64 tzdata-java.noarch 2017c-1.el6 @updates //卸載現有的jdk [root@iZwz9catu2mrq92b07d1d0Z ~]# yum -y remove java-1.7.0* //查看yum庫中的Java安裝包 [root@iZwz9catu2mrq92b07d1d0Z ~]# yum -C list java* ... java-1.7.0-openjdk.x86_64 1:1.7.0.151-2.6.11.0.el6_9 updates java-1.7.0-openjdk-demo.x86_64 1:1.7.0.151-2.6.11.0.el6_9 updates java-1.7.0-openjdk-devel.x86_64 1:1.7.0.151-2.6.11.0.el6_9 updates java-1.7.0-openjdk-javadoc.noarch 1:1.7.0.151-2.6.11.0.el6_9 updates ... //安裝jdk7 [root@iZwz9catu2mrq92b07d1d0Z ~]# yum -y install java-1.7.0* //安裝成功 [root@iZwz9catu2mrq92b07d1d0Z ~]# java -version java version "1.7.0_151" OpenJDK Runtime Environment (rhel-2.6.11.0.el6_9-x86_64 u151-b00) OpenJDK 64-Bit Server VM (build 24.151-b00, mixed mode)
2、安裝tomcat7
//從官網下載tomcat7 [cjh@iZwz9catu2mrq92b07d1d0Z ~]$ wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.82/bin/apache-tomcat-7.0.82.tar.gz //檢查壓縮包文件 [cjh@iZwz9catu2mrq92b07d1d0Z ~]$ tar -ztvf apache-tomcat-7.0.82.tar.gz //解壓 [cjh@iZwz9catu2mrq92b07d1d0Z ~]$ tar -zxvf apache-tomcat-7.0.82.tar.gz [cjh@iZwz9catu2mrq92b07d1d0Z ~]$ ls apache-tomcat-7.0.82 apache-tomcat-7.0.82.tar.gz
注:當我們嘗試啟動tomcat時可能會遇到啟動非常慢的情況,並且在啟動日志中會看到類似以下的信息
<DATE> org.apache.catalina.util.SessionIdGenerator createSecureRandom INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [5172] milliseconds.
關於本問題請參考官方文章末尾有說明 官方說明
問題說明:
Tomcat 7+ heavily relies on SecureRandom class to provide random values for its session ids and in other places. Depending on your JRE it can cause delays during startup if entropy source that is used to initialize SecureRandom is short of entropy
譯:tomcat7+嚴重依賴SecureRandom類為會話ids和其它地方提供的隨機值,這會導致啟動過程出現延遲。
解決辦法:
There is a way to configure JRE to use a non-blocking entropy source by setting the following system property: -Djava.security.egd=file:/dev/./urandom
譯:添加jvm參數 -Djava.security.egd=file:/dev/./urandom
[cjh@iZwz9catu2mrq92b07d1d0Z bin]$ pwd /home/cjh/apache-tomcat-7.0.82/bin //在開頭注釋后面添加參數 [cjh@iZwz9catu2mrq92b07d1d0Z bin]$ vi catalina.sh ... JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom" ... //查看jvm運行參數,參數已添加 [cjh@iZwz9catu2mrq92b07d1d0Z bin]$ jps -v ... //重新運行tomcat,查看啟動日志,啟動耗時正常 ...
3、安裝反向代理nginx
//安裝nginx [root@iZwz9catu2mrq92b07d1d0Z ~]# yum -y install nginx //安裝完成后查看配置文件路徑 [root@iZwz9catu2mrq92b07d1d0Z ~]# whereis nginx //檢查配置文件內容,可以發現包含了另一個路徑下的配置文件組 [root@iZwz9catu2mrq92b07d1d0Z ~]# cat /etc/nginx/nginx.conf ... include /etc/nginx/conf.d/*.conf; ... //切換路徑,檢查文件組 [root@iZwz9catu2mrq92b07d1d0Z ~]# cd /etc/nginx/conf.d/ [root@iZwz9catu2mrq92b07d1d0Z conf.d]# ls -l | grep .conf -rw-r--r-- 1 root root 408 Nov 22 17:59 default.conf -rw-r--r-- 1 root root 686 Oct 31 2016 ssl.conf -rw-r--r-- 1 root root 283 Oct 31 2016 virtual.conf //修改default.conf [root@iZwz9catu2mrq92b07d1d0Z conf.d]# vi default.conf ... listen 端口號; server_name 域名/ip; ... //啟動nginx [root@iZwz9catu2mrq92b07d1d0Z conf.d]# chkconfig nginx on [root@iZwz9catu2mrq92b07d1d0Z conf.d]# service nginx start //在瀏覽器上訪問域名或ip,顯示nginx的歡迎頁面即配置成功
ps:nginx訪問日志的默認路徑:/var/log/nginx,yum源http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
4、安裝MySQL
下載官方yum庫
https://dev.mysql.com/downloads/repo/yum/
安裝說明
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
//下載MySQL Yum庫 [root@iZwz9catu2mrq92b07d1d0Z ~]# wget https://repo.mysql.com/mysql57-community-release-el6-10.noarch.rpm //安裝yum庫,yum庫地址 /etc/yum.repos.d [root@iZwz9catu2mrq92b07d1d0Z ~]# yum -y localinstall mysql57-community-release-el6-10.noarch.rpm //檢查庫安裝成功,默認已開啟子庫mysql57-community [root@iZwz9catu2mrq92b07d1d0Z ~]# yum -C repolist enabled //安裝MySQL5.7 [root@iZwz9catu2mrq92b07d1d0Z ~]# yum -y install mysql-community-server //啟動服務 [root@iZwz9catu2mrq92b07d1d0Z yum.repos.d]# chkconfig mysqld on [root@iZwz9catu2mrq92b07d1d0Z ~]# service mysqld start Initializing MySQL database: [ OK ] Starting mysqld: [ OK ]
注意點1:
- 不同版本的os對應的yum庫是不一樣的,el后面的數字6代表的是系統6,數字11代表的是系列版本,可自行到https://repo.mysql.com/進行選擇
- centos7因為放棄了MySQL,而改用MariaDB,所以應先卸載MariaDB再安裝MySQL,下面附上處理方式。
//查看 [root@localhost project]# rpm -qa | grep mariadb mariadb-libs-5.5.56-2.el7.x86_64 //強行卸載 [root@localhost project]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64 //另外附上卸載yum庫的代碼 [root@localhost project]# rpm -qa|grep mysql mysql57-community-release-el7-11.noarch [root@localhost project]# yum remove mysql57-community-release-el7-11.noarch
注意點2:服務在初次啟動時會進行初始化(僅5.7),超級用戶會被創建,並且它的密碼已被設置並存儲在/var/log/mysqld.log,而非空
A superuser account
'root'@'localhost'
is created. A password for the superuser is set and stored in the error log file. To reveal it, use the following command:
//x值為數據庫用戶root的密碼 [root@iZwz9catu2mrq92b07d1d0Z ~]# cat /var/log/mysqld.log | grep password 2017-11-22T14:27:56.638229Z 1 [Note] A temporary password is generated for root@localhost: x //進入成功 [root@iZwz9catu2mrq92b07d1d0Z ~]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. ... //因為初次操作數據庫時提示必須重置密碼,附上密碼修改方法 mysql> set password = 'your password';
注意點3:Expression #1 of ORDER BY clause is not in SELECT list
問題的原因在與MySQL5.7以上提供了的一個檢查GROUP BY合法性的sql_mode:ONLY_FULL_GROUP_BY,詳細官方說明請看這里:https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_only_full_group_by
解決方法:
//打開my.cnf,去掉ONLY_FULL_GROUP_BY,如果文件里面沒有sql_mode,可執行 select @@global.sql_mode 進行查詢 vi /etc/my.cnf [mysqld] sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION # service mysqld stop # service mysqld start