使用AWS Educate Starter Account 创建博客_CodingPark编程公园

开启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 客户端

  1. 在终端窗口中,使用 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

  1. (可选) 验证安全警报中的指纹是否与您之前在 (可选)获取实例指纹 中获得的指纹相匹配。如果这些指纹不匹配,则表示有人可能在试图实施“中间人”攻击。如果匹配,请继续到下一步。
  2. 输入 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”。然后,单击“现在安装”并等待安装完成。最后,单击“激活”后开始使用该插件!

但我们会遇到一些问题

  1. 解决WordPress安装主题或插件需要FTP
  2. 解决无法创建目录问题
    出现无法创建目录的确是权限的问题,不是目录读写的权限而是用户组的问题

使用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电脑)

在这里插入图片描述

评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符 “速评一下”
©️2020 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页
实付 79.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值