阿里云服务器ECS配置及LAMP环境搭建及配置(新手攻略第一弹)

提及作一个阿里服务器ECS配置文章也是由于买了一个服务器好几年了, 一直没有好好玩过, 基本也就是本身放一些node项目和vue项目展现用, 今天初始化一下服务器,从新配置一番,顺便作个新手笔记给你们参考php

服务器配置

这是我本身的服务器配置, 本身玩是足够了 html

ECS云服务器配置及环境

  • 登陆阿里云服务器官网

  • 左侧导航 => 控制台

  • 进入云服务器ECS

  • 进入实例
选择你当时购买的服务器机房
复制代码

  • 管理
- 中止(关机)
- 才能切换系统
复制代码

  • 返回实例,找到更多 => 磁盘和镜像 => 更换系统盘

  • 公共镜像 (镜像和我同样哈, 否则会有一些稍微的不一样)
centOS 7.2 64
复制代码
  • 设置密码
- 你们字母 + 小写字母 + 数字
- 尽可能取个简单点,方便记
复制代码

  • 系统启动成功完成以后,全部配置都是在命令行中操做

putty软件链接 ECS服务器

软件我上传到了百度网盘开箱即用,体积不到1M, 固然也有其余的软件请自行百度vue

  • IP
你服务器的公网IP
复制代码
  • 端口
22
复制代码
  • 链接类型
ssh
复制代码
  • 登陆
- 第一次会生成密钥
- 本身我的电脑 是
- 公用电脑 否
复制代码
  • putty命令行
- root
- 密码 (切换系统的时候设置的密码)
- 输入的时候没有提示,直接输入
- 就能进入服务器
复制代码

  • 远程链接(阿里云官网提供的)
第一次会弹窗 让你记录下密码,很重要,保存到电脑上,会常常用到
复制代码

Node 环境搭建

windows系统的电脑搭建Node环境是很简单的,服务器也同样node

  • 下载FileZilla
方便直接建立目录上传文件等等
复制代码
  • 登陆站点

  • 新建一个文件来管理
我新建了一个tomato文件专门来存放我配置的东西方便本身查找操做
复制代码
  • 打开putty命令行
cd /                进入根目录
ls                  查看目录
cd tomato/node/     进入我刚建立的tomato文件下的node文件夹
wget https://nodejs.org/dist/v12.11.0/node-v12.11.0-linux-x64.tar.gz    下载node压缩包
tar xvf node-v12.11.0-linux-x64.tar.gz                                  解压node压缩包
rm -rf node-v12.11.0-linux-x64.tar.gz                                   删除node压缩包
cd node-v12.11.0-linux-x64/bin                            ls查看目录,你会看到 node npm
复制代码

设置全局(环境变量),在任何目录均可能运行 node 和 npm 命令mysql

ln -s /tomato/node/node-v12.11.0-linux-x64/bin/node /usr/local/bin/node
ln -s /tomato/node/node-v12.11.0-linux-x64/bin/npm /usr/local/bin/npm
复制代码

完成上述配置,便可在任何目录运行node和npm命令了 linux

利用FileZilla上传项目

- 主机
  - 公网ip
- 端口
  - 22
- 协议
  - ssh
- 登陆类型
  - 正常
- 用户名
  - root
- 密码
  - 你的密码
复制代码

写一个js,用node运行起来,而后经过公网ip的形式访问, 这里我写了一个简单的接口文件
复制代码

http.jssql

const http = require('http')
const request = require('http').request
const fs = require('fs')

// 代理跨域
const fn = response => {
    const options = {
        host: "localhost",
        port: 4001,
        method: "get",
        path: "/"
    }
    //执行就发起请求了
    const req = request(options, res => {
        // console.log(res);
        let data = {}
        res.setEncoding("utf8")
        res.on("data", (chunk) => {
            console.log(`响应主体:${chunk}`);
            // 将data赋值为第三方代理请求回来的数据
            data = chunk
        })
        res.on("end", (chunk) => {
            response.write(data)
            response.end()
        })
    })
    // 监听报错
    req.on("error", err => {
        console.log(err);
    })
    req.write("")
    req.end()
}

const server = http.createServer((request, response) => {
    // 和请求相关的信息都在 request 里面
    // 后台给客户端返回的数据, 都在 response 里面

    // CORS跨域  设置容许跨域
    response.setHeader("Access-Control-Allow-Origin", "*")

    // 设置响应头, 第一个参数 http 状态码, 第二个参数是一个对象
    // response.writeHead(2010, {
    //     "Content-Type": "text/pligin;charset=utf-8" //设置内容的类型
    // })
    // response.write()能够调用屡次
    // response.write()0向客户端返回数据, 这里返回的中文会乱码,所以须要设置响应头
    // response.write("向客户端返回数据~~~")
    // response.write(request.url) // 请求路径
    // response.write(request.method) // 请求方式
    // response.write(JSON.stringify(request.headers)) // 请求头信息

    // response.end()结束响应, 否则会一直处于响应状态不结束, 只能调用一次
    // response.end("~~~我是response.end()返回的数据") // end也能够返回数据, 必须传字符串

    if (request.method === "GET") {
        response.writeHead(200, {
            "Content-Type": "text/html;charset=utf-8"
        })
        switch (request.url) {
            case "/":
                // response.write(fs.readFileSync("../demo/index.html", "utf8")) // 同步执行
                response.write(JSON.stringify({
                    a: 1,
                    b: 2
                })) // 同步执行
                response.end()
                break;
            case "/home":
                //home
                fs.readFile("../demo/index.html", "utf8", (err, data) => { // 异步执行
                    response.write(data)
                    response.end()
                })
                break
            case "/request": //代理跨域
                fn(response)
                break
            default:
                // 404
                response.write("<h1>404页面<h1>")
                response.end()
                break;
        }
    }
    // response.end()
    // 配置请求
})
// 监听6300端口
server.listen(6300, () => {
    console.log("服务监听在6300端口");
})
复制代码

将写好的http.js文件放到nodeDemo文件中运行

而后经过公网ip的形式访问,会发现访问不了,缘由是没有开放端口

安全组开放访问端口

- 进入实例
- 安全组
- 配置规则
- 添加安全规则
- 协议类型 TCP
  - 80/80
  - 6000/9999
  - 443/443
- 协议类型 HTTP/HTTPS
  - 80/80
- 受权类型:地址段访问
- 受权对象
  - 0.0.0.0/0
复制代码

这时候经过公网ip的形式访问就能拿到数据了

域名绑定服务器

  • 在阿里云购买域名

  • 经过域名访问刚刚的node项目

域名须要备案

只须要进入备案专区
按照流程操做, 官方有流程图,就能够备案成功
备案成功的时间大概最快须要15天左右, 慢的话须要一个月
备案经过了,才可以使用域名访问虚拟主机的项目
复制代码

LAMP环境搭建及配置

linux + apache + mysql + php

时间较长

服务器均可以用命令操做的

默认是没有图形界面的,可是能够自个百度 安装图形界面 

centOS 图形界面

复制代码

来自阿里云官方论坛的文档按照这个文档配置就能够了数据库

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

经常使用命令

// ECS服务器
cat /etc/redhat-release     // 查看系统版本
systemctl status firewalld  // 命令查看当前防火墙的状态
systemctl stop firewalld    // 临时关闭防火墙,重启Linux后,防火墙还会开启
ystemctl disable firewalld  // 永久关闭防火墙

// Apache
httpd -v                    // 查看Apache的版本号
systemctl start httpd       // 启动Apache服务
systemctl restart httpd     // 重启Apache服务
systemctl enable httpd      // 开机自启动Apache服务

// MySQL
systemctl start mysql       // 启动MySQL服务
systemctl enable mysql      // 开机自启动MySQL服务
mysqladmin -u root password // 修改MySQL的root用户密码
mysql -uroot -p             // 登陆MySQL数据库
\q                          // 退出MySQL
复制代码

阿里云ECS服务器优惠码/优惠卷地址

云服务器ECS 系列相关文章

阿里云服务器ECS配置及LAMP环境搭建及配置(新手攻略第一弹)npm

阿里云服务器配置Jenkins自动打包部署vue项目(新手攻略第二弹)

相关文章
相关标签/搜索