阿里云手动部署LNMP环境(CentOS 8)

阿里云手动部署LNMP环境(CentOS 8)

前提条件,已经申请了阿里云ECS实例,假设公网IP被分配为123.45.16.666,操作系统选择公共镜像CentOS 8.4 64 scc版,如果已经选择了其他操作系统,按下面步骤更换。

  1. 操作系统:这里选择公共镜像CentOS 8.4 64 scc版(也可以选阿里云centos 8.2 64)
    注:更换操作系统步骤,先停止ECS实例/阿里云控制台/ECS实例/竖着的三个点点/更改操作系统

  2. 查看防火墙确认是inactive状态
    systemctl status firewalld

关闭防火墙的方法:

    关闭防火墙。
	  sudo systemctl stop firewalld

    更多的步骤,直接在实例开机时禁止启动防火墙服务。
    sudo systemctl disable firewalld

  1. 关闭SELinux。
    getenforce 希望是disabled状态
临时关闭的方法
sestatus//查看状态
setenforce 0//临时关闭

永久关闭参见
https://help.aliyun.com/zh/ecs/use-cases/enable-or-disable-selinux#7201251214a40

必须步骤:centos换源

操作步骤

  • 先备份之前的repo文件。
    rename '.repo' '.repo.bak' /etc/yum.repos.d/*.repo

  • 运行以下命令下载最新的repo文件。

wget http://mirrors.cloud.aliyuncs.com/repo/Centos-vault-8.5.2111.repo -O /etc/yum.repos.d/Centos-vault-8.5.2111.repo

wget http://mirrors.cloud.aliyuncs.com/repo/epel-archive-8.repo -O /etc/yum.repos.d/epel-archive-8.repo

重要:如果服务器不是ECS实例,将命令中的源地址http://mirrors.cloud.aliyuncs.com替换为http://mirrors.aliyun.com。
您也可以直接参考
CentOS 镜像社区的说明进行下载。

  • 继续运行以下命令替换repo文件中的链接。

sed -i 's/http:\/\/mirrors.cloud.aliyuncs.com/url_tmp/g'  /etc/yum.repos.d/Centos-vault-8.5.2111.repo &&  sed -i 's/http:\/\/mirrors.aliyun.com/http:\/\/mirrors.cloud.aliyuncs.com/g' /etc/yum.repos.d/Centos-vault-8.5.2111.repo && sed -i 's/url_tmp/http:\/\/mirrors.aliyun.com/g' /etc/yum.repos.d/Centos-vault-8.5.2111.repo
sed -i 's/http:\/\/mirrors.aliyun.com/http:\/\/mirrors.cloud.aliyuncs.com/g' /etc/yum.repos.d/epel-archive-8.repo
  • 运行以下命令重新创建缓存。

yum clean all && yum makecache

稍等一下,yum源和epel源切换完成后,即可使用yum install命令在实例上安装所需要的软件包。

参考资料
https://help.aliyun.com/zh/ecs/user-guide/change-centos-8-repository-addresses#task-2182261
https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3b311b11wDHrGv

4.安装Nginx
去这里找一个想安装的版本
http://nginx.org/packages/centos/8/x86_64/RPMS/

nginx-1.16.0-1.el8.ngx.x86_64.rpm                  09-May-2019 10:06              815600

nginx-1.16.1-1.el8.ngx.x86_64.rpm                  13-Aug-2019 16:17              816120

nginx-1.18.0-1.el8.ngx.x86_64.rpm                  21-Apr-2020 15:19              825436

nginx-1.18.0-2.el8.ngx.x86_64.rpm                  29-Oct-2020 15:35              817796

nginx-1.20.0-1.el8.ngx.x86_64.rpm                  20-Apr-2021 16:22              839224

nginx-1.20.1-1.el8.ngx.x86_64.rpm                  25-May-2021 13:56              839020

nginx-1.20.2-1.el8.ngx.x86_64.rpm                  16-Nov-2021 15:20              839708

nginx-1.22.0-1.el8.ngx.x86_64.rpm                  24-May-2022 15:52              846400

nginx-1.22.1-1.el8.ngx.x86_64.rpm                  19-Oct-2022 10:58              848104

nginx-1.24.0-1.el8.ngx.x86_64.rpm                  11-Apr-2023 17:47              855792

看中了nginx-1.24.0-1.el8.ngx.x86_64.rpm 于是下载:
sudo dnf -y install http://nginx.org/packages/centos/8/x86_64/RPMS/nginx-1.24.0-1.el8.ngx.x86_64.rpm

将选用Nginx 1.24.0版本。

查看Nginx版本
nginx -v

[root@iZ2zeh5zfjijmspark1vxdZ ~]# nginx -v
nginx version: nginx/1.24.0

  1. 安装MySQL
    sudo dnf -y install @mysql

查看安装好了的MySQL版本
mysql -V

[root@iZ2zeh5zfjijmspark1vxdZ ~]# mysql -V
mysql  Ver 8.0.26 for Linux on x86_64 (Source distribution)
[root@iZ2zeh5zfjijmspark1vxdZ ~]# 


  1. 更新epel源
添加并更新epel源。

sudo dnf -y install epel-release
sudo dnf -y update epel-release
  1. 安装并启用php
  • 先检查可以安装的php有哪些版本
    output a list of available modules (versions) of PHP which you can install on your system.
    sudo dnf module list php
比如我的系统:

[root@iZ2zeh5zfjijmspark1vxdZ ~]# sudo dnf module list php
Last metadata expiration check: 2:53:00 ago on Mon 01 Jan 2024 14:27:59 CST.
CentOS-8.5.2111 - AppStream - mirrors.cloud.aliyuncs.com
Name                              Stream                               Profiles                                               Summary                                           
php                               7.2 [d]                              common [d], devel, minimal                             PHP scripting language                            
php                               7.3                                  common [d], devel, minimal                             PHP scripting language                            
php                               7.4                                  common [d], devel, minimal                             PHP scripting language                            

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled


那么可选的有php 7.2/7.3/7.4 这里选择安装php:7.4模块
sudo dnf module enable php:7.4

继续运行以下命令,安装PHP相应的模块。

sudo dnf -y install php php-curl php-dom php-exif php-fileinfo php-fpm php-gd php-hash php-json php-mbstring php-mysqli php-openssl php-pcre php-xml libsodium

运行以下命令,删除缓存的无用软件包并更新软件源。

sudo dnf clean all
sudo dnf makecache


运行以下命令查看安装好的PHP版本。

php -v

  1. 配置Nginx
    cat /etc/nginx/nginx.conf

注意下面的备份

在http后面的大括号内,找include 后面带着的配置项。
那是配置文件的默认路径,将这个文件夹下面的conf.d 备份分一下。

比如写的是 include /etc/nginx/conf.d/*.conf;

那么就用下面的指令备份default.conf,将其重命名为XXX.bak
cd /etc/nginx/conf.d
sudo cp default.conf default.conf.bak

继续修改默认配置文件:
sudo nano default.conf

nano编辑器基本用法
键盘挪动光标
Ctrl+W查找关键字
Ctrl+X 保存
Y确认保存文件
N不保存文件

在location大括号内,修改以下内容
(index后添加index.php字样)。

修改后应该为
location / {
    #将该路径替换为您的网站根目录。
    root   /usr/share/nginx/html;
    #添加默认首页信息index.php。
    index  index.html index.htm index.php;
}

另外,去掉被注释的location ~ \.php$大括号内容,并修改大括号里的内容

修改前如下
   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;
    }

修改后如下


location ~ \.php$ {
    #将该路径替换为您的网站根目录。
    root           /usr/share/nginx/html;
    #Nginx通过unix套接字与PHP-FPM建立联系,该配置与/etc/php-fpm.d/www.conf文件内的listen配置一致。
    fastcgi_pass   unix:/run/php-fpm/www.sock;
    fastcgi_index  index.php;
    #将/scripts$fastcgi_script_name修改为$document_root$fastcgi_script_name。
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    #Nginx调用fastcgi接口处理PHP请求。
    include        fastcgi_params;
}

也就是添加index.php字样之后,将原有的location ~ .php$ {}部分直接注释掉,把下面部分直接加入文件

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

保存退出

9.设置开机自启动nginx

sudo systemctl start nginx

sudo systemctl enable nginx

10.配置mysql

sudo systemctl enable --now mysqld

查看一下是否启动了(应该是active)
sudo systemctl status mysqld

设置密码
sudo mysql_secure_installation



命令运行后,根据命令行提示执行如下操作。

    输入Y并回车开始相关配置。

    选择密码验证策略强度,输入2并回车。

    策略0表示低,1表示中,2表示高。建议选择高强度的密码验证策略。

    设置MySQL的新密码并确认。

    本示例设置密码password666。

    输入Y并回车继续使用提供的密码。

    输入Y并回车移除匿名用户。

    设置是否允许远程连接MySQL。选择N

        不需要远程连接时,输入Y并回车。

        需要远程连接时,输入N或其他任意非Y的按键,并回车。
		本例选择Y,不需要远程连接。

    输入Y并回车删除test库以及对test库的访问权限。

    输入Y并回车重新加载授权表。

  1. 配置PHP
    打开配置文件
    sudo nano /etc/php-fpm.d/www.conf

找到user = apache和group = apache,将apache修改为nginx。

  1. 测试安装结果:
    新建并编辑phpinfo.php文件
    sudo nano /usr/share/nginx/html/phpinfo.php

文件写入下面的内容,保存

运行命令启动php-fpm
sudo systemctl start php-fpm

设置php-fpm开机自启动
sudo systemctl enable php-fpm

浏览器访问
http://123.45.16.666/phpinfo.php
测试出现刚刚安装的php等相关信息图样,测试合格。

安装成功,立刻删除以下文档,防止网站信息泄露
sudo rm -rf /usr/share/nginx/html/phpinfo.php

你可能感兴趣的:(阿里云,centos,云计算)