開啓EC2實例
1)從Educate官網點擊AWS Account,進入自己的starter account並訪問Console
2) 新建EC2實例並分配彈性IP地址
我們先打開Starter Account的頁面
然後點擊箭頭,看到AWS Console的頁面,在搜索框中輸入EC2
在EC2控制檯,找到Elastic IP或如果你使用中文的話,就是彈性IP
點擊Allocate Elastic IP Address,並按照下圖進行操作
點擊Allocate之後回回到之前的頁面,我們會發現我們已經成功創建了一個新的Elastic IP Address
我們暫時不需要對這個IP做什麼處理。現在我們去新建一個EC2來作爲我們的博客服務器+數據庫服務器。
點擊左側的Instances之後可以看到如上圖所示的界面
如果您之前沒有啓動過EC2,這裏的列表應該是空的
我們點擊上圖中箭頭所指的藍色按鈕,Launch Instance
我們系統選擇Ubuntu 18.04,然後下一步
在第二頁Instance Type這裏,我們選擇t2.nano,點擊下一步
然後在第三步,Configure Instance Details這裏,我們全部保留默認即可。注意檢查是否有 enable auto assign public IP
在第四步我們把磁盤大小更改爲10GB,當然8GB也夠用。
第五步,我們爲我們的這個實例增加一個Tag,這樣的話我們在之前那個列表頁面就能一眼知道我們這個實例是做什麼用的了
在第六步我們要進行非常重要的安全組(Security Group)設置。
如圖所示,我們稍微更改一下這個安全組的名字和描述,然後點擊Add Rules添加HTTP和HTTPS。
如果不添加HTTP和HTTPS的話,這個服務器是不會允許外部訪問80端口和443端口的,那麼網頁就沒法顯示。因爲HTTP協議默認走80端口。
設置完安全組之後就是Review and Launch了,我們確認所有的設置沒有問題之後,點擊Launch啓動實例
然後你會看到這樣一個窗口,要求你選擇使用的密鑰,或者,如果你沒有創建過EC2,這裏就要新創建一個密鑰
這張圖假設你沒有在當前使用的這個賬戶上創建過EC2,那麼就需要創建一個新的密鑰對。我們輸入一個好記的名字之後點擊Download下載。
這一步真的很重要,如果你沒有下載或者下載之後丟失了密鑰對,你以後就再也沒辦法訪問使用這個密鑰對的實例了。
在EC2創建成功之後,我們找到之前創建的Elastic IP,點擊ip地址進行設置
選擇Associate Elastic IP address來把這個IP和我們剛剛啓動的EC2實例進行綁定
按照圖示進行配置
點擊instance之後可以看到instance ID和我們之前設置的Tag: Name
這就是爲什麼我們之前要設置Tag. 按照圖示進行設置之後點擊Associate即可。
3)配置DNS Record
我用的就是 阿里雲 購買的 域名,購買域名後,可以在阿里雲 免費DNS解析
4)配置putty登陸EC2實例
我們要鏈接到我們剛剛配置好的EC2 實例進行服務器端的軟件安裝和配置了。
如果您的本地計算機操作系統是 Linux 或 macOS X
SSH 客戶端
- 在終端窗口中,使用 ssh 命令連接到該實例。您指定私有密鑰的路徑和文件名 (.pem)、實例的用戶名以及實例的公有 DNS 名稱或 IPv6 地址。有關如何查找私有密鑰、實例的用戶名以及實例的 DNS 名稱或 IPv6 地址的更多信息,請參閱查找私有密鑰和獲取有關您的實例的信息。要連接到實例,請使用以下命令之一。
(公有 DNS)要使用實例的公有 DNS 名稱進行連接,請輸入以下命令
ssh -i /path/my-key-pair.pem my-instance-user-name@my-instance-public-dns-name
(IPv6) 或者,如果您的實例具有 IPv6 地址,要使用實例的 IPv6 地址進行連接,請輸入以下命令
ssh -i /path/my-key-pair.pem my-instance-user-name@my-instance-IPv6-address
- (可選) 驗證安全警報中的指紋是否與您之前在 (可選)獲取實例指紋 中獲得的指紋相匹配。如果這些指紋不匹配,則表示有人可能在試圖實施“中間人”攻擊。如果匹配,請繼續到下一步。
- 輸入 yes
連接成功
⚠️可能遇到的問題
🔍更多資料
📍使用 SSH 連接到 Linux 實例
https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html
📍排查實例的連接問題
https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html
安裝Nginx並進行基礎配置
Nginx是一款輕量級的網頁服務器,也可以用作反向代理、負載平衡器。在本篇博文中我們使用LNMP技術棧。LNMP指 Linux, Nginx, MySQL, PHP.
$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt install nginx -y
通過以上命令就可以安裝nginx. 接下來對nginx進行配置,其中,配置文件在 /etc/nginx/ 目錄下,默認的web文件在 /var/www/html目錄下。
我們可以直接訪問EC2的公網IP地址看到Nginx的說明頁。
然後更改Nginx配置
$ cd /etc/nginx/sites-available
$ sudo cp default blog
$ sudo vim blog
將root /var/www/html 改爲 root /var/www/blog
將server_name 改爲 server_name team-ag.com
完整文件
server {
listen 80;
listen [::]:80;
server_name team-ag.com;
root /var/www/blog;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /\.ht{
deny all;
}
}
然後我們把這個文件從sites-available中鏈接到sites-enabled裏面,表示正式啓用
$ sudo ln -s /etc/nginx/sites-available/blog /etc/nginx/sites-enabled/
然後返回 /var/www目錄
$ cd /var/www
$ sudo mkdir blog
$ cd blog
$ sudo bash -c ‘echo “pretending to be a blog” > index.html’
$ sudo systemctl restart nginx
$ sudo systemctl restart nginx //重啓nginx 每次更改conf都要重啓喲
然後訪問team-ag.com就可以看到我們剛剛新建的文件了
安裝 PHP並配置Nginx
PHP全稱PHP: Hypertext Preprocessor. 是一種開源的腳本語言。關於PHP的優缺點和關於它的一些爭論,我們這裏不做討論。我們選擇PHP的原因是因爲Wordpress是使用PHP寫成的現成的CMS軟件。
我們使用如下命令安裝PHP,並且更改Nginx配置以解析PHP
$ sudo apt install php-fpm php-mysql -y
$ sudo vim /etc/nginx/sites-available/blog
server {
listen 80;
root /var/www/blog;
index index.php index.html index.htm;
server_name team-ag.com;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
然後執行下面這個命令以驗證配置正確性
$ sudo nginx -t
如果看到提示 “nginx: configuration file /etc/nginx/nginx.conf test is successful” 則說明配置文件沒有問題,可以執行下一步操作。否則請檢查配置文件。
然後執行如下命令,重啓Nginx並在blog目錄下放一個php探針
$ sudo systemctl restart nginx
$ cd /var/www/blog
$ echo "\<?php phpinfo\(\)\; ?\>" | sudo tee info.php
然後訪問team-ag.com/info.php 查看php是否被正確解析
安裝MySQL
使用如下命令安裝MySQL
$ sudo apt install mysql-server -y
並使用下面的命令進行配置
$ sudo mysql_secure_installation
此部分配置有關SQL安全性。請在安裝時參考提示進行操作。
安裝Wordpress並配置
首先,進行wordpress的下載並解壓
$ cd /var/www
$ sudo wget https://wordpress.org/latest.tar.gz
$ sudo tar -xzvf latest.tar.gz
$ sudo rm -rf blog
$ sudo mv wordpress blog
然後參考下面的命令爲Wordpress配置數據庫
$ sudo mysql
$ mysql> CREATE DATABASE wordpress;
$ mysql> GRANT ALL PRIVILEGES ON wordpress.* TO "wpdb"@"localhost"
-> IDENTIFIED BY “password(設計個密碼 後期需要用喲!)”;
$ mysql> FLUSH PRIVILEGES;
$ mysql> EXIT
面的命令中 wpdb是用戶名,localhost是數據庫的地址,下一行的 password是你的數據庫密碼。請務必使用合適的密碼。
打開team-ag.com,根據提示填寫信息並下一步。
你可能會遇到“我無法創建wp-config.php”的問題
手動創建wp-config.php的方法:
一步一步往下走,最後會出現一個你可以複製的內容
根據網頁提示覆制 wp-config.php 的內容之後
$ cd /var/www/blog
$ sudo vim wp-config.php
打開編輯器之後按I進入insert模式,點擊鼠標右鍵粘貼複製的內容,然後按esc. 輸入:wq後回車即可。
🎉🎉🎉 成功!!🎉🎉🎉
附加:主體與插件安裝
下面咱們以安裝TablePress插件爲例
最方便的安裝 TablePress 的方式是通過您的 WordPress 控制面板。在“插件”頁面,單擊“安裝新插件”,在 WordPress 插件目錄搜索“TablePress”。然後,單擊“現在安裝”並等待安裝完成。最後,單擊“激活”後開始使用該插件!
但我們會遇到一些問題
- 解決WordPress安裝主題或插件需要FTP
- 解決無法創建目錄問題
出現無法創建目錄的確是權限的問題,不是目錄讀寫的權限,而是用戶組的問題
使用SFTP連接到服務器-SFTP的概念
sftp是Secure File Transfer Protocol的縮寫,安全文件傳送協議。可以爲傳輸文件提供一種安全的網絡的加密方法。sftp 與 ftp 有着幾乎一樣的語法和功能。SFTP 爲 SSH的其中一部分,是一種傳輸檔案至 Blogger 伺服器的安全方式。其實在SSH軟件包中,已經包含了一個叫作SFTP(Secure File Transfer Protocol)的安全文件信息傳輸子系統,SFTP本身沒有單獨的守護進程,它必須使用sshd守護進程(端口號默認是22)來完成相應的連接和答覆操作,所以從某種意義上來說,SFTP並不像一個服務器程序,而更像是一個客戶端程序。SFTP同樣是使用加密傳輸認證信息和傳輸的數據,所以,使用SFTP是非常安全的。但是,由於這種傳輸方式使用了加密/解密技術,所以傳輸效率比普通的FTP要低得多,如果您對網絡安全性要求更高時,可以使用SFTP代替FTP。
權限
chmod 命令
用來變更文件或目錄的權限。在 UNIX 系統家族裏,文件或目錄權限的控制分別以讀取、寫入、執行 3 種一般權限來區分,另有3種特殊權限可供運用。用戶可以使用 chmod 指令去變更文件與目錄的權限,設置方式採用文字或數字代號皆可。符號連接的權限無法變更,如果用戶對符號連接修改權限,其改變會作用在被連接的原始文件。
進入wp-content目錄,新建tmp文件夾,設置文件夾的權限爲777
權限 <--------------------------> chmod
更多信息:
📍chmod 命令
https://commandnotfound.cn/linux/1/163/chmod-命令
返回網站根目錄,編輯wp-config.php
添加下列代碼(注意中英文符號)
define(‘WP_TEMP_DIR’,ABSPATH.‘wp-content/tmp’);
define(“FS_METHOD”,“direct”);
define(“FS_CHMOD_DIR”,0777);
define(“FS_CHMOD_FILE”,0777);
注意:要在定義ABSPATH的後面添加
最後的代碼應該是
保存後設置wp-content目錄中的plugins和themes文件夾權限爲777,此時插件和主題已經可以直接更新了。注意操作順序,先建立tmp,後設置權限爲777,再修改wp-config.php配置文件
用戶組
想要下載插件的用戶組爲web用戶組,用戶名組名爲 www-data(可以在ngnix.conf中第一行查看,至於nginx.conf的位置 用locate nginx.conf搜索一下)
Linux查看權限命令:
ls -l 文件或文件夾
下面我們進行修改
chown -R www-data:www-data blog
特別鳴謝-人員
retaker
特別鳴謝-文章
http://blog.retaker.me
(本位在此文章上進行了修改,更加適配MAC電腦)