部署环境要求

  • 实例规格的内存建议不少于4GB。

  • 实例已分配公网IP地址或绑定弹性公网IP(EIP)。

  • 操作系统必须为Alibaba Cloud Linux 3。

  • 实例安全组的入方向规已放行22、80、433端口。

安装前配置操作

  1. 连接到需要部署的ECS实例。

关闭防火墙。

  • 命令sudo systemctl status firewalld查找当前防火墙状态。如果状态显示是active,则防火墙为开启状态。

linux-firewall-active-status.png

  • 执行sudo systemctl stop firewalld来临时关闭防火墙。

linux-firewall-status.png

  • 也可以执行sudo systemctl disable firewalld来禁止开机自启动防火墙服务。

  • 关闭SELinux。SELinux是Linux内核的安全子系统,通过严格的访问控制机制增强系统安全性。一般情况下,建议开启SELinux来限制进程的权限,防止恶意程序通过提权等方式对系统进行攻击;然而,由于SELinux的严格访问控制机制,可能会导致一些应用程序或服务无法启动,因此在特定情况下(如开发、调试等),需暂时关闭SELinux

    1. 运行sudo getenforcesudo sestatus来查看SELinux的运行状态。如显示disabled表示未启动。

    2. SELinux可以运行命令sudo setenfce 0来临时关闭。

    3. 如果要永久关闭SELinux可以编辑它的配置文件sudo vi /etc/selinux/config中的SELINUX=enforcingSELINUX=permissive字段,将它修改为SELINUX=disable。修改完成后,需要重启ECS实例来应用配置。

安装

1. 安装Nginx
  • 运行命令sudo yum -y install nginx来安装Nginx。

  • 安装完成后使用nginx -V查看Nginx版本,来验证安装是否成功。

2. 安装MySql
  • 首先运行sudo yum install compat-openssl10来安装Mysql依赖包。

  • 然后更新yum源sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm

  • 运行命令sudo yum -y install mysql-community-server安装MySql。

  • 安装完成可以运行mysql -V,查看MySql版本号,来验证安装是否正确。

  • 运行命令sudo systemctl start mysqld来启动MySql服务器。

  • 使用命令sudo systemctl enable mysqldsudo systemctl daemon-reload来设置开机启动MySql服务。

3. 配置MySql
  1. 运行命令sudo grep 'temporary password' /var/log/mysqld.log查看mysql服务器的root用户的初始密码。

  2. 运行命令sudo mysql_secure_installation来配置MySql的安全性,包括:

    1. 重新设置root用户的密码。

    2. 删除匿名用户。

    3. 禁止使用root用户远程登录MySql。

    4. 删除test库以及用户对test库的访问权限。

    5. 重新加载授权表应用配置。

安装PHP

安装
  1. 运行命令sudo rpm -Uvh https://mirrors.aliyun.com/remi/enterprise/remi-release-7.rpm更新yum源。

  2. 运行命令sudo yum-config-manager --enable remi-php80 启用PHP8.0仓库。

  3. 运行命令sudo yum install -y php php-cli php-fpm php-common php-mysqlnd php-gd php-mbstring安装PHP。

  4. 运行命令php -v查看php版本。

更改Nginx配置文件来支持PHP
  • 备份nginx配置文件sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

  • 修改nginx配置文件,添加对PHP的支持。

  • /etc/nginx/nginx.conf文件中,修改server大括号内的location /配置信息如下:

location / {  
   index index.php index.html index.htm; 
}
  • 添加或修改location ~ .php$配置信息如下:

        #添加下列信息,配置Nginx通过fastcgi方式处理您的PHP请求。
        location ~ .php$ {
            root /usr/share/nginx/html;    #将/usr/share/nginx/html作为网站根目录。
            fastcgi_pass 127.0.0.1:9000;   #Nginx通过本机的9000端口将PHP请求转发给PHP-FPM进行处理。
            fastcgi_index index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include fastcgi_params;   #Nginx调用fastcgi接口处理PHP请求。
        }
  • 运行命令sudo systemctl start nginx来启动Nginx服务。

  • 运行命令sudo systemctl enable nginx将Nginx服务设置为开机启动运行。

配置PHP
  1. 在网站根目录下新建phpinfo.php文件,用于展示PHP信息。网站根目录是在nginx.conf配置文件中location ~ .php$大括号内,root选项所设置的值,在这里是/usr/share/nginx/html;

  2. phpinfo.php文件的内容是<?php echo phpinfo(); ?>,这会展示PHP所有的配置信息。

  3. 运行命令sudo systemctl start php-fpm来启动PHP-FPM。

  4. 运行命令sudo systemctl enable php-fpm设置PHP-FPM开机启动。

测试访问配置信息页面

在本地终端浏览器地址栏输入http://<ECS实例公网IP地址>/phpinfo.php,访问结果如下图所示,表示LNMP环境部署成功。

phpinfo.png