本教程介绍如何使用云服务器ECS实例搭建LAMP平台,其中LAMP分别代表Linux、Apache、MySQL和PHP。

前提条件

使用本教程进行操作前,请确保您已经注册了阿里云账号。如还未注册,请先完成账号注册

背景信息

本篇教程在示例步骤中使用了以下配置的ECS实例:
  • 实例规格:ecs.c6.large
  • 操作系统:CentOS 7.2 64位
  • 专有网络
  • 公网IP
本篇教程在示例步骤中使用了以下版本的软件。操作时,请您以实际软件版本为准。
  • Apache:2.4.43
  • MySQL:5.6.24
  • PHP:7.0.32
  • phpMyAdmin:4.0.10.20

本篇教程适用于熟悉Linux操作系统,初次使用阿里云进行建站的个人用户。

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

操作步骤

步骤一:准备编译环境

  1. 使用向导创建实例
  2. 通过VNC远程连接登录Linux实例
  3. 运行命令cat /etc/redhat-release查看系统版本。
    查看系统版本
  4. 关闭防火墙。
    1. 运行systemctl status firewalld命令查看当前防火墙的状态。
      查看防火墙状态
      • 如果防火墙的状态参数是inactive,则防火墙为关闭状态。
      • 如果防火墙的状态参数是active,则防火墙为开启状态。本示例中防火墙为开启状态,因此需要关闭防火墙。
    2. 关闭防火墙。如果防火墙为关闭状态,请忽略此步骤。
      • 如果您想临时关闭防火墙,运行命令systemctl stop firewalld
        说明 这只是暂时关闭防火墙,下次重启Linux后,防火墙还会开启。
      • 如果您想永久关闭防火墙,运行命令systemctl disable firewalld
        说明 如果您想重新开启防火墙,请参见firewalld官网信息
  5. 关闭SELinux。
    1. 运行getenforce命令查看SELinux的当前状态。
      查看SELinux状态
      • 如果SELinux状态参数是Disabled, 则SELinux为关闭状态。
      • 如果SELinux状态参数是Enforcing,则SELinux为开启状态。本示例中SELinux为开启状态,因此需要关闭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的官方文档
    3. 重启系统使设置生效。
  6. 在实例安全组的入方向添加规则,放行所需端口。具体步骤,请参见添加安全组规则

步骤二:安装Apache

  1. 依次运行以下命令安装依赖包。
    1. yum groupinstall "Development Tools" -y
    2. yum install libtool -y
    3. yum install expat-devel pcre pcre-devel openssl-devel -y
  2. 依次运行以下命令下载并解压Apache,Apr和Apr-util的源码包。
    说明 源码包版本会不断升级。您可以从httpd源码安装包apr源码安装包页面查看可用的源码包版本,并将命令中的源码包版本替换为待安装的版本。
    1. wget https://mirrors.aliyun.com/apache/httpd/httpd-<Apache源码包版本>.tar.gz

      本示例步骤中,使用的Apache源码安装包版本为2.4.43,因此下载命令为:

      wget https://mirrors.aliyun.com/apache/httpd/httpd-2.4.43.tar.gz
    2. wget https://mirrors.aliyun.com/apache/apr/apr-<Apr源码包版本>.tar.gz

      本示例步骤中,使用的Apr源码安装包版本为1.6.5,因此下载命令为:

      wget https://mirrors.aliyun.com/apache/apr/apr-1.6.5.tar.gz
    3. wget https://mirrors.aliyun.com/apache/apr/apr-util-<Apr-util源码包版本>.tar.gz

      本示例步骤中,使用的Apr-util源码安装包版本为1.6.1,因此下载命令为:

      wget https://mirrors.aliyun.com/apache/apr/apr-util-1.6.1.tar.gz
    4. tar xvf httpd-<Apache源码包版本>.tar.gz -C /usr/local/src

      本示例步骤中,使用的Apache源码安装包版本为2.4.43,因此解压命令为:

      tar xvf httpd-2.4.43.tar.gz -C /usr/local/src
    5. tar xvf apr-<Apr源码包版本>.tar.gz -C /usr/local/src

      本示例步骤中,使用的Apr源码安装包版本为1.6.5,因此解压命令为:

      tar xvf apr-1.6.5.tar.gz -C /usr/local/src
    6. tar xvf apr-util-<Apr-util源码包版本>.tar.gz -C /usr/local/src

      本示例步骤中,使用的Apr-util源码安装包版本为1.6.1,因此解压命令为:

      tar xvf apr-util-1.6.1.tar.gz -C /usr/local/src
  3. 依次运行以下命令把Apr和Apr-util的文件夹移到Apache的srclib文件夹下。
    1. cd /usr/local/src
    2. mv apr-<apr源码包版本> httpd-<Apache源码包版本>/srclib/apr

      本示例步骤中,使用的Apr和Apache源码安装包版本分别为1.6.5和2.4.43,因此移动文件夹的命令为:

      mv apr-1.6.5 httpd-2.4.43/srclib/apr
    3. mv apr-util-<Apr-util源码包版本> httpd-<Apache源码包版本>/srclib/apr-util

      本示例步骤中,使用的Apr-util和Apache源码安装包版本分别为1.6.1和2.4.43,因此移动文件夹的命令为:

      mv apr-util-1.6.1 httpd-2.4.43/srclib/apr-util
  4. 依次运行以下命令编译源码。
    1. cd /usr/local/src/httpd-<源码包版本>

      本示例步骤中,使用的Apache源码包版本为2.4.43,因此进入Apache源码所在目录的命令为:

      cd /usr/local/src/httpd-2.4.43
    2. ./buildconf
    3. ./configure --prefix=/usr/local/apache2 \
      --enable-ssl \
      --enable-so \
      --with-mpm=event \
      --with-included-apr \
      --enable-cgi \
      --enable-rewrite \
      --enable-mods-shared=most \
      --enable-mpms-shared=all
    4. make && make install
  5. 依次运行以下命令设置PATH环境变量。
    1. echo "export PATH=$PATH:/usr/local/apache2/bin" > /etc/profile.d/httpd.sh
    2. source /etc/profile.d/httpd.sh
  6. 运行httpd -v命令可查看Apache的版本号。
    http-v
  7. 添加Apache的启动配置文件。
    1. 运行vi /usr/lib/systemd/system/httpd.service命令,打开Apache的启动配置文件。
    2. 按下i键,然后在配置文件中写下如下内容。
      [Unit] 
      Description=The Apache HTTP Server 
      After=network.target 
      
      [Service] 
      Type=forking 
      ExecStart=/usr/local/apache2/bin/apachectl -k start 
      ExecReload=/usr/local/apache2/bin/apachectl -k graceful 
      ExecStop=/usr/local/apache2/bin/apachectl -k graceful-stop 
      PIDFile=/usr/local/apache2/logs/httpd.pid 
      PrivateTmp=false
      
      [Install] 
      WantedBy=multi-user.target
    3. 按下Esc键,然后输入:wq并回车以保存并关闭Apache启动配置文件。
  8. 依次运行以下命令启动Apache服务并设置服务开机自启动。
    1. systemctl start httpd
    2. systemctl enable httpd
  9. 查看安装结果。
    1. 登录ECS管理控制台
    2. 在左侧导航栏,单击实例与镜像 > 实例
    3. 实例列表中找到正在部署环境的实例,从这个实例的IP地址项中复制它的公网IP。
    4. 在本地机器的浏览器地址栏中,输入http://实例公网IP并按Enter键。
      若返回页面如下图所示,说明Apache服务启动成功。默认欢迎页面

步骤三:安装MySQL

  1. 准备MySQL的编译环境和工作目录。
    1. 依次运行以下命令准备编译环境。
      1. yum install ncurses-devel bison gnutls-devel -y
      2. yum install cmake -y
    2. 依次运行以下命令准备MySQL数据存放目录,并添加用户和用户组。
      1. cd
      2. mkdir /mnt/data
      3. groupadd -r mysql
      4. useradd -r -g mysql -s /sbin/nologin mysql
      5. id mysql
    3. 运行以下命令更改数据目录属主和属组。
      chown -R mysql:mysql /mnt/data
  2. 依次运行以下命令下载稳定版源码包并解压、编译。
    说明 如果MySQL官方的下载链接异常,建议您在ECS实例中通过第三方链接下载MySQL源码包,或者您也可以通过MySQL官网或第三方途径下载MySQL源码包,然后使用远程连接工具(例如PuTTY)将源码包上传至ECS实例。
    1. 使用以下任意一种方式下载源码包。本示例中,使用的MySQL源码包版本为5.6.24。

      • wget https://dev.mysql.com/get/Downloads/mysql-5.6.24.tar.gz
      • wget https://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.24.tar.gz
    2. tar xvf mysql-5.6.24.tar.gz -C  /usr/local/src
    3. cd /usr/local/src/mysql-5.6.24
    4. cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
      -DMYSQL_DATADIR=/mnt/data \
      -DSYSCONFDIR=/etc \
      -DWITH_INNOBASE_STORAGE_ENGINE=1 \
      -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
      -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
      -DWITH_READLINE=1 \
      -DWITH_SSL=system \
      -DWITH_ZLIB=system \
      -DWITH_LIBWRAP=0 \
      -DMYSQL_TCP_PORT=3306 \
      -DDEFAULT_CHARSET=utf8 \
      -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
      -DDEFAULT_COLLATION=utf8_general_ci \
      -DWITH_SYSTEMD=1 \
      -DINSTALL_SYSTEMD_UNITDIR=/usr/lib/systemd/system 
    5. make && make install
  3. 配置MySQL。
    1. 运行以下命令修改安装目录的属组为mysql。
      chown -R mysql:mysql /usr/local/mysql/
    2. 依次运行以下命令初始化数据库并复制配置文件。
      1. cd /usr/local/mysql
      2. /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/mnt/data/
      3. mv /etc/my.cnf /etc/my.cnf.bak
      4. cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
    3. 运行以下命令修改配置文件中的安装路径及数据目录存放路径。
      echo -e "basedir = /usr/local/mysql\ndatadir = /mnt/data\n" >> /etc/my.cnf
    4. 修改MySQL的启动配置文件。
      1. 运行命令vi /usr/lib/systemd/system/mysql.service打开MySQL的启动配置文件。
      2. 按下i键,然后添加如下内容:
        [Unit]
        Description=MySQL Community Server
        After=network.target
        After=syslog.target
        
        [Install]
        WantedBy=multi-user.target
        Alias=mysql.service
        
        [Service]
        User=mysql
        Group=mysql
        PermissionsStartOnly=true
        ExecStart=/usr/local/mysql/bin/mysqld
        TimeoutSec=600
        Restart=always
        PrivateTmp=false
      3. 按下Esc键,然后输入:wq并回车以保存并关闭MySQL启动配置文件。
  4. 依次运行以下命令设置PATH环境变量。
    1. echo "export PATH=$PATH:/usr/local/mysql/bin" > /etc/profile.d/mysql.sh
    2. source /etc/profile.d/mysql.sh
  5. 依次运行以下命令启动MySQL服务并设置开机自启动。
    1. systemctl start mysql
    2. systemctl enable mysql
  6. 修改MySQL的root用户密码。运行以下命令,并按界面提示设置密码。
    mysqladmin -u root password
    如果连接时出现mysql.sock相关报错,可能的原因如下:
    • mysql服务未正常运行。您可以运行命令service mysqld status判断服务是否已运行。
    • mysql.sock文件路径配置有误。您需要在/etc/my.cnf文件内,修改socket参数的配置路径与mysql.sock文件实际路径一致,并重启mysql服务。
  7. 运行以下命令测试登录MySQL数据库。
    mysql -uroot -p
    测试数据库
  8. 运行\q命令退出MySQL。

步骤四:安装PHP

  1. 运行以下命令安装依赖包。
    yum install libmcrypt libmcrypt-devel mhash mhash-devel libxml2 libxml2-devel bzip2 bzip2-devel -y
  2. 依次运行以下命令下载稳定版源码包并解压、编译。
    说明 下载PHP稳定版源码包需要良好的网络环境。如果下载失败,请先运行命令cd,然后运行命令rm -rf mirror后,重新下载PHP稳定版源码包。
    1. cd
    2. wget https://cn2.php.net/get/php-7.0.32.tar.bz2/from/this/mirror
    3. cp mirror php-7.0.32.tar.bz2
    4. tar xvf php-7.0.32.tar.bz2 -C /usr/local/src
    5. cd /usr/local/src/php-7.0.32
    6. ./configure --prefix=/usr/local/php \
      --with-config-file-scan-dir=/etc/php.d \
      --with-apxs2=/usr/local/apache2/bin/apxs \
      --with-config-file-path=/etc \
      --with-pdo-mysql=mysqlnd \
      --with-mysqli=/usr/local/mysql/bin/mysql_config \
      --enable-mbstring \
      --with-freetype-dir \
      --with-jpeg-dir \
      --with-png-dir \
      --with-zlib \
      --with-libxml-dir=/usr \
      --with-openssl \
      --enable-xml \
      --enable-sockets \
      --enable-fpm \
      --with-bz2
    7. make && make install
    说明 若ECS实例规格内存较小,配置时可关闭不需要的PHP扩展,节省内存。例如,在./configure命令中添加--disable-fileinfo选项,关闭fileinfo扩展。
  3. 运行以下命令复制PHP的配置文件。
    cp php.ini-production /etc/php.ini
  4. 运行命令vi /usr/local/apache2/conf/httpd.conf打开Apache配置文件,按下i键开始编辑。
    1. 找到ServerName参数,添加ServerName localhost:80
      添加参数内容
    2. 找到Directory参数,在Require all denied前面添加#,然后添加Require all granted
      添加内容
    3. 找到DirectoryIndex index.html,将它替换为DirectoryIndex index.php index.html
      替换内容
    4. 找到如下内容:
      找到如下内容
      在后面添加如下内容:
      AddType application/x-httpd-php .php
      AddType application/x-httpd-php-source .phps
      添加完成后,如下图所示。添加完成
    5. 按下Esc键,然后输入:wq并回车以保存并关闭Apache配置文件。
  5. 添加Apache对解析PHP的支持。
    1. 运行以下命令打开index.php文件。
      vi /usr/local/apache2/htdocs/index.php
    2. 按下i键进入编辑模式,并添加以下内容:
      <?php
      phpinfo();
      ?>
    3. 按下Esc键,然后输入:wq并回车以保存并关闭index.php文件。
    4. 运行以下命令重启Apache服务。
      systemctl restart httpd
  6. 在本地机器的浏览器地址栏中,输入http://实例公网IP并按Enter键。
    若返回页面如下图所示,说明PHP解析成功。PHP解析成功

步骤五:安装phpMyAdmin

  1. 依次运行以下命令准备phpMyAdmin数据存放目录。
    1. cd
    2. mkdir -p /usr/local/apache2/htdocs/phpmyadmin
  2. 依次运行以下命令下载phpMyAdmin压缩包并解压。
    1. wget https://files.phpmyadmin.net/phpMyAdmin/4.0.10.20/phpMyAdmin-4.0.10.20-all-languages.zip
    2. unzip phpMyAdmin-4.0.10.20-all-languages.zip
  3. 运行以下命令复制phpMyAdmin文件到准备好的数据存放目录。
    mv phpMyAdmin-4.0.10.20-all-languages/*  /usr/local/apache2/htdocs/phpmyadmin
  4. 在本地机器浏览器地址栏,输入http://实例公网 IP/phpmyadmin并按Enter键,访问phpMyAdmin登录页面。
    若返回页面如下图所示,说明phpMyAdmin安装成功。phpMyAdmin安装成功
  5. 输入MySQL的用户名和密码,单击执行
    输入用户名和密码