教你利用阿里云服务器搭建一个随时随地的Web IDE

前言

我们在学习各种编程语言的时候,总是要安装不同的IDE,需要去配置各种环境变量,而且对于配置比较低的电脑来说,打开各种IDE后风扇就会开始疯狂旋转,在这种噪音下很难专心去敲代码。

如果问我编程工具中哪个比较好用,我首推的自然就是Visual Studio,Visual Studio支持的语言众多,还可以配合众多插件提高效率,深得我心。

如果如果,类似Visual Studio的IDE还可以部署在服务器上,你的编程成本可以削减到只剩下一个浏览器呢?

这次给大家介绍code-serverTheia这两种ide的安装方式。

开通云服务器

相信大家已经通过阿里云高校计划领取了一台属于自己的免费服务器,没有领取的同学也可以点击这里进行领取。
如果你不符合阿里云高校计划免费领取服务器的条件,可以点击这里享受新老用户专属的优惠福利

开始安装

通用过程

(TIPS:由于我的阿里云服务器目前正在运行服务,暂无闲置的服务器,所以用虚拟机演示。)

  1. 连接服务器。

    打开Unix、Linux下的Terminal,Windows系统下打开CMD或者Power Shell,键入 ssh 用户名@ip地址,回车,键入密码(输入不可见)回车。

    image-20210310173048656

  2. 更新软件源中的软件。

    sudo apt-get update
    sudo apt-get upgrade
    

    image-20210310173112752

  3. 安装Docker

    关于Docker的使用方式可以参见菜鸟Docker教程或者官方文档

    curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 
    
  4. 给Docker换源

    sudo vim /etc/docker/daemon.json #打开编辑器
    

    键入i并复制以下内容:

    {"debug":true,"experimental":true,"registry-mirrors":["https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com"]}
    

    键入esc,英文状态下的!wq,敲回车返回bash

    systemctl docker restart #重启docker以使得配置生效
    
  5. 安装Docker Compose

    sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose #下载合适版本的Compose,如无法下载,可以提前下载好传到服务器,并改名移动到/usr/local/bin下
    sudo chmod +x /usr/local/bin/docker-compose #设置权限
    docker-compose --version #查看是否安装成功
    

    image-20210310200859550

code-server

code-server项目地址

本次使用的是linuxserver团队制作的coder-server的docker容器

安装

docker pull linuxserver/code-server #拉取对应的docker镜像

image-20210310212804772

运行

docker run -d \
  --name=code-server \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Asia/Shanghai \
  -e PASSWORD=password `#optional` \
  -e SUDO_PASSWORD=password `#optional` \
  -p 8443:8443 \
  -v /path/to/appdata/config:/config \
  --restart unless-stopped \
  linuxserver/code-server
ParameterFunction
-p 8443web gui
-e PUID=1000for UserID - see below for explanation
-e PGID=1000for GroupID - see below for explanation
-e TZ=Europe/LondonSpecify a timezone to use EG Europe/London
-e PASSWORD=passwordOptional web gui password, if PASSWORD or HASHED_PASSWORD is not provided, there will be no auth.
-e HASHED_PASSWORD=Optional web gui password, overrides PASSWORD, instructions on how to create it is below.
-e SUDO_PASSWORD=passwordIf this optional variable is set, user will have sudo access in the code-server terminal with the specified password.
-e SUDO_PASSWORD_HASH=Optionally set sudo password via hash (takes priority over SUDO_PASSWORDvar). Format is $type$salt$hashed.
-e PROXY_DOMAIN=code-server.my.domainIf this optional variable is set, this domain will be proxied for subdomain proxying. See Documentation
-v /configContains all relevant configuration files.

访问方式:https://服务器IP地址:端口号/?token=设置的ide密码

例如:http://192.168.56.103:8443/

image-20210310223624499

Theia

Theia项目地址

Theia官方安装教程

安装

  1. 安装Theia

    git clone https://github.com/theia-ide/theia-apps.git	#从GitHub上克隆仓库到本地,如无法下载,可以提前下载好传到服务器解压
    cd theia-apps/theia-https-docker
    docker build . --build-arg app=theia-full -t theiaide/theia-full-sec
    

    然后就是漫长的等待……

    image-20210310204236592

    image-20210310205149167

  2. 设置工作目录

    mkdir /home/project	#新建目录
    chomod -R 1000 /home/project #更改权限,将属主更改成1000
    

启动

至此已经部署完毕,可以启动啦~
docker run --user=root --init -it -p 10443:10443 -e token=mysecrettoken -v "$(pwd):/home/project:cached" theiaide/theia-full-sec

参数说明:

–user:要运行ide的用户名

-p:docker映射内外端口号

token:ide的密码

$(pwd):/home/project:指向工作目录

theiaide/theia-full-sec 容器名字

访问方式:https://服务器IP地址:端口号/?token=设置的ide密码

就像:https://192.168.56.103:10443/?token=mysecrettoken

image-20210310211239436

总结

这两种都大同小异,看个人喜好。不过我更偏向于code-server,安装比较简单,和Visual Studio一样可以装各种插件,有内味了。

怎么样,你学废了吗?

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 要使用ESP8266WiFi模块编写一个程序,您需要以下步骤: 1. 设置ESP8266WiFi模块的WiFi连接,以便能够与阿里云服务器通信。 2. 安装MQTT客户端库,以便能够使用MQTT协议进行通信。 3. 设置MQTT客户端,以便能够连接到阿里云服务器。 4. 利用MQTT协议向阿里云服务器发布信息(例如,传感器数据)。 这是一个高层次的概述,具体实现可能因您使用的开发环境和语言而有所不同。有关更详细的信息,请参阅相关的文档和程。 ### 回答2: 编写一个程序利用ESP8266 WIFI模块通过MQTT协议发送信息给阿里云服务器的步骤如下: 1. 首先,你需要安装并配置Arduino IDE,然后安装ESP8266库和PubSubClient库。 2. 配置ESP8266连接阿里云服务器的Wi-Fi网络。这可以通过接入点名称(SSID)和密码(password)来实现,使用`WiFi.begin()`函数。 3. 创建一个MQTT客户端实例,并指定阿里云服务器的域名和端口号。使用`PubSubClient`库的`client.setServer()`函数设置服务器地址和端口号。 4. 在程序中定义回调函数,用于处理接收到的服务器消息。可以使用`PubSubClient`库的`client.setCallback()`函数将回调函数与客户端实例关联。 5. 使用`client.connect()`函数连接到阿里云服务器,并使用设备的认证信息进行身份验证。例如,可以使用设备的ClientID和Access Key来认证。 6. 如果连接成功,则可以通过调用`client.publish()`函数来发布信息。该函数需要指定主题(topic)和消息内容。 7. 将程序放入一个循环中,使用`client.loop()`函数来处理MQTT通信。此函数将处理连接维持活动,并处理接收到的服务器消息。 8. 在循环中,可以使用`delay()`函数来设置发送消息的间隔时间。 9. 如果希望接收服务器的响应消息,可以在循环中添加处理函数,使用`client.subscribe()`函数来订阅特定主题。然后,在回调函数中处理接收到的消息。 10. 当程序完成后,可以使用`client.disconnect()`函数断开与服务器的连接。 总之,编写ESP8266与MQTT协议连接到阿里云服务器的程序需要配置Wi-Fi网络、创建MQTT客户端实例、定义回调函数、连接服务器并身份验证、发布消息以及处理接收消息的循环。通过以上步骤,程序可以成功发送信息给阿里云服务器。 ### 回答3: 编写一个程序利用ESP8266WIFI模块通过MQTT协议发送信息给阿里云服务器是比较常见的物联网应用场景,下面是一个基本的实现方案: 首先,确保在Arduino IDE中安装了对ESP8266开发板的支持,然后按照以下步骤进行编写程序: 1. 包含必要的库文件: ```cpp #include <ESP8266WiFi.h> #include <PubSubClient.h> ``` 2. 设置Wi-Fi连接信息和阿里云MQTT服务器信息: ```cpp const char* ssid = "YourWiFiSSID"; const char* password = "YourWiFiPassword"; const char* mqttServer = "mqtt.yourserver.com"; const int mqttPort = 1883; const char* mqttUsername = "YourMQTTUsername"; const char* mqttPassword = "YourMQTTPassword"; ``` 3. 创建Wi-Fi和MQTT客户端实例: ```cpp WiFiClient espClient; PubSubClient client(espClient); ``` 4. 创建回调函数用于处理接收到的MQTT消息: ```cpp void callback(char* topic, byte* payload, unsigned int length) { // 处理接收到的消息 } ``` 5. 连接Wi-Fi和MQTT服务器: ```cpp void setup() { // 连接Wi-Fi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); } // 连接MQTT服务器 client.setServer(mqttServer, mqttPort); client.setCallback(callback); while (!client.connected()) { if (client.connect("ESP8266Client", mqttUsername, mqttPassword)) { // 订阅消息 client.subscribe("your/mqtt/topic"); } else { delay(1000); } } } ``` 6. 发送信息给阿里云服务器: ```cpp void loop() { // 发送信息到阿里云服务器 client.publish("your/mqtt/topic", "Hello from ESP8266"); // 等待接收消息 client.loop(); } ``` 这是一个简单的示例代码,你可以根据实际需求进行修改和扩展。同时,需要在阿里云控制台配置MQTT实例并创建对应的Topic和权限,确保ESP8266能够正常连接和发送消息到阿里云服务器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值