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

前提条件

  • 已创建ECS实例并为实例分配公网IP地址。具体操作,请参见创建方式导航
    本文示例步骤中,使用以下配置的ECS实例。实际操作时,建议您保持操作系统版本一致,避免因操作系统版本问题导致的命令执行报错。
    • 实例规格:ecs.c6.large
    • 操作系统:公共镜像Alibaba Cloud Linux 2.1903 LTS 64位
    • 网络类型:专有网络VPC
    • IP地址:公网IP
  • 已在实例安全组的入方向添加安全组规则并放行22、80端口。具体操作,请参见添加安全组规则
    说明 基于服务器数据安全考虑,本文仅说明部署与测试LAMP环境所必须放行的端口,您可以根据实际需求,放行其他应用所需的端口号。例如,远程连接MySQL数据库时,需要放行MySQL默认占用的3306端口。

背景信息

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

本文主要说明手动安装LAMP平台的操作步骤,您也可以在云市场购买LAMP镜像直接启动ECS,以便快速建站。

步骤一:准备工作

  1. 远程连接需要部署LAMP环境的ECS实例。
    具体操作,请参见连接方式概述
  2. 运行以下命令,查看操作系统的版本。
    cat /etc/redhat-release
    显示类似如下信息,表示操作系统为Alibaba Cloud Linux 2。
    [root@iZbp1j5vab2og8x6amc**** ~]# cat /etc/redhat-release
    Alibaba Cloud Linux (Aliyun Linux) release 2.1903 LTS (Hunting Beagle)
  3. 关闭防火墙。
    1. 运行systemctl status firewalld命令,查看当前防火墙的状态。
      查看防火墙状态
      • 如果防火墙的状态参数是inactive,则防火墙为关闭状态。
      • 如果防火墙的状态参数是active,则防火墙为开启状态。本示例中防火墙为开启状态,因此需要关闭防火墙。
    2. 关闭防火墙。如果防火墙为关闭状态,请忽略此步骤。
      • 如果您想临时关闭防火墙,运行命令systemctl stop firewalld
        说明 这只是暂时关闭防火墙,下次重启Linux后,防火墙还会开启。
      • 如果您想永久关闭防火墙,运行命令systemctl disable firewalld
        说明 如果您想重新开启防火墙,请参见firewalld官网信息
  4. 关闭SELinux。
    1. 运行getenforce命令查看SELinux的当前状态。
      • 如果SELinux状态参数是Disabled, 则SELinux为关闭状态。
      • 如果SELinux状态参数是Enforcing,则SELinux为开启状态。
    2. 关闭SELinux。如果SELinux为关闭状态,请忽略此步骤。
      • 如果您想临时关闭SELinux,运行命令setenforce 0
        说明 这只是暂时关闭SELinux,下次重启Linux后,SELinux还会开启。
      • 如果您想永久关闭SELinux,运行命令vi /etc/selinux/config编辑SELinux配置文件。回车后,把光标移动到SELINUX=enforcing这一行,按i键,将其修改为SELINUX=disabled, 按Esc键,然后输入:wq并回车以保存并关闭SELinux配置文件。 最后重启系统使设置生效。
        说明 如果您想重新开启SELinux,请参见SELinux的官方文档

步骤二:安装Apache

  1. 运行以下命令,安装Apache服务及扩展包。
    yum -y install httpd httpd-manual mod_ssl mod_perl
  2. 运行以下命令,查看Apache的版本号。
    httpd -v
    回显信息类似如下所示,表示Apache的版本号为2.4.6。
    [root@iZbp1j5vab2og8x6amc**** ~]# httpd -v
    httpd -v
    Server version: Apache/2.4.6 (AlibabaCloudLinux)
    Server built:   Mar 30 2022 17:14:52
  3. 依次运行以下命令,启动Apache服务并设置服务开机自启动。
    systemctl start httpd
    systemctl enable httpd
  4. 查看安装结果。
    1. 登录ECS管理控制台
    2. 在左侧导航栏,单击实例与镜像 > 实例
    3. 实例列表中找到正在部署环境的实例,从该实例的IP地址中复制公网IP。
    4. 在本地机器的浏览器地址栏中,输入http://实例公网IP并按Enter键。
      若返回页面如下图所示,说明Apache服务启动成功。dasd56

步骤三:安装并配置MySQL

  1. 运行以下命令,更新YUM源。
    rpm -Uvh  http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
  2. 运行以下命令,安装MySQL。
    说明 如果您使用的操作系统内核版本为el8,可能会提示报错信息No match for argument。您需要先运行命令yum module disable mysql禁用默认的MySQL模块,再安装MySQL。
    yum -y install mysql-community-server --nogpgcheck
  3. 运行以下命令,查看MySQL版本号。
    mysql -V
    返回结果类似如下所示,表示MySQL安装成功。
    mysql  Ver 14.14 Distrib 5.7.38, for Linux (x86_64) using  EditLine wrapper
  4. 运行以下命令,启动MySQL。
    systemctl start mysqld
  5. 依次运行以下命令,设置开机启动MySQL。
    systemctl enable mysqld
    systemctl daemon-reload
  6. 运行以下命令,查看MySQL的初始密码。
    grep "password" /var/log/mysqld.log
    返回结果示例如下,本示例中初始密码为ThTcjQTe+9R7
    2022-07-13T09:38:49.488700Z 1 [Note] A temporary password is generated for root@localhost: ThTcjQTe+9R7
  7. 运行以下命令,配置MySQL的安全性。
    mysql_secure_installation

    安全性的配置包含以下五个方面:

    1. 重置root账号的密码。
      说明 请您安全保管root账号的密码信息。
      Enter password for user root: #输入上一步获取的root用户初始密码。
      
      The existing password for the user account root has expired. Please set a new password.
      
      New password: #输入新密码,长度为8至30个字符,必须同时包含大小写英文字母、数字和特殊符号。特殊符号可以是()` ~!@#$%^&*-+=|{}[]:;‘<>,.?/
      
      Re-enter new password: #重复输入新密码。
      The 'validate_password' plugin is installed on the server.
      The subsequent steps will run with the existing configuration
      of the plugin.
      Using existing password for root.
      
      Estimated strength of the password: 100
      Change the password for root ? ((Press y|Y for Yes, any other key for No) :Y #按Y,并再次输入上步已设置的密码。
      
      New password: #再次输入新密码。
      
      Re-enter new password: #重复输入新密码。
      
      Estimated strength of the password: 100
      Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) :Y #按Y使用新密码。
    2. 输入Y删除匿名用户账号。
      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  #是否删除匿名用户,输入Y
      Success.
    3. 输入Y禁止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 #禁止root远程登录,输入Y
      Success.
    4. 输入Y删除test库以及对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) : Y #是否删除test库和对它的访问权限,输入Y
       - Dropping test database...
      Success.
      
       - Removing privileges on test database...
      Success.
    5. 输入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 #是否重新加载授权表,输入Y
      Success.
      
      All done!

步骤四:安装PHP

  1. 更新YUM源。
    1. 运行以下命令,添加epel源。
      yum install -y \
      https://repo.ius.io/ius-release-el7.rpm \
      https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    2. 运行以下命令,添加Webtatic源。
      rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
  2. 运行以下命令,安装PHP。
    yum -y install php70w-devel php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64  php70w-pdo.x86_64   php70w-mysqlnd  php70w-fpm php70w-opcache php70w-pecl-redis php70w-pecl-mongodb
  3. 运行以下命令,查看PHP版本。
    php -v
    返回结果如下所示,表示安装成功。
    PHP 7.0.33 (cli) (built: Dec  6 2018 22:30:44) ( NTS )
    Copyright (c) 1997-2017 The PHP Group
    Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
        with Zend OPcache v7.0.33, Copyright (c) 1999-2017, by Zend Technologies                
  4. 运行以下命令,在Apache网站根目录创建测试文件。
    echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
  5. 运行以下命令,重启Apache服务。
    systemctl restart httpd
  6. 在本地机器的浏览器地址栏中,输入http://实例公网IP/phpinfo.php并按Enter键。
    显示如下页面表示安装成功。PHP

(可选)步骤五:安装phpMyAdmin

phpMyAdmin是一个MySQL数据库管理工具,通过Web接口管理数据库方便快捷。

  1. 运行以下命令,创建phpMyAdmin数据存放目录。
    mkdir -p /var/www/html/phpmyadmin
  2. 运行以下命令,下载phpMyAdmin压缩包并解压。
    1. 依次运行以下命令,返回系统主目录并下载phpMyAdmin压缩包。
      cd
      wget --no-check-certificate https://files.phpmyadmin.net/phpMyAdmin/4.0.10.20/phpMyAdmin-4.0.10.20-all-languages.zip
    2. 运行以下命令,安装unzip工具并解压phpMyAdmin压缩包。
      yum install -y unzip
      unzip phpMyAdmin-4.0.10.20-all-languages.zip
  3. 运行以下命令,复制phpMyAdmin文件到创建的数据存放目录。
    mv phpMyAdmin-4.0.10.20-all-languages/*  /var/www/html/phpmyadmin
  4. 在本地机器浏览器地址栏,输入http://实例公网 IP/phpmyadmin并按Enter键,访问phpMyAdmin登录页面。
    若返回页面如下图所示,说明phpMyAdmin安装成功。phpMyAdmin安装成功
  5. 输入MySQL的用户名和密码,单击执行
    MySQL的用户名默认为root,密码为重置的密码输入用户名和密码
    如果出现以下页面,说明MySQL连接成功。MySQL连接成功