系統環境搭建
centos7下載與安裝(Mini版)
下載地址:http://mirrors.163.com/centos/7/isos/x86_64/
網易的源,國內嘛,快些.像我選得就是最小化版本的,即CentOS-7-x86_64-Minimal-1611.iso
,咳咳貌似還有種子版的,有下載工具的可以選擇,比如迅雷啊啥啥的…
配置ip地址與防火牆管理(開啓,關閉,配置規則..)
由於centos7默認啓動的防火牆不是iptables,所以我們先將firewall關掉,移除,再安裝iptables,配置
systemctl stop firewalld.service #停止firewall服務! .service 可以省略
systemctl disable firewalld # 從開機自啓中移除
安裝iptables:
yum search iptables #沒事搜索一下
yum install iptables #安裝iptables
yum install iptables-services #安裝iptables的service,裝着,不然服務啓動不了
配置iptables(命令行方式:轉自博客園某大神http://www.cnblogs.com/anne32184/p/5961806.html):
#查看iptables現有規則
iptables -L -n
#先允許所有,不然有可能會杯具
iptables -P INPUT ACCEPT
#清空所有默認規則
iptables -F
#清空所有自定義規則
iptables -X
#所有計數器歸0
iptables -Z
#允許來自於lo接口的數據包(本地訪問)
iptables -A INPUT -i lo -j ACCEPT
#開放22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#開放21端口(FTP)
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
#開放80端口(HTTP)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#開放443端口(HTTPS)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
#允許ping
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
#允許接受本機請求之後的返回數據 RELATED,是爲FTP設置的
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#其他入站一律丟棄
iptables -P INPUT DROP
#所有出站一律綠燈
iptables -P OUTPUT ACCEPT
#所有轉發一律丟棄
iptables -P FORWARD DROP
記得按照規則類似的添加8080,3306等端口
配置完後,保存
service iptables save
啓動iptables,添加開機啓動
systemctl start iptables
systemctl enable iptables
ssh服務配置(接近0配置,尤其是雲服務器,一般自帶)
安裝ssh服務
yum search ssh #先搜索,在安裝會簡單點,不用死記 包名字
yum search openssh-server #ssh服務端
yum search openssh-clients#ssh客戶端(可以不裝)
同理啓動ssh服務(sshd)
systemctl start sshd
systemctl status sshd #查看下運行狀態
然後使用遠程連接工具,連接你的虛擬機試試(或者服務器)
ssh客戶端免密連接服務端(用戶linux之間快速聯機,此時用不上)
咳咳,容我谷歌一下:
ssh-keygen -t rsa #生成rsa密鑰
scp /root/.ssh/id_ras.pub root@192.168.1.99:/root/id_rsa.pub
規則是這樣, 要用哪臺機器登錄另一臺機器,就複製哪臺機器的公鑰到另一臺機器,然後另一臺機器將其公鑰加入authorized_keys
另一臺機器操作:
ssh-keygen -t rsa#連續三次回車即可
cd /root #選對目錄
cat id_rsa.pub >> .ssh/authroized_keys #複製
然後試着互相訪問,多試幾次發現免密登錄就可以了(注意不要用內網的機器去和外網的機器互連,沒有know_hosts也是會失敗的,畢竟內網的機器可以訪問外網的,但是外網那臺如何訪問你的內網那臺呢?)
nginx環境搭建
安裝nginx依賴的編譯庫等
使用yum命令一次安裝多個
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
如果某個包安裝失敗(比如zlib),就先查詢zlib
yum search zlib
然後再列表中選擇對應的版本,比如
yum install zlib.x86_64
再安裝pcre(沒有wget的自行yum搜索下載)
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz#下載pcer
tar -zxvf pcre-8.35.tar.gz
cd pcre-8.35/
./configure
make && make install
安裝nginx
下載安裝:
wget http://nginx.org/download/nginx-1.6.2.tar.gz #下載,自己找對應版本
tar -zxvf nginx-1.6.2.tar.gz
cd nginx-1.6.2
./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
安裝完成後,進入安裝位置即–prefix後的目錄
cd /usr/local/webserver/nginx
sbin/nginx -v #查看版本
配置nginx.conf
上一份我的默認改造(帶註釋):
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
#配置http總入口
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
#其他不管,直接配置server
server {
listen 80;#端口
server_name localhost;#不重要吧
charset utf-8;#默認編碼
#access_log logs/host.access.log main;
#匹配/這個正則規則下的一些配置(這裏我配置轉發),這是最簡單版,直接反向代理,連靜態資源都沒有區分
location / {
root html;
index index.html index.htm;
proxy_pass http://127.0.0.1:8080;#雖然8080tomcat還沒安裝,但是可以先配置
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# 默認配置中的示例,不用就刪了吧(留着作參考也行)
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
以上是最簡單的和tomcat整合的配置,直接加了一個反向代理!更復雜的慢慢來!
啓動
cd /usr/local/nginx #進入目錄
sbin/nginx #啓動
其他命令:
nginx -s stop #停止
nginx -s reload #重新載入配置文件
nginx -s reopen #重啓
java環境搭建
下載jdk1.8
解壓並配置環境變量
自己下載好jdk,我的jdk爲jdk1.8.tar.gz
tar -zxvf jdk1.8.tar.gz
mv jdk1.8 /usr/local/java #根據自己的愛好放到某個地方,然後配置環境變量
臨時環境變量配置:
export PATH=$PATH:/usr/local/java/bin:/usr/local/jre/bin
用戶登錄即生效的環境變量:
vi /etc/profile #按j或下到最後一行,按o從新行插入
插入數據爲
JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
系統重啓生效環境變量:
vi /etc/environment
插入數據爲
JAVA_HOME=/usr/local/java
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
嗯,貌似這個文件中不能寫export 命令,所以去掉
到此,重啓後者註銷登錄測試環境變量,測試方法 echo $PATH
最後記得java,javac試試哦
tomcat環境搭建
下載安裝tomcat7.0.tar.gz
自行下載,tomcat官網有,順便說下tomcat很懶,所以linux和Windows做成一個文件,Windows的也是可以拿過來用的(不能用當我沒說,重新找linux的…)
然後
tar zxvf tomcat7.0.tar.gz
mv tomcat7.0 /usr/local/tomcat7
配置 server.xml(也不改啥)
cd /usr/local/tomcat7 #進入tomcat目錄
more conf/server.xml #隨便看看
直接啓動,並在瀏覽器(找個瀏覽器咯)訪問8080端口
bin/start.sh #啓動試試
如果失敗,檢查java環境變量
編寫啓動腳本用以開機自啓
首先,恕我愚鈍,還沒學通shell編程,這個腳本還寫不來,就烤了一個某大神的
在/etc/init.d/目錄下新建一個文件,內容爲:
vi /etc/init.d/tomcatd
複製粘貼
#!/bin/bash
#
# /etc/rc.d/init.d/tomcat
# init script for tomcat precesses
#
# processname: tomcat
# description: tomcat is a j2se server
# chkconfig: 2345 86 16
# description: Start up the Tomcat servlet engine.
if [ -f /etc/init.d/functions ]; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ]; then
. /etc/rc.d/init.d/functions
else
echo -e "\atomcat: unable to locate functions lib. Cannot continue."
exit -1
fi
RETVAL=$?
CATALINA_HOME="/usr/local/tomcat7" #tomcat安裝目錄
case "$1" in
start)
if [ -f $CATALINA_HOME/bin/startup.sh ];
then
echo $"Starting Tomcat"
$CATALINA_HOME/bin/startup.sh
fi
;;
stop)
if [ -f $CATALINA_HOME/bin/shutdown.sh ];
then
echo $"Stopping Tomcat"
$CATALINA_HOME/bin/shutdown.sh
fi
;;
*)
echo $"Usage: $0 {start|stop}"
exit 1
;;
esac
exit $RETVAL
注意更改catalina_home路徑變量!
使用chkconfig添加並開啓在圖形界面和命令行模式(即35的級別)
chkconfig --add tomcatd
chkconfig --level 2345 tomcatd on #還是2345級別都來吧,多多亦善
重啓reboot,直接訪問8080端口試試,是否成功啓動了!(然後發現沒啥用,因爲nginx沒有開機啓動,還是得手動來一次,至於能夠nginx如何開機啓動,也許可以編寫類似的腳本吧)
mysql環境搭建(下回:預編譯版[無需編譯])
下載mysql_glibc2.5_xxx.tar.gz
一種方式是通過官網下載然後上傳到服務器:(小白最穩方式)
第二種是通過這個頁面的下載鏈接,點擊下載後在下載列表中複製出他的下載地址,然後使用centos的wget命令直接使用服務器下載(這種也不難啊,就是有一定得失敗可能性),貼出我的可wget的下載地址:
https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar
溫馨提示:經本人測試,除非走狗屎運(有一次走到了,下載只花了8s ),無論本地下載還是服務器下載網速都不如何,建議使用vpn或者ss代理加速後提前下載,並最後使用自己的本地虛擬機測試(服務器上傳文件很慢)!
解壓
費勁萬般努力,心裏祈禱無數次,終於下載完畢,好的,上傳到服務器(使用和xshell配套的xftp即可,記得協議選擇sftp),然後進入上傳目錄(推薦就上傳在root的根目錄下, 這樣鍵入 cd ~
就能快速進入 ).假設文件名爲mysql-5.7.17-linux-glibc2.5-x86_64.tar
,那麼代碼爲:
tar -xcvf mysql-5.7.17-linux-glibc2.5-x86_64.tar
等待片刻,接着把解壓後的文件夾mysql-5.7.17-linux-glibc2.5-x86_64
移到其他目錄(建議移走,不移走不影響操作,但這會顯得你不夠專業)
mv mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql
就移動到 /usr/local/mysql
吧!
配置mysql用戶組和用戶,更改目錄權限
接着爲mysql配置用戶組和用戶;以及更改目錄權限(以/usr/local/mysql目錄爲準):
groupadd mysql
useradd -r -g mysql mysql #-r 爲非登錄用戶 ,-g 用於指定group
此過程如提示groupadd: group 'mysql' is already exists
等類似的提示,說明用戶組或用戶已經存在,忽視即可!
最後記得更改目錄權限(我都差點忘了)
chown -R mysql.mysql /usr/local/mysql
PS: 注意路徑哦!
配置my.cnf
先複製目錄下的my-default.cnf到/etc/my.cnf(所以先進入目錄 cd /usr/local/mysql
,然後執行以下代碼:
cp support-files/my-default.cnf /etc/my.cnf
vi /etc/my.cnf
關於vi的使用,簡單2句話就是上下左右移動(hjkl也行),然後剛進入鍵入i或a(A)進入編輯模式,修改這2行
記得目錄路徑要和你自己的一一對應!
basedir =/usr/local/mysql
datadir =/usr/local/mysql/data
然後在按下Esc
按鍵,退出編輯模式,鍵入 :wq!
這個命令,保存修改並退出vi,不確定更改與否可以使用more /etc/my.cnf
配合回車鍵瀏覽編輯後的內容!
至此,my.cnf配置完畢
手動複製mysql.server到/etc/init.d/mysqld下
創建mysqld服務:
cp support-files/mysql.server /etc/init.d/mysqld
這一步是將mysql的服務放到系統服務目錄,方便service
命令管理
使用mysql自帶 命令mysqld 初始化數據庫
./bin/mysqld --initialize
如果初始化成功,則有隨機密碼生成,最好記下,先用着進入mysql,然後在利用mysql數據庫修改密碼!
另外,初始化成功後,最好重新更改目錄權限(因爲初始化後可能會有data目錄多出,要修改這個目錄的權限)
chown -R mysql.mysql /usr/local/mysql
PS:注意路勁哦!(看着眼熟對吧,我可沒拷貝上面的!)
開啓mysql服務,修改密碼
廢話不多說,開啓服務:
service mysqld start #失敗?試試下一行的重啓
service mysqld restart #重啓,成功就別執行了
成功!好的修改密碼:
mysql -uroot -pmima
mysql命令記得加入環境變量!,-p後接密碼(初始化生成的隨機密碼)
進入mysql控制檯後:
use mysql;
set password=password('toor');
flush priviledges;
試試新密碼是否有效,失敗了再重啓服務試試?
使用chkconfig命令添加到開機啓動
這個簡單:
chkconfig --add mysqld
chkconfig --level 2345 mysqld on
好的,重啓試試!建議添加全局變量和用戶變量配合使用(比如全局變量給JAVA_HOME,MYSQL_HOME之類的賦值,然後在用戶變量(/etc/profile)中export PATH=
PS,記得加$ 引用系統變量!
最後關於開機自啓,貌似將啓動命令打到 /etc/rc.d/rc.local這個腳本里面似乎也可以實現,實現原理肯定就是linux的啓動順序咯!