部署LAMP环境(Alibaba Cloud Linux/CentOS 7.x)

更新时间:

LAMP环境是常用的Web开发环境之一,其中LAMP分别代表Linux、Apache、MySQL和PHP。LAMP拥有庞大的社区支持和丰富的资源,适合开发、部署和维护各种规模的Web应用,由于其高度灵活性和可定制性,您可以根据项目需求调整每个组件的配置,以达到最佳性能和安全性。本文介绍如何在Alibaba Cloud Linux 3/2、CentOS 7.x操作系统的ECS实例内部署LAMP环境。

准备工作

创建用于部署LAMP环境的ECS实例,具体操作,请参见自定义购买实例

该实例必须满足以下条件:

  • 实例已分配公网IP地址或绑定弹性公网IP(EIP)。具体操作,请参见绑定和解绑弹性公网IP

  • 操作系统:Alibaba Cloud Linux 3/2、CentOS 7.x。

  • 实例安全组的入方向规则已放行22、80、443端口。具体操作,请参见添加安全组规则

步骤一:安装Apache

  1. 远程连接需要部署LAMP环境的ECS实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  2. 运行以下命令,安装Apache服务及扩展包。

    sudo yum -y install httpd httpd-manual mod_ssl mod_perl
  3. 运行以下命令,查看Apache的版本号。

    httpd -v

    返回结果类似如下所示,表示Apache安装成功。

    httpd -v

  4. 依次运行以下命令,启动Apache服务并设置服务开机自启动。

    sudo systemctl start httpd
    sudo systemctl enable httpd
  5. 运行以下命令,查看Apache状态。

    sudo systemctl status httpd

    返回结果如下所示,表示Apache服务已启动。

    image.png

步骤二:安装并配置MySQL

安装MySQL

  1. 当ECS实例操作系统为Alibaba Cloud Linux 3,需安装MySQL依赖包。

    sudo yum install compat-openssl10
  2. 运行以下命令,更新YUM源。

    sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
  3. 运行以下命令,安装MySQL。

    sudo yum -y install mysql-community-server
  4. 运行以下命令,查看MySQL版本号。

    mysql -V

    返回结果如下所示,表示MySQL安装成功。

    mysql  Ver 8.0.36 for Linux on x86_64 (MySQL Community Server - GPL)
  5. 运行以下命令,启动MySQL。

    sudo systemctl start mysqld
  6. 依次运行以下命令,设置开机启动MySQL。

    sudo systemctl enable mysqld
    sudo systemctl daemon-reload

配置MySQL

  1. 运行以下命令,查看/var/log/mysqld.log文件,获取并记录root用户的初始密码。

    sudo grep 'temporary password' /var/log/mysqld.log

    命令行返回结果如下,其中ARQTRy3+****为MySQL的初始密码。在下一步重置root用户密码时,会使用该初始密码。

    2021-11-10T07:01:26.595215Z 1 [Note] A temporary password is generated for root@localhost: ARQTRy3+****
  2. 运行以下命令,配置MySQL的安全性。

    sudo mysql_secure_installation
    1. 输入MySQL的初始密码。

      说明

      在输入密码时,系统为了最大限度地保证数据安全,命令行将不做任何回显。您只需要输入正确的密码信息,然后按Enter键即可。

      Securing the MySQL server deployment.
      
      Enter password for user root: #输入上一步获取的root用户初始密码
    2. 设置MySQL的新密码。

      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,再次确认使用新密码。
    3. 输入Y删除匿名用户。

      Remove anonymous users? (Press y|Y for Yes, any other key for No) :Y
      Success.
    4. 输入Y禁止使用root用户远程登录MySQL。

      Disallow root login remotely? (Press y|Y for Yes, any other key for No) :Y
      Success.
    5. 输入Y删除test库以及用户对test库的访问权限。

      Remove test database and access to it? (Press y|Y for Yes, any other key for No) :Y
       - Dropping test database...
      Success.
      
       - Removing privileges on test database...
      Success.
    6. 输入Y重新加载授权表。

      Reload privilege tables now? (Press y|Y for Yes, any other key for No) :Y
      Success.
      
      All done!

更多信息,请参见MySQL文档

步骤三:安装并配置PHP

安装PHP

  1. 安装PHP。

    Alibaba Cloud Linux 3

    1. 运行以下命令,更新YUM源。

      sudo rpm -Uvh https://mirrors.aliyun.com/remi/enterprise/remi-release-8.rpm  --nodeps
    2. 运行以下命令,启用php:remi-8.0模块流。

      sudo yum module enable -y php:remi-8.0
    3. 运行以下命令,安装PHP。

      sudo yum install -y php php-cli php-fpm php-common php-mysqlnd php-gd php-mbstring php-xml

    Alibaba Cloud Linux 2

    1. 运行以下命令,更新YUM源。

      sudo rpm -Uvh https://mirrors.aliyun.com/remi/enterprise/remi-release-7.rpm
    2. 运行以下命令,修改yum-plugin-releasever-adapter插件配置以支持remi源适配Alibaba Cloud Linux 2。

      sudo echo ", remi-php54.repo, remi-php71.repo, remi-php73.repo, remi-php80.repo, remi-php82.repo, remi.repo, epel.repo, remi-modular.repo, remi-php70.repo, remi-php72.repo, remi-php74.repo, remi-php81.repo, remi-php83.repo, remi-safe.repo" >> /etc/yum/pluginconf.d/releasever-adapter.conf
    3. 运行以下命令,启用PHP 8.0仓库。

      sudo  sed -i '1,10s/enabled=0/enabled=1/' /etc/yum.repos.d/remi-php80.repo
    4. 运行以下命令,安装PHP。

      sudo yum install -y php php-cli php-fpm php-common php-mysqlnd php-gd php-mbstring

    CentOS 7.x

    1. 更新YUM源。

      1. 运行以下命令,安装EPEL源和Remi仓库。

        sudo yum install -y epel-release
        sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
      2. 运行以下命令,启用PHP 8.0仓库。

        sudo yum install -y yum-utils
        sudo yum-config-manager --enable remi-php80
    2. 运行以下命令,安装PHP。

      sudo yum install -y php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json
  2. 运行以下命令,查看PHP版本。

    php -v

    返回结果如下所示,表示安装成功。

    PHP 8.0.30 (cli) (built: Aug  3 2023 17:13:08) ( NTS gcc x86_64 )
    Copyright (c) The PHP Group
    Zend Engine v4.0.30, Copyright (c) Zend Technologies           

修改Apache配置文件以支持PHP

  1. 运行以下命令,备份Apache配置文件。

    sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
  2. 修改Apache配置文件,添加Apache对PHP的支持。

    重要

    若不添加此配置信息,后续您使用浏览器访问PHP页面时,页面将无法显示。

    1. 运行以下命令,打开Apache配置文件。

      sudo vim /etc/httpd/conf/httpd.conf
    2. i进入编辑模式。

    3. 添加下列配置信息。

      <FilesMatch \.php$>
          SetHandler "proxy:fcgi://127.0.0.1:9000"
      </FilesMatch>
    4. Esc键,输入:wq,按Enter键关闭并保存配置文件。

    5. 运行以下命令,重启PHP-FPM.

      sudo systemctl restart php-fpm
  3. 运行以下命令,在Apache网站根目录创建测试文件。

    sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php'
  4. 运行以下命令,重启Apache服务。

    sudo systemctl restart httpd
  5. 在本地机器的浏览器地址栏中,输入http://实例公网IP/phpinfo.php并按Enter键。

    显示类似如下页面表示安装成功。

    image

  6. 成功搭建LAMP环境后,建议您删除phpinfo.php测试文件,以消除数据泄露风险。

    sudo rm -rf <网站根目录>/phpinfo.php

    本教程中网站根目录为/var/www/html,则需要运行以下命令删除测试文件。

    sudo rm -rf /var/www/html/phpinfo.php