LAMP环境是常用的Web开发环境之一,其中LAMP分别代表Linux、Apache、MySQL和PHP。本文将介绍如何在Ubuntu操作系统的ECS实例内部署LAMP环境。

前提条件

  • 已创建ECS实例并为实例分配公网IP地址。具体操作,请参见使用向导创建实例
    本文示例步骤中,使用以下配置的ECS实例。实际操作时,建议您保持操作系统版本一致,避免因操作系统版本问题导致的命令执行报错。
    • 实例规格:ecs.c6.large
    • 操作系统:公共镜像Ubuntu 20.04 64位
    • 网络类型:专有网络VPC
    • IP地址:公网IP
  • 已在实例安全组的入方向添加安全组规则并放行22、80端口。具体操作请参见添加安全组规则

背景信息

本文适用于熟悉Linux操作系统,初次使用阿里云进行建站的个人用户。在示例步骤中使用了以下版本的软件。操作时,请您以实际软件版本为准。
  • Apache:2.4.41
  • MySQL:8.0.29
  • PHP:7.4.3

步骤一:准备工作

  1. 远程连接需要部署LAMP环境的ECS实例。
    具体操作,请参见连接方式概述
  2. 关闭系统内部防火墙。
    1. 运行以下命令,检查防火墙当前状态。
      sudo ufw status
      • 如果防火墙状态为Status: inactive,则表示防火墙为关闭状态。
      • 如果防火墙状态为Status: active,则表示防火墙为开启状态。
    2. 可选:关闭防火墙。
      如果您的防火墙为开启状态,需要运行以下命令,关闭防火墙并关闭开机自启动防火墙。
      sudo ufw disable
      说明 如果您想重新开启防火墙并开启开机自启动防火墙,请运行sudo ufw enable命令。

步骤二:安装Apache

  1. 运行以下命令,更新Ubuntu系统内的软件包。
    sudo apt update
  2. 运行以下命令,安装Apache。
    sudo apt-get -y install apache2
  3. 运行以下命令,查看Apache版本。
    apache2 -v
    返回结果如下所示,表示Apache已成功安装,Apache的版本为2.4.41。
    Server version: Apache/2.4.41 (Ubuntu)
    Server built:   2022-01-05T14:49:56
  4. 运行以下命令,启动Apache服务并设置服务开机自启动。
    sudo systemctl start apache2
  5. 在本地Windows主机或其他具备公网访问能力的主机中,通过浏览器访问http://<ECS实例公网IP地址>
    如果您访问到如下Apache默认首页信息,则表示Apache服务处于正常运行状态。apache首页

步骤三:安装并配置MySQL

  1. 安装MySQL。
    1. 运行以下命令,安装MySQL。
      sudo apt -y install mysql-server
    2. 运行以下命令,查看MySQL版本。
      sudo mysql -V
      返回结果类似如下所示,表示MySQL已成功安装,MySQL的版本为8.0.29。
      mysql  Ver 8.0.29-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))
  2. 运行以下命令,启动MySQL服务。
    sudo systemctl start mysql
  3. 配置MySQL。
    1. 运行以下命令,进入MySQL。
      sudo mysql
    2. 运行以下命令,设置root用户密码。
      ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'mynewpassword';
      本示例中密码以Mysql@1234为例,示例命令:
      ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'Mysql@1234';
    3. 运行以下命令,退出MySQL数据库。
      exit;
    4. 运行以下命令,对MySQL进行安全性配置。
      sudo mysql_secure_installation
    5. 根据命令行提示,依次完成以下配置项。
      1. 输入root用户的密码。本示例中输入Mysql@1234
        root@iZbp19jsi7s0g7m4zgc****:~# sudo mysql_secure_installation
        
        Securing the MySQL server deployment.
        
        Enter password for user root: 
        说明 在输入密码时,系统为了最大限度的保证数据安全,命令行将不做任何回显。您只需要输入正确的密码信息,然后按Enter键即可。
      2. 输入Y,更改root用户密码。
        Change the password for root ? ((Press y|Y for Yes, any other key for No) : Y
      3. 输入root用户密码。
        New password:
        
        Re-enter new password:
        
        Estimated strength of the password: 100
      4. 输入Y,确认使用已设置的密码。
        Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y
      5. 输入Y删除MySQL自带的匿名用户。
        By default, a MySQL installation has an anonymous user,
        allowing anyone to log into MySQL without having to have
        a user account created for them. This is intended only for
        testing, and to make the installation go a bit smoother.
        You should remove them before moving into a production
        environment.
        
        Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
      6. 输入Y,禁止MySQL的root用户的远程登录权限。
        Normally, root should only be allowed to connect from
        'localhost'. This ensures that someone cannot guess at
        the root password from the network.
        
        Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
      7. 输入Y,移除test数据库。
        By default, MySQL comes with a database named 'test' that
        anyone can access. This is also intended only for testing,
        and should be removed before moving into a production
        environment.
        
        
        Remove test database and access to it? (Press y|Y for Yes, any other key for No) : 
      8. 输入Y,重新加载授权表。
        Reloading the privilege tables will ensure that all changes
        made so far will take effect immediately.
        
        Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
        当命令行回显All done!时,表示配置完成。
  4. 测试登录MySQL数据库。
    1. 运行以下命令,登录MySQL数据库。
      sudo mysql -uroot -p
    2. 在命令行回显的Enter password:后输入已设置的数据库密码。
      说明 在输入密码时,系统为了最大限度的保证数据安全,命令行将不做任何回显。您只需要输入正确的密码信息,然后按Enter键即可。
      成功登录MySQL数据库后,命令行信息如下所示。
      root@iZbp19jsi7s0g7m4zgc****:~# sudo mysql -uroot -p
      Enter password:
      Welcome to the MySQL monitor.  Commands end with ; or \g.
      Your MySQL connection id is 15
      Server version: 8.0.29-0ubuntu0.20.04.3 (Ubuntu)
      
      Copyright (c) 2000, 2022, Oracle and/or its affiliates.
      
      Oracle is a registered trademark of Oracle Corporation and/or its
      affiliates. Other names may be trademarks of their respective
      owners.
      
      Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
      
      mysql>
    3. 运行以下命令,退出MySQL数据库。
      exit;

步骤四:安装PHP

  1. 运行以下命令,安装PHP。
    sudo apt -y install php-fpm
    sudo apt -y install libapache2-mod-php
  2. 运行以下命令,查看PHP版本。
    sudo php -v
    返回结果类似如下所示,表示PHP已成功安装,PHP的版本为7.4.3。
    PHP 7.4.3 (cli) (built: Nov 25 2021 23:16:22) ( NTS )
    Copyright (c) The PHP Group
    Zend Engine v3.4.0, Copyright (c) Zend Technologies
        with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

步骤五:创建并访问测试网页

  1. 在Apache网站根目录中,创建测试网页。
    1. 运行以下命令,查看Apache网站根目录的路径信息。
      sudo cat /etc/apache2/sites-available/000-default.conf
      命令行返回结果中的DocumentRoot /var/www/html一行,即表示网站根目录为/var/www/html
    2. 运行以下命令,在网站根目录创建测试网页,并把phpinfo()函数添加至网页内容中。
      phpinfo()函数会展示PHP的所有配置信息。
      sudo echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
  2. 运行以下命令,重启Apache服务。
    sudo systemctl restart apache2
  3. 在本地Windows主机或其他具备公网访问能力的主机中,通过浏览器访问http://<ECS实例公网IP地址>/phpinfo.php
    访问结果如下图所示,成功查看到PHP配置信息页面,表示LAMP环境部署成功。php测试网页

后续步骤

成功搭建LAMP环境后,建议您删除phpinfo.php测试文件,消除数据泄露风险。
rm -rf <网站根目录>/phpinfo.php
本教程中网站根目录为/var/www/html,则需要运行以下命令删除测试文件。
rm -rf /var/www/html/phpinfo.php