LAMP指Linux+Apache+MySQL/MariaDB+Perl/PHP/Python,是一组常用来搭建动态网站或者服务器的开源软件。它们本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。

I 部署方式

您可以使用三种方式在云服务器ECS上部署LAMP:

  • 镜像部署:方便快捷,适合不太了解Linux命令的用户。
  • 一键安装包部署:适合对Linux命令有基本了解的用户。
  • 手动部署:可以满足用户个性化部署需求,适合对Linux命令有基本了解的用户。

本文介绍如何在云服务器ECS上手动部署LAMP。

II 软件版本说明

本文操作的镜像和软件版本说明如下 :

  • 操作系统:CentOS 7.2 64位
  • Apache:2.4.23
  • MySQL:5.7.17
  • PHP:7.0.12

III 前提条件

在部署之前,需要确认:

IV 准备工作

设置防火墙

CentOS 7.2系统默认开启防火墙firewalld。您可以关闭firewalld放行80、22等端口。

说明:您也可以参考 firewalld 官方文档 在防火墙里放行这些端口。

  1. 运行命令关闭防火墙。

    systemctl stop firewalld.service
  2. 运行命令关闭防火墙开机自启动。
    systemctl disable firewalld.service

安装vim和unzip

下载软件用于编辑和解压缩文件。运行命令:

yum install -y vim unzip

V 操作步骤

按以下步骤部署LAMP。

步骤1. 编译安装Apache

  1. 运行命令安装相关依赖包。

    yum install -y gcc gcc-c++ autoconf libtool
  2. 依次运行以下命令安装apr。

    cd /usr/local/src/
    wget http://oss.aliyuncs.com/aliyunecs/onekey/apache/apr-1.5.0.tar.gz
    tar zxvf apr-1.5..tar.gz
    cd apr-1.5.
    ./configure --prefix=/usr/local/apr
    make && make install
  3. 依次运行以下命令安装apr-util。

    cd /usr/local/src/
    wget http://oss.aliyuncs.com/aliyunecs/onekey/apache/apr-util-1.5.3.tar.gz
    tar zxvf apr-util-1.5..tar.gz
    cd apr-util-1.5.
    ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
    make && make install
  4. 依次运行以下命令安装pcre。

    cd /usr/local/src/
    wget http://zy-res.oss-cn-hangzhou.aliyuncs.com/pcre/pcre-8.38.tar.gz
    tar zxvf pcre-8.38.tar.gz
    cd pcre-8.38
    ./configure --prefix=/usr/local/pcre
    make && make install
  5. 依次运行以下命令编译安装Apache。

    cd /usr/local/src/
    wget http://zy-res.oss-cn-hangzhou.aliyuncs.com/apache/httpd-2.4.23.tar.gz
    tar zxvf httpd-2.4..tar.gz
    cd httpd-2.4.
    ./configure \
    --prefix=/usr/local/apache --sysconfdir=/etc/httpd \
    --enable-so --enable-cgi --enable-rewrite \
    --with-zlib --with-pcre=/usr/local/pcre \
    --with-apr=/usr/local/apr \
    --with-apr-util=/usr/local/apr-util \
    --enable-mods-shared=most --enable-mpms-shared=all \
    --with-mpm=event
    make && make install
  6. 修改httpd.conf配置文件参数:

    1. 运行 cd /etc/httpd/ 切换到/etc/httpd/目录。
    2. 运行 vim httpd.conf 打开httpd.conf文件,按 i 键进入编辑模式。
    3. 找到 Directory 参数,注释掉 Require all denied,并添加 Require all granted
    4. 找到 ServerName 参数,添加 ServerName localhost:80
    5. 设置 PidFile 路径:在文件最后添加 PidFile "/var/run/httpd.pid"
    6. Esc 键退出编辑模式,输入 :wq 保存并关闭 httpd.conf 文件。
  7. 依次执行以下命令启动Apache服务并验证。

    cd /usr/local/apache/bin/
    ./apachectl start
    netstat -tnlp #查看服务是否开启
  8. 如果返回以下结果,说明Apache服务已经成功启动。

    在本地机器的浏览器中输入ECS实例公网IP地址,如果出现如图所示信息,说明Apache服务安装成功。

  9. 设置开机自启动。

    1. 运行 vim /etc/rc.d/rc.local 打开rc.local文件,按 i 进入编辑模式。
    2. 添加 /usr/local/apache/bin/apachectl start
    3. Esc 键退出编辑模式,输入 :wq 保存并关闭rc.local文件。
  10. 设置环境变量。

    1. 运行 vi /root/.bash_profile 打开文件,按 i 进入编辑模式。
    2. PATH=$PATH:$HOME/bin 修改为 PATH=$PATH:$HOME/bin:/usr/local/apache/bin
    3. Esc 键退出编辑模式,输入 :wq 保存并关闭文件。
    4. 运行 source /root/.bash_profile 重新执行文件。

步骤2. 编译安装MySQL

  1. 依次执行以下命令检查系统中是否存在使用rpm安装的MySQL或者MariaDB。

    rpm -qa | grep mysql
    rpm -qa | grep mariadb
  2. 如果已经安装,则运行以下任一个命令删除。

    rpm -e 软件名 #注意:这里的软件名必须包含软件的版本信息,如rpm -e mariadb-libs-5.5.52-1.el7.x86_64。一般使用此命令即可卸载成功。
    rpm -e --nodeps 软件名 #卸载不成功时使用此命令强制卸载
  3. 卸载后,再用 rpm -qa|grep mariadb 或者 rpm -qa|grep mysql 查看结果。

  4. 依次运行以下命令安装 MySQL。

    yum install -y libaio-*  #安装依赖
    mkdir -p /usr/local/mysql
    cd /usr/local/src
    wget http://zy-res.oss-cn-hangzhou.aliyuncs.com/mysql/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
    tar -xzvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
    mv mysql-5.7.17-linux-glibc2.5-x86_64/* /usr/local/mysql/
  5. 依次运行以下命令建立mysql组和用户,并将mysql用户添加到mysql组。

    groupadd mysql
    useradd -g mysql -s /sbin/nologin mysql
  6. 运行命令初始化MySQL数据库。

    /usr/local/mysql/bin/mysqld --initialize-insecure --datadir=/usr/local/mysql/data/--user=mysql
  7. 更改MySQL安装目录的属性。

    chown -R mysql:mysql /usr/local/mysql
  8. 依次运行以下命令设置开机自启动。

    cd /usr/local/mysql/support-files/
    cp mysql.server /etc/init.d/mysqld
    chmod +x /etc/init.d/mysqld # 添加执行权限
    vim /etc/rc.d/rc.local
  9. 在 rc.local 文件中添加 。

    /etc/init.d/mysqld start

  10. 设置环境变量。

    1. 运行 vi /root/.bash_profile 打开文件,按 i 进入编辑模式。

    2. PATH=$PATH:$HOME/bin:/usr/local/apache/bin 修改为 PATH=$PATH:$HOME/bin:/usr/local/apache/bin:/usr/local/mysql/bin:/usr/local/mysql/bin

      说明:此处是在编译安装 Apache的环境变量的基础上再进行修改。

    3. Esc 键退出编辑模式,输入 :wq 保存并关闭文件。

    4. 运行 source /root/.bash_profile 重新执行文件。

  11. 启动 MySQL 数据库。

    /etc/init.d/mysqld start
  12. 出现如下截图所示信息,表示MySQL启动成功。

  13. 修改MySQL的root用户密码:初始化后MySQL为空密码可直接登录,为了保证安全性需要修改MySQL的root用户密码。运行以下命令,并按界面提示设置密码。

    mysqladmin -u root password
  14. 测试登录MySQL数据库。

    mysql -uroot -p    #-p和密码之间无空格
  15. 运行 \q 退出MySQL。

步骤3. 编译安装 PHP

  1. 依次运行以下命令安装依赖。

    yum install php-mcrypt libmcrypt libmcrypt-devel libxml2-devel openssl-devel libcurl-devel libjpeg.x86_64 libpng.x86_64 freetype.x86_64 libjpeg-devel.x86_64 libpng-devel.x86_64 freetype-devel.x86_64 libjpeg-turbo-devel libmcrypt-devel mysql-devel -y
    wget http://zy-res.oss-cn-hangzhou.aliyuncs.com/php/php-7.0.12.tar.gz
    tar zxvf php-7.0.12.tar.gz
    cd php-7.0.12
    ./configure \
    --prefix=/usr/local/php \
    --enable-mysqlnd \
    --with-mysqli=mysqlnd --with-openssl \
    --with-pdo-mysql=mysqlnd \
    --enable-mbstring \
    --with-freetype-dir \
    --with-jpeg-dir \
    --with-png-dir \
    --with-zlib --with-libxml-dir=/usr \
    --enable-xml --enable-sockets \
    --with-apxs2=/usr/local/apache/bin/apxs \
    --with-mcrypt --with-config-file-path=/etc \
    --with-config-file-scan-dir=/etc/php.d \
    --enable-maintainer-zts \
    --disable-fileinfo
    make && make install
  2. 运行命令复制配置文件。

    cp php.ini-production /etc/php.ini
  3. 编辑Apache配置文件 httpd.conf,以Apache支持PHP。

    1. 运行 vim /etc/httpd/httpd.conf 打开文件,按 i 进入编辑模式。
    2. 在配置文件最后添加如下二行代码。
      1. AddType application/x-httpd-php .php
      2. AddType application/x-httpd-php-source .phps

    3. 定位到 DirectoryIndex index.html,修改为 DirectoryIndex index.php index.html

      说明:如果文件中没有 DirectoryIndex index.html,则添加上述代码。

    4. Esc 键退出编辑模式,输入 :wq 保存并关闭文件。
  4. 重启Apache服务:

    /usr/local/apache/bin/apachectl restart
  5. 测试是否能够正常解析PHP。

    1. 依次运行以下命令,找开index.php文件。

      cd /usr/local/apache/htdocs/
      vim index.php
    2. i 键进入编辑模式,并添加以下内容。
      <?php
      phpinfo();
      ?>
    3. Esc 键退出编辑模式,并输入 :wq 保存并关闭文件。
    4. 重启Apache服务:
      /usr/local/apache/bin/apachectl restart
    5. 在本地机器的浏览器里输入 http://实例公网 IP/index.php
      如果出现以下页面表示PHP解析成功。

步骤4. 安装phpMyAdmin

依次运行以下命令安装phpMyAdmin。

mkdir -p /usr/local/apache/htdocs/phpmyadmin
cd /usr/local/src/
wget http://oss.aliyuncs.com/aliyunecs/onekey/phpMyAdmin-4.1.8-all-languages.zip
unzip phpMyAdmin-4.1.8-all-languages.zip
mv phpMyAdmin-4.1.8-all-languages/* /usr/local/apache/htdocs/phpmyadmin

在本地机器浏览器输入 http://实例公网 IP/phpmyadmin 访问phpMyAdmin登录页面。如果出现以下页面,说明phpMyAdmin安装成功。输入MySQL的用户名和密码即可登录。

VI 参考

Linux学习笔记之阿里云ECS部署LAMP环境的更多相关文章

  1. Linux学习1-Xshell连接阿里云ECS服务器

    前言 前段时间双十一活动,头脑发热买了个阿里云的服务器,买了后也不知道怎么用一直放着在.最近想起来,于是看了下阿里云ECS的相关资料. 由于平常一直用xshell比较多,不太习惯阿里云的ESC终端连接 ...

  2. Linux学习笔记-配置阿里云yum源

    进入目录:cd /etc/yum.repos.d 备份:mkdir repobak mv *.repo repobak/ 下载CentOS-Base.repo 到路径/etc/yum.repos.d/ ...

  3. 阿里云ECS装LAMP环境

    学生计划9.9买个一个ECS,要做PHP开发,所以搭建一个Lamp的环境 1.使用镜像,附件 sh-1.5.5附于文后. 2.一键安装 2.1 输入命令:chmod –R 777 sh-1.5.5 c ...

  4. 用阿里云ecs部署kubernetes/K8S的坑(VIP、slb、flannel、gw模式)

    1 阿里云ecs不支持keepalived vip 1.1 场景描述 本来计划用keepalived配合nginx做VIP漂移,用以反代多台master的apiserver的6443端口,结果部署了v ...

  5. 【转存】阿里云服务器下 LAMP 环境配置 —— 基于 CentOS 6.3

    阿里云服务器下 LAMP 环境配置 —— 基于 CentOS 6.3  Posted on 2016年2月10日 by  学院君 1.Apache 配置 —————————————————– vi / ...

  6. 部署:阿里云ECS部署Docker CE

    1 部署阿里云ECS,选择CentOS操作系统,并启动实例: 2 部署Docker CE: a.检查centos版本: $ cat /etc/redhat-release CentOS Linux r ...

  7. 阿里云ECS部署ES

    背景 最近越来越多的公司把业务搬迁到云上,公司也有这个计划,自己抽时间在阿里云和Azure上做了一些小的尝试,现在把阿里云上部署ES和kibana记录下来.为以后做一个参考,也希望对其他人有帮助. 这 ...

  8. 阿里云ECS服务器windows环境下配置redis

    一.下载解压redis github下载地址:https://github.com/MSOpenTech/redis/tags 下载的是Redis-x64-3.2.100版本,Redis-x64-3. ...

  9. ECS7天实践进阶训练营Day2:基于阿里云ECS部署MediaWiki

    一.概述 MediaWiki是全球最著名的开源Wiki程序,运行于PHP+MySQL环境,MediaWiki从2002年被作为维基百科的系统软件,并由大量其他应用实例(例如萌娘百科),因此MediaW ...

随机推荐

  1. 【BZOJ2253】[2010 Beijing wc]纸箱堆叠 cdq分治

    [BZOJ2253][2010 Beijing wc]纸箱堆叠 Description P 工厂是一个生产纸箱的工厂.纸箱生产线在人工输入三个参数 n p a , , 之后,即可自动化生产三边边长为 ...

  2. Ubuntu安装谷歌输入法或者搜狗

    1.进入系统先更软件更新器这个在系统计算机中搜索,点击就好了 2.先添加以下源sudo add-apt-repository ppa:fcitx-team/nightly 3.添加源之后需要更新一下系 ...

  3. uva656 Optimal Programs

    Optimal Programs As you know, writing programs is often far from being easy. Things become even hard ...

  4. the age of the TCP connection TCP Slow Start

    w防止网络过载和拥塞 HTTP The Definitive Guide The performance of TCP data transfer also depends on the age of ...

  5. [译]关于JavaScript 作用域你想知道的一切

    原文连接 在学习js的过程对闭包什么的,理解不好,偶然搜到这篇文章.豁然开朗,随翻译. Javacript 中有一系列作用域的概念.对于新的JS的开发人员无法理解这些概念,甚至一些经验丰富的开发者也未 ...

  6. js Ajax 跨域请求

    一.使用jsonp的方式(只支持get请求) 二.使用cors的方式(支持HTTP的大部分请求方式) 三.apache的转发(修改服务器配置) 没有试验,暂时不详细写!

  7. Centos7下实现免密码登录

    一.生成密钥 [root@master ~]# ssh-keygen Generating public/private rsa key pair. Enter file in which to sa ...

  8. style2paints、deepcolor、sketchkeras项目

    数据集不够怎么办? 1 一些传统的边缘提取算法可以提取图像边缘. 2 这里我们有一个使用神经网络提取线稿图的项目——sketchkeras 源码:https://github.com/lllyasvi ...

  9. 安全篇:弱密码python检测工具

    安全篇:弱密码python检测工具 https://github.com/penoxcn/PyWeakPwdAudit

  10. sql之密码保存

    HashBytes (Transact-SQL) 其他版本   返回其输入的 MD2.MD4.MD5.SHA 或 SHA1 哈希值.  Transact-SQL 语法约定 语法         Has ...