最近項目從windows搬到linux,因爲項目組成員有限而且有其它緊急的任務須要處理,於是這個任務就落到個人頭上了。下面記錄下centos最小版本安裝nginx+tomcat+mysql+java的運行環境。javascript
參考:http://www.tecmint.com/centos-7-installation/css
下載Java,可到oracle官網獲取相應的鏈接html
wget http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz?AuthParam=1456375809_50db5985ac01ede6091b467add0b89b2
# 更名: mv jdk-7u79-linux-x64.tar.gz?AuthParam=1456375809_50db5985ac01ede6091b467add0b89b2 jdk-7u79-linux-x64.tar.gz # 解壓: tar -zxvf jdk-7u79-linux-x64.tar.gz # 更換目錄: mv ./jdk1.7.0_79 /usr/local/ jdk1.7.0_79
添加到環境變量java
root@localhost java]# vi /etc/profile # 在export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL下添加 export JAVA_HOME=/usr/local/jdk1.7.0_79 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
執行node
source /etc/profile
使環境變量生效mysql
查看是否安裝成功linux
[root@localhost jdk1.7.0_79]# java -version java version "1.7.0_79" Java(TM) SE Runtime Environment (build 1.7.0_79-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
# 建立用戶 groupadd tomcat useradd -s /bin/bash -g tomcat tomcat # 下載: wget http://apache.opencas.org/tomcat/tomcat-7/v7.0.68/bin/apache-tomcat-7.0.68.tar.gz # 解壓: tar -zxvf apache-tomcat-7.0.68.tar.gz # 複製: cp -R ./apache-tomcat-7.0.68 /usr/local cd /usr/local/apache-tomcat-7.0.68 # 修改權限: chown -R tomcat:tomcat apache-tomcat-7.0.68 # 啓動: sh ./bin/startup.sh
將8080端口添加到防火牆例外並重啓nginx
firewall-cmd --zone=public --add-port=8080/tcp --permanent firewall-cmd --reload
訪問:http://IP:8080/,熟悉的感受c++
# 建立用戶 groupadd mysql useradd -g mysql -s /sbin/nologin -d /dev/null mysql # 查看mysql用戶
id mysql # 下載: wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz tar -zxvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz mv mysql-5.7.11-linux-glibc2.5-x86_64 /usr/local/mysql chown -R mysql:mysql mysql cd /usr/local/mysql mkdir /data cd /data mkdir mysql cd mysql mkdir -p mysql3306/{logs,tmp,data} cp /usr/local/mysql/support-files/my-default.cnf /data/mysql/mysql3306/my.cnf vi /data/mysql/mysql3306/my.cnf # 修改
# 指定data目錄 datadir=/data/mysql/mysql3306/data/ # 指定監聽端口
port=3306
# 表名忽略大小寫 lower_case_table_names=1
初始化mysql,(注意獲取初始化密碼),命令安裝也可參考:centos7 安裝mysql5.7.11注意事項web
[root@localhost mysql]# bin/mysqld --defaults-file=/data/mysql/mysql3306/my.cnf --initialize 2016-02-26T10:28:43.821897Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2016-02-26T10:28:43.822126Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release. 2016-02-26T10:28:43.822138Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set. 2016-02-26T10:28:44.311120Z 0 [Warning] InnoDB: New log files created, LSN=45790 2016-02-26T10:28:44.411026Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2016-02-26T10:28:44.492963Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: b671cd20-dc73-11e5-abe1-000c29c3b190. 2016-02-26T10:28:44.495657Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2016-02-26T10:28:44.511137Z 1 [Note] A temporary password is generated for root@localhost: fUVd&7p,qbf0 # 此處須要注意root用戶生成的隨機密碼,後面要用到。
啓動mysql
bin/mysqld --defaults-file=/data/mysql/mysql3306/my.cnf --user=root
設置root用戶密碼
[root@localhost mysql]# ./bin/mysqladmin -uroot -p password Enter password: New password: Confirm new password: Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
編輯/etc/profile,將mysql添加到環境變量(可參考java添加環境變量的方法)
export PATH=$PATH:/usr/local/mysql/bin/
安裝依賴庫
yum -y install gcc-c++ yum -y install pcre pcre-devel yum -y install zlib zlib-devel yum -y install openssl openssl-devel libssl-dev
下載並解壓
wget http://nginx.org/download/nginx-1.9.12.tar.gz tar -zxvf nginx-1.9.12.tar.gz
編譯安裝
./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module make make install
若是沒報錯的話,查看是否安裝成功
whereis nginx
添加到防火牆例外
firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --reload
啓動nginx
/usr/local/nginx/nginx
訪問:http://IP/,熟悉的味道
tomcat配置
###### Tomcat配置 # 建立tomcat項目默認目錄 mkdir /home/www/web/jsp/ # 配置tomcat默認項目 # ./conf/server.xml中的Host節點中添加 <Context path="" debug="0" docBase="/home/www/web/jsp/" reloadable="true"></Context> # 重啓tomcat /usr/local/apache-tomcat-7.0.68/bin/shutdown.sh /usr/local/apache-tomcat-7.0.68/bin/startup.sh # 建立index.jsp內容爲「tomcat web project index page」
http://IP:8080/
建立test.html,內容爲「tomcat test html」
http://192.168.222.128:8080/test.html
nginx配置
建立nginx靜態文件存放目錄
mkdir /home/www/web/ROOT
代理設置
[root@localhost nginx]# vi proxy.conf #!nginx # proxy.conf proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; #獲取真實ip #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #獲取代理者的真實ip client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k;
配置nginx.conf
#運行nginx所在的用戶名和用戶組 #user www www; #啓動進程數 worker_processes 8; #全局錯誤日誌及PID文件 error_log /usr/local/nginx/logs/nginx_error.log crit; #pid /usr/local/nginx/nginx.pid; #Specifies the value for maximum file descriptors that can be opened by this process. worker_rlimit_nofile 65535; #工做模式及鏈接數上限 events { use epoll; worker_connections 65535; } #設定http服務器,利用它的反向代理功能提供負載均衡支持 http { #設定mime類型 include mime.types; default_type application/octet-stream; include /usr/local/nginx/proxy.conf; #charset gb2312; #設定請求緩衝 server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; #client_max_body_size 8m; sendfile on; tcp_nopush on; keepalive_timeout 60; tcp_nodelay on; # fastcgi_connect_timeout 300; # fastcgi_send_timeout 300; # fastcgi_read_timeout 300; # fastcgi_buffer_size 64k; # fastcgi_buffers 4 64k; # fastcgi_busy_buffers_size 128k; # fastcgi_temp_file_write_size 128k; # gzip on; # gzip_min_length 1k; # gzip_buffers 4 16k; # gzip_http_version 1.0; # gzip_comp_level 2; # gzip_types text/plain application/x-javascript text/css application/xml; # gzip_vary on; #limit_zone crawler $binary_remote_addr 10m; ###禁止經過ip訪問站點 #server{ # server_name _; # return 404; #} server { listen 80; server_name localhost; index index.html index.htm index.jsp;#設定訪問的默認首頁地址 root /home/www/web/ROOT;#設定網站的資源存放路徑 #limit_conn crawler 20; location / { index index.html index.jsp; } location ~ .*.jsp$ #全部jsp的頁面均交由tomcat處理 { index index.jsp; proxy_pass http://192.168.222.128:8080;#轉向tomcat處理 } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ #設定訪問靜態文件直接讀取不通過tomcat { expires 30d; } location ~ .*\.(js|css)?$ { expires 1h; } #定義訪問日誌的寫入格式 #log_format access '$remote_addr - $remote_user [$time_local] "$request" ' #'$status $body_bytes_sent "$http_referer" ' #'"$http_user_agent" $http_x_forwarded_for'; #access_log /usr/local/nginx/logs/localhost.log access;#設定訪問日誌的存放路徑 } }
檢測配置文件
/usr/local/nginx/nginx -t nginx: the configuration file /usr/local/nginx/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/nginx.conf test is successful
平滑重啓nginx
/usr/local/nginx/nginx -s reload
/home/www/web/ROOT目錄下建立test.html內容爲「nginx static html」
訪問:http://IP/test.html
此時訪問的是nginx靜態資源所在的目錄
http://IP/index.jsp
此時html等靜態文件訪問的是nginx指定的靜態文件目錄,而jsp文件則分發到tomcat進行處理。
mysql自啓動
1./usr/lib/systemd/system目錄下新建mysql.service [Unit] Description=mysql After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking #LimitNOFILE=max_open_files PIDFile=/usr/local/mysql/mysql.pid TimeoutSec=0 PermissionsStartOnly=true ExecStartPre=/usr/local/mysql/ ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my.cnf --user=mysql ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=false #Nice=nice_level #LimitCore=core_file_limit #Environment="LD_PRELOAD=/usr/local/mysql/lib" Restart=on-failure RestartPreventExitStatus=1 [Install] WantedBy=multi-user.target
容許mysql開機啓動
systemctl enable mysql
檢查配置是否成功
systemctl is-enabled mysql
mysql開啓慢查詢
/data/mysql/mysql3306/my.cnf中添加 # 慢日誌 slow_query_log=1 slow_query_log_file=/data/mysql/mysql3306/logs/localhost-slow.log slow_launch_time=1
nginx和tomcat自啓動(和mysql相似,再也不闡述)