从零开始:阿里云ECS部署LNMP+WordPress实录(一)

发布于 2020-03-12  31 次阅读


这些年来一直通过网上的各种技术资料进行学习,从Github、CSDN、到简书等等......慢慢也就萌生了搭建个人博客的想法,希望对自己的学习历程做一点记录。如果与此同时能对他人起到些许的帮助,则更是我作为一名互联网人的荣幸与对互联网的感恩。正巧手头有一台闲置的阿里云学生优惠的ECSn4实例(1核 2G 40G),便于近日开启了自己的第一程博客之旅。

实例:阿里云ECS实例 1核(100%) 2G RAM,40G云盘,1Mbps固定带宽 点杭州。(实际情况1Mbps访问略慢,不过完全处在可接受范围内。如果条件允许,可以尝试按量计费或其他弹性产品。)
操作系统:CentOS 8.1
配置方案:Nginx + Mysql 8.0 + PHP 7.3

一、服务器设置

修改服务器名

为方便进行管理,修改默认的随机服务器名。

hostnamectl set-hostname new_hostname


ssh端口配置

默认情况下,ssh在22端口监听运行。为防止恶意扫描和渗透,建议对端口进行更换。(注:不建议使用1024以下的端口。这部分端口在linux内为特权端口,仅限root用户使用,可能导致ssh无法连接。)

在服务器上进行操作之前,请首先确保在云服务器的防火墙上添加入方向规则,允许目标端口的tcp协议。

在端口范围处,填写允许的端口范围。规则方向选入方向,授权对象按照ip地址和掩码规范进行填写。默认0.0.0.0/0表示全部允许。

在服务器终端输入

sudo vi /etc/ssh/sshd_config


对Port行进行修改 将默认的22修改为目标端口号。
修改之后,执行sudo systemctl restart sshd,重启ssh服务。

修改国内源地址

首先对系统的3个原始repo进行备份:

cd /etc/yum.repos.d/
sudo cp CentOS-AppStream.repo CentOS-AppStream.repo.bak
sudo cp CentOS-Base.repo CentOS-Base.repo.bak
sudo cp CentOS-Extras.repo CentOS-Extras.repo.bak

编辑3个.repo文件,注释掉mirrorlist行,并把baseurl前的#去掉。
把baseurl里的 mirror.centos.org/$contentdir 修改为 mirrors.aliyun.com/centos 即可。 (地址可能有变,以最新为准)
修改完后对yum进行更新。

sudo yum clean all
sudo yum makecache
sudo yum update

二、Nginx部署

写在前面:LNMP部分有多安装方式,可根据实际需要进行选择。可以使用LNMP一键安装包进行安装,感谢小伙伴Tom的安利。具体移步:LNMP一键安装包。此外还可以下载源文件自行编译,也可以直接使用yum/dnf等包管理器进行安装。本文使用后者方法。

在终端输入

sudo yum install nginx

等待安装完成之后,对nginx进行配置:
有两种配置方法:1.修改主配置文件 2.对各站点分别配置(适合多站点服务器)
简单起见,本文直接修改主配置文件,分别配置原理相同,将配置文件存入 /etc/nginx/conf.d/目录内即可。

在配置文件中找到server{}段落,对其中的内容进行修改。
参数解释:
listen: 监听端口号, 默认为HTTP 80端口,根据实际情况修改。
server_name:listen如果匹配失败,则使用这行填写的域名进行匹配。非多站点服务器保持默认即可。
root:网站根目录,可根据实际情况设定。本文保持默认。
找到location \{} 段落,添加:
index index.php index.html index.htm;
控制被配置网站所默认访问的页面。
在 location \{}段落下面,添加如下代码,使nginx支持php访问:

location ~ \.php{
            root /usr/share/nginx/html;
            try_filesuri = 404;
            fastcgi_pass unix:/run/php-fpm/www.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME document_rootfastcgi_script_name;
            include fastcgi_params;
}

保存退出,授予nginx网站根目录的权限。

sudo chown +R nginx:nginx /网站根目录/

在终端中启用nginx:

sudo systemctl enable nginx    # 将Nginx设置为开机自启
sudo systemctl start nginx     # 启动Nginx
systemctl status nginx         # 查看Nginx状态

如果出现绿色的active标志,则说明启动成功。如果出现红色的failed,可能是配置文件存在问题,建议进行检查。
接下来,我们可以再浏览器里访问服务器IP:端口号,来检测nginx是否正常运行(此时要求nginx配置文件的root目录内含有默认访问的页面)。
如果出现类似下图的欢迎页面,则nginx正常工作。至此,nginx配置完成。