每次都得囉嗦這麼幾句,真的是這陣子走來,一步一個腳印,一步一個坑。html
1.購買服務器跟域名node
首先購買一臺學生服務器,選擇這個套餐,挺實惠的,順便買個xin域名。懶人點擊這個連接購買購買連接 ,默認購買linux系統centos7.3mysql
2.域名解析linux
對域名進行dns解析。購買域名後,點擊進入控制檯,而後點擊進入域名和網站欄目 點擊域名解析,點擊新手引導,進行快捷解析便可。服務器的ip在控制檯,ecs服務器實例裏面查看,爲公網ip。nginx
3.遠程登陸
因爲我是用window的,因此確定用到了xshell神器進行ssh遠程鏈接,由於這個東西確實好用。c++
如何使用xshell請自行百度哦。遠程鏈接登陸後後,出現這樣一個界面證實你成功了git
接下來就是linux命令行的基本操做了,按照配置各類文件。linux基本命令跟lrsz的按照參照這篇文章linux基礎命令跟lrsz安裝github
4.安裝nodejs的快樂時刻到了~sql
[root@localhost ~]# cd / #進入根目錄 [root@localhost /]# mkdir soft && cd soft #用來放置安裝包 [root@localhost soft]# wget https://nodejs.org/dist/v8.9.4/node-v8.9.4.tar.gz #下載nodejs壓縮包 [root@localhost soft]# tar -zxvf node-v8.9.4.tar.gz #解壓縮 [root@localhost soft]# cd node-v8.9.4.tar && ./configure #進行配置,使用默認配置 [root@localhost node-v8.9.4]# make && make install #進行編譯
安裝以後就已經自帶npm了,可是國外的鏡像太慢,咱們要換個國內的,參考這篇文章nrm的使用,npm鏡像源切換shell
漫長的等待以後,一個可使用的node環境就安裝好了,能夠經過執行node -v或者npm -v來檢測當前的node/npm安裝是否成功。若是有出現版本號,那麼就是安裝成功了。
若是編譯過程當中出現g++: Command not found以及C Compiler能夠升級來解決,執行下列指令
[root@localhost ~]# yum -y install gcc make gcc-c++ openssl-devel wget
5.安裝nginx 進行多端口文件映射啦~
[root@localhost ~]# cd /soft #進入安裝目錄 [root@localhost soft]# wget -c https://nginx.org/download/nginx-1.11.6.tar.gz #下載nginx安裝壓縮包 [root@localhost soft]# tar -zxvf nginx-1.11.6.tar.gz [root@localhost soft]# cd nginx-1.11.6 [root@localhost nginx-1.11.6]# yum install -y pcre pcre-devel #安裝PCRE依賴庫 [root@localhost nginx-1.11.6]# yum install -y zlib zlib-devel #安裝zlib 依賴庫 [root@localhost nginx-1.11.6]# yum install -y openssl openssl-devel #安裝OpenSSL安全套接字層密碼庫 [root@localhost nginx-1.11.6]# ./configure
若是報找不到openSSL,那麼能夠指定一下路徑:
[root@localhost nginx-1.11.6]# ./configure --prefix=/usr/local/nginx --with-openssl=/usr/bin/openssl [root@localhost nginx-1.11.6]# ./configure #使用默認配置指令 [root@localhost nginx-1.11.6]# make && make install #從新進行編譯安裝
又是通過漫長的時間等待,終於安裝好了。
[root@localhost ~]# cd /usr/local/nginx/sbin/ [root@localhost sbin]# ./nginx [root@localhost sbin]# ./nginx -s stop [root@localhost sbin]# ./nginx -s quit [root@localhost sbin]# ./nginx -s reload
若是顯示端口占用 執行命令
netstat -anp|grep 80
查看佔用端口的進程,找到這個這個進程的id,通常是aliyundun這個進程佔用了80端口
執行 kill -9 進程id,結束進程。
而後執行 ./nginx -s reload 命令重啓下nginx
若是重啓的時候出現了 nginx: [error] open() /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)錯誤
執行下面命令,使用nginx -c的參數指定nginx.conf文件的位置
[root@localhost sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
若是上述處理後還有端口占用報錯,nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
執行下命令ps -ef | grep nginx 看下主目錄 是哪裏 是否是裝了兩個可惡的 Nginx
執行ps aux|grep nginx 查看到nginx正在運行,OK。
最後再來設置nginx的開機自啓動
執行vi /etc/rc.local 在rc.local增長啓動代碼 /usr/local/nginx/sbin/nginx 就能夠了 執行chmod 755 /etc/rc.local</pre> 執行命令 curl localhost 出現nginx的歡迎頁面
若是出現curl 訪問內網ip 能夠的話,可是用瀏覽器訪問公網ip不行,多是防火牆的配置問題
執行下面的指令
iptables -F iptables -F -t nat iptables -X iptables -X -t nat
若是仍是瀏覽器訪問不了,那麼請接着看下去。
6.進行安全組的配置
你發現能夠ping得通你的公網ip跟內網ip,甚至也是能夠curl 內網ip的,但是你就是沒法經過瀏覽器訪問你的服務器ip,這裏有兩個坑,關於服務器的安全組對於80端口跟443端口的配置
按照這個規則配置80跟443端口的安全組(後面https會用到),而後重啓下服務器,OK,能夠經過公網ip跟域名訪問到你的主頁了。
7.https的證書配置
在阿里雲控制檯,CA證書那裏,購買私人免費證書,填寫本身的域名,,選擇系統自動生成,選擇域名解析驗證證書。購買連接
等待審覈經過以後,進行證書的下載。
下載壓縮包解壓縮後會有公鑰跟私鑰兩份文件。
而後在xshell軟件
執行
cd /usr/local/nginx/conf mkdir cert cd cert rz #回車,選擇下載解壓後的.rem跟.key文件,放置於建立的cert文件夾中 cd .. cp nginx.conf nginx.back vi nginx.conf #編輯nginx的映射配置 # HTTPS server # #server { # listen 443; # server_name localhost; # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_timeout 5m; # ssl_protocols SSLv2 SSLv3 TLSv1; # ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; # ssl_prefer_server_ciphers on; # location / { # # #} #}
改成
server { listen 443; server_name localhost; ssl on; root html; index index.html index.htm; ssl_certificate cert/214570829410835.pem; ssl_certificate_key cert/214570829410835.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } }
後綴爲.rem跟.key的文件根據你放置在cert的文件名進行修改。
修改完以後保存
執行
/usr/local/nginx/sbin/nginx -s reload
重啓nginx
打開瀏覽器訪問https://公網ip跟https://域名,顯示nginx首頁,OK。
後面若是要更改你映射的文件夾,只須要修改
location / { root html; index index.html index.htm; }
root 後面帶的文件夾路徑就能夠了。這裏的html是相對路徑,根據目前的nginx.conf爲路徑基礎的相對路徑,至關於/usr/lcoal/nginx/conf/html
8.mysql服務的配置
cd /soft #進入soft目錄 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm #下載安裝須要用到的源 rpm -ivh mysql-community-release-el7-5.noarch.rpm #安裝下載的源 yum install mysql-server #安裝mysql service mysqld start #啓動mysql服務
若是遇到錯誤ERROR 2002 (HY000): Can't connect to local MySQL server through socket /var/lib/mysql/mysql.sock'。
在tmp目錄下建立一個軟連接,執行命令爲:
ln -s /tmp/mysql.sock /var/lib/mysql
打開my.cnf並修改配置
vi /etc/my.cnf
重啓數據庫
restart mysqld.service
使用命令修改當前用戶的密碼(默認root是沒有密碼的):
mysqladmin -u root password '密碼'
使用命令進入數據庫:
mysql -u root -p密碼
在數據庫命令行界面下執行:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
而後再輸入
flush privileges;
讓命令生效。須要注意的是每行命令的最後要加;,否則是不會執行的。
第一個*是數據庫,能夠改爲容許訪問的數據庫名稱
第二個 是數據庫的表名稱,表明容許訪問任意的表
root表明遠程登陸使用的用戶名,能夠自定義
%表明容許任意ip登陸,若是你想指定特定的IP,能夠把%替換掉就能夠了
password表明遠程登陸時使用的密碼,能夠自定義
輸入查詢命令來看看最終的結果。
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
到此MySQL數據庫就完成安裝了,這個時候可使用某個客戶端鏈接上數據庫看了(推薦navicat for mysql),也能夠直接進入服務器的命令行模式查看數據庫。
不過在此以前,咱們要先到阿里雲安全組裏面增長安全規則,不然仍是沒法遠程訪問的,就跟前面的http跟https訪問同樣。這裏給下配置
命令行界面遠程登陸
mysql -h 服務器ip地址 -P 3306 -u root -p密碼
客戶端登陸(使用navicat)在工做開發中也是使用圖形界面,方便操做
這裏是這個軟件的下載地址跟破解補丁 navicate下載
配置到此就結束了,若是在閱讀中遇到什麼配置的問題,歡迎評論以及留言。同時歡迎關注個人博客 陳建光的博客