阿里云ECS部署lamp环境

263 阅读5分钟

写在前面

两年多以前,我开始使用阿里云ECS部署lamp环境。后来陆陆续续又部署过lamp环境几次,总结了这篇笔记。

当中遇到过一些问题,也是各种倒腾,现在一并奉上。

涉及到的内容有:

  1. 阿里云ECS实例密码重置 / 磁盘初始化
  2. 在本地机器与ECS实例建立ssh连接
  3. apache编译安装与配置 / 阿里云安全组
  4. php编译安装与配置
  5. mysql编译安装与配置 设置用户及密码 授权
  6. svn仓库与项目钩子设置
  7. git仓库
  8. https配置
  9. 其它

1.初始化磁盘 & 管理员密码重置

系统已被我折腾过了,现在需要先将其初始化一下,恢复到刚购买时的情况(新购买跳过)。

停止ECS实例后,选择重新初始化磁盘。

如果忘记了ECS实例的root用户的登录密码,可以选择'重置实例密码'。

密码重置完成后,必须 重启实例 才能生效

2.在本地机器上与服务器简历ssh连接

打开命令行工具,输入ssh root@47.38.34.32,然后会提示你输入管理员密码。

如果是之前使用过该服务器,然后重新初始化,那么会有一个warning给到:

这时需要删除~/.ssh/known_hosts下无效的私钥。

一种方式是直接删除该文件rm ~/.ssh/known_hosts,副作用是影响该文件中的其它域名的配置,不推荐。

另一种方式就是编辑该文件 vi ~/.ssh/known_hosts,删除对应的一条记录。

再次执行ssh root@{ip},输入密码后:

提示是否继续连接,输入yes:

建立连接成功。

3.apache安装与配置

  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.0.tar.gz
      cd apr-1.5.0
      ./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.3.tar.gz
      cd apr-util-1.5.3
      ./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
      
  2. 安装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.23.tar.gz
    cd httpd-2.4.23
    ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-cgi --enable-rewrite --enable--ssl --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
    
  3. 配置apache

    vim /etc/httpd/httpd.conf
    

    Require all denied 改为 Require all granted

    添加配置项 ServerName locahost:80

  4. 启动apache服务器,并查看

    1. 启动apache, /usr/local/apache/bin/apachectl start,执行该条命令控制台没有任何输出。
    2. 使用netstat命令查看。netstat -tnlp
      可以看到httpd,apache安装成功。
  5. 如果想要在外网查看apache运行结果,还需要配置阿里云的安全组。现在80端口默认开启了。

    在浏览器输入ip(或域名,如果有做域名映射)。可以看到"it works!"。

  6. 设置apache开机自启动

    vim /etc/rc.d/rc.local
    

    在文件结尾添加一句/usr/local/apache/bin/apachectl start

  7. 添加环境变量

    vim /root/.bash_profile
    

    添加:/usr/local/apache/bin

    执行source /root/.bash_profile,使上面的环境变量设置立即生效。

    现在可以尝试直接使用apachectl命令了。

    # 重启apache
    apachectl restart
    

4.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
    
  2. 安装php

    cd /usr/local/src/
    wget http://zy-res.oss-cn-hangzhou.aliyuncs.com/php/php-5.6.30.tar.gz
    tar zxvf php-5.6.30.tar.gz
    cd php-5.6.30
    ./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 --enable-pcntl
    make && make install
    
  3. 配置php.ini 将当前目录下的php.ini-production拷贝到/etc/php.ini,如果/etc/php.ini已经存在,一定要选择覆盖。

    php.ini-production /etc/php.ini
    

    修改配置项:

    vim /etc/php.ini
    

    修改时区

  4. 修改apache配置,支持解析php文件。

    vim /etc/httpd/httpd.conf
    

    在httpd.conf文件结尾添加两行:

    AddType application/x-httpd-php  .php
    AddType application/x-httpd-php-source  .phps
    

    修改DirectoryIndex配置项,加入index.php

    配置完毕,重启apache:apachectl restart

  5. 检验php文件能否正常解析

    vim /usr/local/apache/htdocs/index.php
    

    添加一句代码:

    再次在浏览器输入url(之前如果没有关闭浏览器,刷新即可)查看:

  6. 添加环境变量

    vim /root/.bash_profile
    

    新增:/usr/local/php/bin

    执行source /root/.bash_profile,是配置立即生效。

5.拉取项目

  1. 安装git

    先尝试一下git --version,看看服务下是否安装git。如果没有安装,则执行下面的命令:

    yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
    yum install git
    
  2. 生成ssh key

    在命令执行ssh-keygen -t rsa -C "{邮箱}"。命令执行过程中遇到停顿,直接按回车就好。

    /root/.ssh/id_rsa.pub里面的内容配置到git仓库(.ssh/authorized_keys中)。

  3. 拉取项目代码

    然后就可以克隆代码了。

    cd /usr/local/apache/htdocs/
    git clone git@{ip}:{path/to/project}
    

  4. 修改apache配置

    vim /etc/httpd/httpd.conf
    

    修改下面两句:

    重启apache。apachectl restart

  5. 刷新页面,查看效果

6.mysql安装及配置

  1. 检查系统中是否已安装mysql或mariadb。

    rpm -qa | grep mysql #由下至上依次卸载
    rpm -qa | grep mariadb
    rpm -e {数据库} #一般使用此命令即可卸载成功 
    rpm -e --nodeps {数据库} #卸载不成功时使用此命令强制卸载
    
  2. 安装mysql

    cd /usr/local/src/
    yum install -y libaio-* #安装依赖
    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
    mkdir -p /usr/local/mysql
    mv mysql-5.7.17-linux-glibc2.5-x86_64/* /usr/local/mysql/
    
  3. 建立mysql组&用户,将mysql用户添加到mysql组中。

    groupadd mysql
    useradd -g mysql -s /sbin/nologin mysql
    
  4. 初始化mysql数据库

    /usr/local/mysql/bin/mysqld --initialize-insecure --datadir=/usr/local/mysql/data/ --user=mysql
    
  5. 更改mysql安装目录的属主属组

    chown -R mysql:mysql /usr/local/mysql
    
  6. 设置开机自启动

    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 
    

    添加/etc/init.d/mysqld start

  7. 设置环境变量

    vim /root/.bash_profile
    # 增加/usr/local/mysql/bin:/usr/local/mysql/lib
    PATH=$PATH:$HOME/bin:/usr/local/php/bin:/usr/local/mysql/bin:/usr/local/mysql/lib
    source /root/.bash_profile # 立即生效
    

  8. 创建.cnf文件

    cd /usr/local/mysql/support-files
    cp my-default.cnf /etc/my.cnf
    

    如果提示文件存在,则覆盖。

  9. 启动msyqld

    /etc/init.d/mysqld start
    

  10. 设置mysql root用户密码

    msyqladmin -u root password '{密码}'
    

  11. 连接mysql,查看用户

    mysql -uroot -p
    

    输入密码后,执行查询语句:

    SELECT host,user FROM mysql.user WHERE User = 'root';
    

  12. 创建用户,并设置为可以外部连接数据库

    CREATE USER 'root'@'%' IDENTIFIED BY '{密码}';
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
    

    如果需要修改密码,则执行一下sql:

    set password for 'root'@'%'=password('{密码}');
    
  13. 设置阿里云ecs安全组,开放3306端口。

7. 补充

  1. 开启apache rewrite模块

    vim /etc/httpd/httpd.conf
    

    重启apache,apachectl restart

  2. 配置apache AllowOverride All