• [交流吐槽] 关机后时长耗尽
    统计时长中显示一小时,但是工作台显示180小时已经耗尽,且从未提交延时请求,不知道为什么时长就突然没了。
  • [问题求助] 请问在哪里可以看到【华为开发者空间】体验打卡+技术实践 活动获奖名单?
    请问在哪里可以看到【华为开发者空间】体验打卡+技术实践 活动获奖名单?https://developer.huaweicloud.com/signup/f8a3298e6e854f52bb92abb242d66264?utm_source=wechat
  • [问题求助] 云存储空间可以怎么用?
    每个人有免费的5G,请问下只能再浏览器里上传和下载文件,这样来使用吗?是否可以在开发者云主机里访问到?就是这里云主机能访问到吗?
  • [技术干货] 在华为开发者空间,基于鲲鹏使用毕昇编译器Autotuner自动调优实践
    案例介绍毕昇编译器基于开源LLVM开发,并进行了优化和改进,同时支持Fortran语言前端,是针对鲲鹏平台的高性能编译器。案例内容1 概述1.1 背景介绍鲲鹏服务器是基于鲲鹏处理器的新一代数据中心服务器,适用于大数据、分布式存储、高性能计算和数据库等应用。鲲鹏服务器具有高性能、低功耗、灵活的扩展能力,适合大数据分析、软件定义存储、Web等应用场景。毕昇编译器基于开源LLVM开发,并进行了优化和改进,同时支持Fortran语言前端,是针对鲲鹏平台的高性能编译器。除LLVM通用功能和优化外,对中端及后端的关键技术点进行了深度优化,并集成Auto-tuner特性支持编译器自动调优。1.2 适用对象企业个人开发者高校学生1.3 案例时间本案例总时长预计60分钟。1.4 案例流程说明:① 自动部署鲲鹏服务器;② 安装Python软件包;③ 安装毕昇编译器AutoTuner;④ AutoTuner自动调优。1.5资源总览本案例预计花费总计0元。资源名称规格单价(元)时长(分钟)云主机2vCPUs 4GB免费602 操作步骤2.1 自动部署鲲鹏服务器在云主机桌面右键选择“Open Terminal Here”,打开命令终端窗口。执行自动部署命令如下:hcd deploy --password abcd1234@ --time 3600命令的参数说明:password:password关键字后设置的是鲲鹏服务器的root用户密码,命令中给出的默认为abcd1234@,开发者可以替换成自定义密码(至少8个字符)。time:time关键字后面设置的为鲲鹏服务器的可用时间,单位为秒,至少600秒。在命令中申请的时间为60分钟,即3600秒。该命令会自动部署鲲鹏服务器。首次部署会直接执行,旧资源未到期时重复部署,会提示是否删除前面创建的资源,可以删除旧资源再次部署。记录部署鲲鹏服务器公网IP,如截图中对应的就是:115.120.242.46。2.2 安装Python软件包新打开一个终端窗口,使用上一步中记录的公网IP登录鲲鹏服务器,命令如下:ssh root@鲲鹏服务器公网IP输入密码,密码为步骤2.1中自动部署命令行中“–password”后面的参数,命令中给出的默认为abcd1234@,如果没有修改,就使用abcd1234@进行登录,如果设置了自定义密码,直接输入自定义的密码(注意:输入过程中密码不会显示,密码输入完成按回车键结束)。登录成功后,输入命令安装Python依赖包,命令如下:yum -y groupinstall "Development Tools" --nogpgcheckyum -y install gcc openssl-devel bzip2-devel libffi-devel python3-devel sqlite-devel --nogpgcheckPython-3.11.4不支持OpenSSL-1.1.1以下的版本,所以需要下载编译OpenSSL-1.1.1版本,下载并解压源码命令如下:(*openssl下载备用链接:https://dtse-mirrors.obs.cn-north-4.myhuaweicloud.com/case/0014/openssl-1.1.1t.tar.gz)wget https://dtse-mirrors.obs.cn-north-4.myhuaweicloud.com/case/0014/openssl-1.1.1t.tar.gztar -xzf openssl-1.1.1t.tar.gzcd openssl-1.1.1t编译并安装 OpenSSL 到自定义目录以避免覆盖系统版本。./config --prefix=/usr/local/openssl-1.1.1 --openssldir=/usr/local/openssl-1.1.1 shared zlibmakemake install更新动态链接库缓存。echo "/usr/local/openssl-1.1.1/lib" > /etc/ld.so.conf.d/openssl-1.1.1.confldconfig毕昇编译器AutoTuner环境要求Python版本为Python-3.11.4,进入到/opt目录下载并解压Python3.11.4源码。cd /optwget https://mirrors.huaweicloud.com/python/3.11.4/Python-3.11.4.tar.xztar -xvJf Python-3.11.4.tar.xzcd Python-3.11.4编译和安装,配置编译选项并开始编译。./configure --prefix=/usr/local/ --with-openssl=/usr/local/openssl-1.1.1makemake installpython3 -m pip install --upgrade pip2.3 安装毕昇编译器AutoTuner下载并解压毕昇编译器。mkdir -p /opt/compilercd /opt/compilerwget https://kunpeng-repo.obs.cn-north-4.myhuaweicloud.com/BiSheng%20Enterprise/BiSheng%20Enterprise%20203.0.0/BiShengCompiler-4.1.0-aarch64-linux.tar.gztar -zxvf BiShengCompiler-4.1.0-aarch64-linux.tar.gz配置毕昇编译器环境变量。export PATH=/opt/compiler/BiShengCompiler-4.1.0-aarch64-linux/bin:$PATH export LD_LIBRARY_PATH=/opt/compiler/BiShengCompiler-4.1.0-aarch64-linux/lib:/opt/compiler/BiShengCompiler-4.1.0-aarch64-linux/lib/aarch64-unknown-linux-gnu:$LD_LIBRARY_PATH安装完毕后执行命令验证毕昇编译器版本。clang -v安装Autotuner。install-autotuner.shllvm-autotune -hauto-tuner -h2.4 AutoTuner自动调优实践CoreMark是衡量中央处理器(CPU)和嵌入式微控制器(MCU)性能的行业标准基准。我们这里以CoreMark为例展示如何运行自动调优。下载CoreMark代码。mkdir bisheng_compiler_democd bisheng_compiler_demogit clone https://github.com/eembc/coremark.git如果克隆失败,可以通过以下链接下载并解压:wget https://dtse-mirrors.obs.cn-north-4.myhuaweicloud.com/case/0014/coremark.zipunzip coremark.zip创建执行脚本,将进行20次迭代调优coremark代码并对比调优效果。cd coremark/vi run_autotuner.sh进入到vim编辑器界面内,按下“i”键将下段代码复制到编辑器内。#!/bin/bashexport AUTOTUNE_DATADIR=/tmp/autotuner_datarm -rf $AUTOTUNE_DATADIRmkdir -p $AUTOTUNE_DATADIRCompileCommand="clang -Iposix -I. -g -DFLAGS_STR=\"\" -DITERATIONS=300000 core_list_join.c core_main.c core_matrix.c core_state.c core_util.c posix/core_portme.c -O2 -o coremark"$CompileCommand -fautotune-generate;llvm-autotune minimize;for i in $(seq 20)do $CompileCommand -fautotune; ( time -p ./coremark 0x0 0x0 0x66 300000 ) 2>time.log time=$( grep real time.log | sed 's/real\s*//' ) echo "iteration: " $i "cost time:" $time; llvm-autotune feedback $time;donellvm-autotune finalize;复制完成后,按下“ESC”键->输入“:wq”保存并退出编辑器界面。添加该文档执行权限。chmod u+x run_autotuner.sh在终端中输入命令执行脚本,开始进行Autotuner迭代调优,进行20次循环迭代,并获取每次的性能数据作为反馈,执行过程约5~10分钟。./run_autotuner.sh打印内容如下所示,完成20次迭代后,将迭代获取的最优编译配置文件到脚本设置的AUTOTUNE_DATADIR目录:/tmp/autotuner_data/config.yaml调用最优配置文件,为了进行后续的优化编译,首先配置AUTOTUNE_DATADIR环境变量。export AUTOTUNE_DATADIR=/tmp/autotuner_data/直接使用-fautotune选项调用最优配置文件config.yaml进行优化编译,执行如下命令,编译生成优化后的coremark可执行文件coremark_autotuner:clang -Iposix -I. -g -DFLAGS_STR=\"\" -DITERATIONS=300000 core_list_join.c core_main.c core_matrix.c core_state.c core_util.c posix/core_portme.c -O2 -g -o coremark_autotuner -fautotune执行如下命令,获取优化后coremark可执行文件的运行时间(单位为秒):( time -p ./coremark_autotuner 0x0 0x0 0x66 300000 ) 2> time.log从图中可以看出,经过Autotuner优化后的coremark300000次迭代的执行时间为18.40s。使用毕昇编译器编译coremark用户代码,执行如下命令,生成未调优的coremark可执行文件进行对比,通过运行coremark可执行文件的时间差异来测试调优性能是否有提升,软件运行时间越短表示性能越好:clang -Iposix -I. -g -DFLAGS_STR=\"\" -DITERATIONS=300000 core_list_join.c core_main.c core_matrix.c core_state.c core_util.c posix/core_portme.c -O2 -g -o coremark之后执行如下命令,获取优化前coremark可执行文件的运行时间(单位为秒):( time -p ./coremark 0x0 0x0 0x66 300000 ) 2> time.log从图中可以看出,未经过Autotuner优化后的coremark300000次迭代的执行时间为19.56s。经比较可以发现,调优后的性能可以提升6%~7%(优化前时间/优化后时间-100%)左右,说明使用Autotuner编译调优对性能有较大改善。至此,基于鲲鹏使用毕昇编译器Autotuner自动调优实践全部完成。
  • [热门活动] 【中奖名单公示】///【产品体验官】华为开发者空间+仓颉编程语言案例,提优化建议领千元开发者好礼
    【华为开发者空间+仓颉编程语言案例】产品体验官活动获奖名单如下:积分榜获奖名单yd_238822659、yd_284637750、banjin恭喜以上3名获奖用户,请获奖用户通过以下问卷反馈奖品收件信息(7月15日前反馈有效),感谢大家对云声平台的关注和支持~近期热门的仓颉编程语言小伙伴们用了吗?还不知道怎么实践?可以来华为开发者空间,空间提供的云主机环境已经预装了仓颉工具链和CodeArts IDE for Cangjie,即开即用,非常便捷。我们提供的案例结合代码体验,让大家更直观的了解仓颉语言。还不来试一试?体验完后提交开发者空间优化建议,还可以领取开发者礼包,包括但不限于华为耳机、手环、鼠标、云宝等好礼,快叫上小伙伴一起提建议吧~ 【实践项目】体验项目项目名称难度系数1仓颉初体验:开启仓颉语言的神秘大门★★2仓颉基础大揭秘:数据类型的奇妙世界★★3仓颉之函数的魔法宝典★★★4仓颉之结构体、类与接口的奇幻乐园★★★5仓颉之枚举类型与模式匹配的冒险之旅★★★6仓颉之泛型和扩展的神奇天地★★★7仓颉之Collection 类型的精彩舞台★★8仓颉之包与异常处理的智慧战场★★★9仓颉之I/O 操作的交互奥秘★★★10仓颉宏实现语言集成查询LINQ★11仓颉 – C跨语言编程实现控制台小游戏★★12基于仓颉编程语言+DeepSeek实现智能聊天助手开发秘籍★★★更多实践案例见“开发者空间案例中心” 【活动时间】2025年5月15日-6月10日 【参与方式】01 体验仓颉实践项目   》   02 去云声平台提建议    》  03 建议评估公示(5个工作日内)  》   04 获奖公示 ps:建议标题需要以“开发者空间体验官”开头 【奖项设置】奖项设置评选条件获奖名额激励礼品有效建议奖1、有效建议数量不少于2条,有效建议由内部技术专家评审得出2、建议内容需针对上述仓颉编程语言实践项目PS:有效建议数量达到3个,建议总积分额外增加10%;建议数量5个及以上,建议总积分额外增加15%;3名积分榜第1名:1000元礼品/人积分榜第2名:800元礼品/人积分榜第3名:500元礼品/人优质建议奖1、有效建议不少于2条,由内部技术专家评审选出10名每人100-200元开发者定制礼品【活动说明】1、建议预审通过即为有效建议,其中1条有效功能类建议为1分,1条有效体验类建议为0.3分;有效建议奖与优质建议奖可叠加2、建议提交时需要在标题中以“【开发者空间体验官】”为建议标题开头,比如【开发者空间体验官】开发者空间增加XX/优化XX/导入XX等3、建议内容仅针对以上“华为开发者空间+仓颉编程语言实践”项目中涉及的云产品,非以上实践项目涉及产品建议内容不参与此活动4、优质建议要求建议对云产品功能及优化改进有重要作用,优先从已被采纳的建议的选择;建议内容需要表述清晰,有明确的建议方案,最好有操作截图或链接等能进一步详细描述;高价值建议数量不限,且与有效建议奖可叠加,每位用户每月最多可获得一次。5、注意事项1)若出现积分相同且排名一致的情况,结合已实现和已采纳建议情况,由内部技术专家选出价值更高的建议用户给予奖励2)同一用户在同一页面(文档)提出的同一类用户体验问题(包括但不限于错别字、语句不通顺、视觉体验等),在通过审核后仅算作一条有效建议数3)若发现代他人提交优化建议,此建议分值只取原分值30%;若发现2次及以上重复提交他人建议,或3次及以上重复提交体验类相关建议进行恶意刷量(包括但不限于错别字、语句不通顺、视觉体验等),取消本人活动参与资格;在活动截止日前进行大量刷屏提交建议,或者重复提交同类型体验建议,直接取消活动参与资格4)以上兑换礼品均为仓库现有实物礼品,有货的情况下优先满足,其中1-3名可优先选择华为自营品牌电子礼品,礼品价值不能超过商品原价,无货则不可以指定,如遇商品缺货,将随机换成其他等价值礼品发放5)此【开发者空间体验官】与云声月度例行激励活动不叠加,若标题无【开发者空间体验官】标记,则有效建议默认参与月度例行激励
  • [问题求助] 华为云主机 点击“关机”之后会导致网络断连
    是那个180h的云主机,输入ping 8.8.8.8 正常连通,然后点击“关机”键会导致网络丢失连接。请问该如何解决?具体是今天下午5月8日17.37出现的问题,之前都是可以关机状态下联网的
  • [问题求助] 云主机 点击“关机”就会断网
    我在运行一个游戏服务器,之前点关机键会停止计费但是还可以后台联网运行,今天下午突然提示断连,我就尝试运行ping 8.8.8.8然后关机,发现在关机的时候程序都在运行,但是网络无法连接? 求助
  • [技术干货] OBS桶s3fs挂载在开发者空间云主机里当网盘使用
    OBS桶s3fs挂载在开发者空间云主机使用前提:自行购买obs存储包, 建立桶命名bucket-name,并获取华为云帐号的AK-SK一、安装s3fs支持通过以下两种方式下载s3fs。方式一:镜像源安装sudo apt install s3fs方式二:编译安装s3fs,使用方式一安装s3fs请跳过该步骤。进入s3fs-fuse解压目录,按照以下命令执行编译操作:./autogen.sh ./configure make sudo make install执行以下命令检查安装情况。s3fs --version当命令回显出现s3fs版本信息时,表示s3fs能够成功运行。二、配置s3fs配置AK:SK:echo "AK:SK" >>/home/developer/.passwd-s3fs chmod 600 /home/developer/.passwd-s3fs三、挂载s3fs按照以下格式执行挂载命令:s3fs 对象桶名 本地挂载目录 -o passwd_file=密钥文件路径 -o url=区域终端节点地址 -o nonempty -o big_writes -o max_write=131072 其他挂载参数例如:s3fs bucket-name /home/developer/obs/ -o passwd_file=/home/developer/.passwd-s3fs -o url=https://obs.cn-north-4.myhuaweicloud.com -o nonempty -o big_writes -o max_write=131072 四、也可直接配置开机自动挂载vi /usr/local/bin/mount-s3.sh准备启动脚本#!/bin/bash # 定义变量 BUCKET_NAME="bucket-name" MOUNT_POINT="/home/developer/obs/" PASSWD_FILE="/home/developer/.passwd-s3fs" REGION="cn-north-4" URL="https://obs.cn-north-4.myhuaweicloud.com" # 检查挂载点是否存在,不存在则创建 if [ ! -d "$MOUNT_POINT" ]; then mkdir -p "$MOUNT_POINT" fi # 尝试挂载S3存储桶 s3fs "$BUCKET_NAME" "$MOUNT_POINT" -o passwd_file="$PASSWD_FILE" -o url="$URL" -o allow_other -o endpoint="$REGION" -o nonempty -o big_writes -o max_write=131072 # 检查挂载是否成功 if mount | grep -q "s3fs on $MOUNT_POINT"; then echo "S3 bucket $BUCKET_NAME mounted successfully on $MOUNT_POINT" else echo "Failed to mount S3 bucket $BUCKET_NAME on $MOUNT_POINT" exit 1 fi加权限sudo chmod +x /usr/local/bin/mount-s3.sh准备启动服务vi /etc/systemd/system/mount-s3.service[Unit] Description=Mount S3 bucket on /home/developer/obs After=network.target Requires=network.target [Service] Type=oneshot ExecStart=/usr/local/bin/mount-s3.sh RemainAfterExit=true [Install] WantedBy=multi-user.target设置开机自启动sudo systemctl enable mount-s3.service sudo systemctl start mount-s3.service重启云主机,验证ok
  • [技术干货] 鲲鹏DevKit代码迁移工具快速完成C&C++源码迁移
    一、 案例介绍鲲鹏和传统X86两者的指令集不同(X86是复杂指令集、鲲鹏使用精简指令集),一样的代码经过编译后,在不同的芯片架构下转换成的不同的机器码,从而不能交叉运行。为了帮助开发者解决将软件从X86平台迁移到鲲鹏平台过程中遇到的疑难问题,鲲鹏提供了DevKit迁移工具,帮助开发者更快更方便的实现跨平台软件的迁移。本次实验将完成鲲鹏DevKit代码迁移工具的使用,了解其基本功能和使用方法。本案例将指导开发者如何使用鲲鹏DevKit代码迁移工具,以smartdenovo软件包为待迁移案例展示C/C++软件的快速迁移过程,达到快速完成C&C++源码迁移的实验目的。如果希望更进一步了解DevKit代码迁移工具Porting Advisor,欢迎大家前往鲲鹏社区了解代码迁移工具的详细使用方法:https://www.hikunpeng.com/document/detail/zh/kunpengdevps/porting/qs/qs-pa-kunpengdevps.html二、 免费领取云主机如您还没有云主机,可点击链接,根据领取指南进行操作。如您已领取云主机,可直接开始实验。三、 实验流程说明:① 下载迁移源码;② 自动部署装有DevKit的鲲鹏服务器;③ 安装鲲鹏代码迁移插件;④ 登录DevKit工具;⑤ 执行源码扫描任务;⑥ 根据扫描报告修改源码。四、下载迁移源码smartdenovo是一款在github上开源的一款基于C语言开发的开源软件,基于X86平台进行开发,源码地址如下:cid:link_6。在实验的过程中,还需要avxToNeon的源代码,当应用程序从x86架构移植到鲲鹏架构时,由于Arm64指令名称和功能与x86不同,需要进一步开发指令。为了减少用户的移植工作量,在avxToNeon项目中,常用的AVX指令被封装为独立的模块, AVX指令被相关的NEON SIMD指令取代,而指令名称和功能保持不变。用户可以通过将相关头文件导入应用软件来调用相应的指令。avxToNeon的源码存放地址如下:cid:link_5。在云主机桌面创建smart-denovo文件夹,在该文件夹下打开终端命令窗口,克隆两个开源项目代码:将AvxToNeon复制到smartdenovo项目目录下,然后将smartdenovo打成zip压缩包,留作后面创建源码迁移任务。五、自动部署装有DevKit的鲲鹏服务器在云主机打开终端窗口,执行自动部署命令:hcd deploy --password 远端服务器密码 --time 3600# --password 待部署项目所在ECS的root用户密码(至少8个字符)# --time value 待部署资源的保留期(单位为秒,至少600秒,默认600秒)。当前实验预估需要1小时,可以配置time为1-2小时保留期。该命令会自动部署鲲鹏服务器并安装DevKit。首次部署会直接执行,旧资源未到期时重复部署,会提示是否删除前面创建的资源,可以删除旧资源再次部署。记录部署远端服务器公网IP、Devkit平台访问地址,如截图中对应的就是:124.71.195.85、https://124.71.195.85:8084。这里自动部署安装有DevKit工具的ECS服务器使用到的Terraform可以在部署后,到华为开发者空间,鲲鹏沙箱资源中进行下载,下载后您可以在华为云资源编排服务RFS通过该模板进行部署安装有DevKit工具的ECS服务器。六、安装鲲鹏代码迁移插件方式一:在线安装进入云主机,打开CodeArts IDE,点击左侧“扩展”搜索“Kunpeng Porting Advisor Plugin”点击安装该插件。​方式二:本地安装前往鲲鹏社区官网下载插件Kunpeng Porting Advisor Plugin到云主机,下载地址为:CodeArts IDE插件市场。​在云主机桌面,打开CodeArts IDE开发环境,单击右侧“扩展”按钮,点击从本地安装,选择下载好的插件安装。​使用任一方式安装好插件后,在CodeArts IDE点击左上角“文件”,选择“设置”,在设置界面选择“应用程序”-“代理服务器”,将“Proxy Support”设置为“off”。​七、登录DevKit工具在云主机进入CodeArts IDE,打开安装好的鲲鹏代码迁移插件,点击点击“…”中的“配置远端服务器”。填配置远端服务器成功后,点击“登录”,首次登录需要创建管理员密码。安装完成后选择“采用SSH连接时输入的IP地址xxx.xxx.xx.xx”然后点击立即登录。首次登录需要设置密码,设置密码后进行登录。八、执行源码扫描任务登录代码迁移工具成功后,在插件窗口新建源码迁移任务。在新建源码迁移任务界面,上传步骤五打好的smartdenovo.zip压缩包,目标操作系统切换成EulerOS 2.8,其他保持默认,点击“开始分析”。扫描完成完成后,点击CodeArts IDE下面“终端”登录到远端弹性云服务器(命令:ssh root@远端服务器公网IP),在远端服务器中执行以下命令,编译迁移前的代码,对比迁移效果。尝试编译未进行迁移修改的代码,查看是否可以编译成功。编译运行命令如下:cd /opt/portadv/portadmin/sourcecode/smartdenovo/make从执行结果中可以看到,编译过程报错,无法成功编译smartdenovo软件包。接下来根据扫描报告修改源码后再编译。九、根据扫描报告修改源码在扫描报告界面,可以在“需要迁移的源文件”下查看需要修改文件,点击“查看建议代码”后可跳转到源码页面,根据修改建议直接修改源码。从迁移报告中可以得知,有Makefile和ksw.c两个文件需要修改。首先点击ksw.c对应的“查看建议代码”按钮,修改ksw.c的源代码。1、修改源码文件ksw.c根据源码页面中的红色波浪线发现一共有两处修改点修改点一:点击“快速修复…”按钮后,在右下角的弹框中点击确认按钮,自动完成此处的代码适配。修改后,效果如下:修改点二:使用快速自动修改,修改效果如下图所示,增加了ARM的NEON指令库头文件。增加的头文件需要引入到工程中,点击CodeArts IDE下面菜单栏中“终端”,登录远端弹性云服务器(命令:ssh root@远端服务器公网IP),在远端服务器中执行以下命令将头文件目录复制一份到/opt/portadv/portadmin/sourcecode/smartdenovo的include目录里。cd /opt/portadv/portadmin/sourcecode/smartdenovomkdir includecp -r /opt/portadv/portadmin/sourcecode/smartdenovo/AvxToNeon /opt/portadv/portadmin/sourcecode/smartdenovo/include/AvxToNeon​2、修改构建文件Makefile在“源码迁移建议”页面,查看Makefile文件的修改建议,悬浮在黄色波浪线的语句上,可以看到详细的迁移建议。根据建议,Makefile文件中需要给CFLAGS变量增加选项内容-march=armv8-a -fsigned-char,同时,还需要删除CFLAGS变量中的选项“-mpopcnt”和“-msse3”。 同时,由于增加了额外的Neon库头文件,Makefile文件中还需要给CFLAGS变量增加选项内容-I./include/AvxToNeon。修改效果如下:图片中5-7行代码修改为如下:CFLAGS=-I./include/AvxToNeon -g3 -W -Wall -O0 -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -march=armv8-a -fsigned-charelseCFLAGS=-I./include/AvxToNeon -W -Wall -O4 -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -march=armv8-a -fsigned-char此外,因smartdenovo的系统兼容性问题,在CodeArts IDE的系统中无法直接编译,还需要修改 smartdenovo/wtlay.h 文件。点击CodeArts IDE下面菜单栏中“终端”,登录远端弹性云服务器(命令:ssh root@远端服务器公网IP),在远端服务器中执行以下命令进行修改:cd /opt/portadv/portadmin/sourcecode/smartdenovo/vi wtlay.h回车后进入编辑界面,点击ESC按键后,输入:516,按回车后跳转到516行,按下键盘上的A按键,进入编辑模式,如下图所示。在该行前面添加“static”,修改完成后点击ESC按键,输入:wq!,点击回车。至此,所有源码迁移修改都已经完毕。点击CodeArts IDE下面菜单栏中“终端”,登录远端弹性云服务器(命令:ssh root@远端服务器公网IP),在远端服务器中执行以下命令进行编译,从输出中可以看到,编译成功完成,无报错信息展示:cd /opt/portadv/portadmin/sourcecode/smartdenovo/make迁移后可以在远端鲲鹏服务器上编译成功。点击CodeArts IDE下面菜单栏中“终端”,登录远端弹性云服务器(命令:ssh root@远端服务器公网IP),在远端服务器中编译生成的二进制文件有 wtmsa,wtcns,wtlay等。可以执行这些文件看看。./wtmsa到这里整个实验流程就已经结束了,通过上面的源码迁移动作我们拿到了可以在鲲鹏平台上运行的smartdenovo软件包。各位鲲鹏开发者也可以参考上面的软件迁移过程迁移一些其他的跨平台软件,同时探索迁移工具提供的软件包扫描、亲和分析等功能,更深入的掌握迁移工具的使用方法。
  • [技术干货] 解锁新技能!基于华为开发者空间从0实现一个MCP Server
    前言:MCP (Model Context Protocol) 是一个开放协议,用于标准化应用程序如何向 LLM 提供上下文。可以将 MCP 想象成 AI 应用程序的 USB-C 接口。就像 USB-C 为设备连接各种外设和配件提供标准化方式一样,MCP 为 AI 模型连接不同的数据源和工具提供了标准化的方式。MCP与Serverless的创新融合,正在重塑着AI应用架构的未来格局,将为AI应用带来更高的灵活性、安全性和效率。在不久后的未来,华为云AI原生应用运行平台+MCP整体产品组合方案,能够与华为开发者空间在多个维度实现深度结合,为开发者打造更高效、便捷且创新的开发环境。本案例选择云主机本地搭建MCP Server服务作为示例,在华为开发者空间云主机部署MCP Server服务,基于MaaS提供的免费DeepSeek-R1大模型调用MCP Server提供的工具来进行功能实现。通过实际操作,让大家深入了解如何利用云主机完成MCP Server开发和部署,如何通过大模型调用MCP Server服务。MCP 的核心遵循客户端-服务器架构,其中主机应用程序可以连接到多个服务器:MCP 主机:希望通过 MCP 访问数据的 Claude Desktop、IDE 或 AI 工具等程序;MCP 客户端:与服务器保持 1:1 连接的协议客户端;MCP 服务器:轻量级程序,每个程序都通过标准化的 Model Context Protocol 公开特定功能;本地数据源:MCP 服务器可以安全访问的计算机文件、数据库和服务;远程服务:MCP 服务器可以连接到的 Internet 上可用的外部系统(例如,通过 API)。本案例选择云主机本地搭建MCP Server服务作为示例,在华为开发者空间云主机部署MCP Server服务,基于MaaS提供的免费DeepSeek-R1大模型调用MCP Server提供的工具来进行功能实现。通过实际操作,让大家深入了解如何利用云主机完成MCP Server开发和部署,如何通过大模型调用MCP Server服务。适用对象企业个人开发者高校学生案例时间本案例总时长预计60分钟。案例流程说明:用户打开华为开发者空间云主机;浏览器下载VSCode,完成安装配置;VSCode中使用cline插件配置MaaS提供免费版DeepSeek-R1模型;MCP Server服务开发及部署;Cline插件配置MCP Server服务并调用MCP Server提供的工具。资源总览本案例预计花费0元。资源名称规格单价(元)时长(分钟)开发者空间云主机2vCPUs | 4GB X86 |Ubuntu 22.04 Server定制版060环境配置开发者空间配置面向广大开发者群体,华为开发者空间提供一个随时访问的“开发桌面云主机”、丰富的“预配置工具集合”和灵活使用的“场景化资源池”,开发者开箱即用,快速体验华为根技术和资源。如果还没有领取开发者空间云主机,可以参考免费领取云主机文档领取。领取云主机后可以直接进入华为开发者空间工作台界面,点击进入桌面连接云主机。免费领取DeepSeek-R1满血版详细步骤请参考案例中步骤2.1安装VSCode详细步骤请参考案例中步骤2.2安装并配置Cline插件详细步骤请参考案例中步骤2.3项目构建Server环境设置1.在VSCode中,左上角点击文件->打开文件夹,在截图目录下创建文件mcp-test,点击左上角打开。通过Ctrl + `键打开终端,安装并设置运行脚本所需的Python所需的环境和配置。也可以点击顶部终端->新建终端打开。curl -fsSL https://dtse-mirrors.obs.cn-north-4.myhuaweicloud.com/case/0037/uv-installer.sh -o uv-installer.sh | shsudo snap install astral-uv --classic安装完毕后,在终端输入uv --version,查看uv版本。2. 通过Ctrl + `键打开终端,执行如下命令完成工程初始化,运行成功后,左侧目录下会出现weather文件夹。uv init weathercd weather3. 初始化完毕后,进行虚拟环境创建并激活,将以下命令复制到终端中。uv venvsource .venv/bin/activate4. 激活完成后,在终端前方会出现(weather)字样,代表激活成功。5. 执行以下命令安装MCP Server开发所需要的依赖包。uv add "mcp[cli]" httpx -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple6. 创建weather.py文件,创建完毕后,在weather文件夹下会出现weather.py文件,表示文件创建成功。touch weather.pyMCP Server功能实现1. 初始化Server实例,并定义API变量。将以下代码复制到创建的weather.py文件中。FastMCP类使用Python类型提示和文档字符串自动生成工具定义,从而轻松创建和维护MCP工具。from typing import Anyimport httpxfrom mcp.server.fastmcp import FastMCP# Initialize FastMCP servermcp = FastMCP("weather")# ConstantsNWS_API_BASE = "https://api.weather.gov"USER_AGENT = "weather-app/1.0"2. 定义用于查询和格式化Weather Service API中的数据的帮助函数:async def make_nws_request(url: str) -> dict[str, Any] | None:"""Make a request to the NWS API with proper error handling."""headers = {"User-Agent": USER_AGENT,"Accept": "application/geo+json"}async with httpx.AsyncClient() as client:try:response = await client.get(url, headers=headers, timeout=30.0)response.raise_for_status()return response.json()except Exception:return Nonedef format_alert(feature: dict) -> str:"""Format an alert feature into a readable string."""props = feature["properties"]return f"""Event: {props.get('event', 'Unknown')}Area: {props.get('areaDesc', 'Unknown')}Severity: {props.get('severity', 'Unknown')}Description: {props.get('description', 'No description available')}Instructions: {props.get('instruction', 'No specific instructions provided')}"""3. 定义MCP Server工具函数get_alerts和get_forecast,工具函数用来执行查询天气情况的逻辑,将以下代码复制到VSCode中。@mcp.tool()async def get_alerts(state: str) -> str:"""Get weather alerts for a US state.Args:state: Two-letter US state code (e.g. CA, NY)"""url = f"{NWS_API_BASE}/alerts/active/area/{state}"data = await make_nws_request(url)if not data or "features" not in data:return "Unable to fetch alerts or no alerts found."if not data["features"]:return "No active alerts for this state."alerts = [format_alert(feature) for feature in data["features"]]return "\n---\n".join(alerts)@mcp.tool()async def get_forecast(latitude: float, longitude: float) -> str:"""Get weather forecast for a location.Args:latitude: Latitude of the locationlongitude: Longitude of the location"""# First get the forecast grid endpointpoints_url = f"{NWS_API_BASE}/points/{latitude},{longitude}"points_data = await make_nws_request(points_url)if not points_data:return "Unable to fetch forecast data for this location."# Get the forecast URL from the points responseforecast_url = points_data["properties"]["forecast"]forecast_data = await make_nws_request(forecast_url)if not forecast_data:return "Unable to fetch detailed forecast."# Format the periods into a readable forecastperiods = forecast_data["properties"]["periods"]forecasts = []for period in periods[:5]: # Only show next 5 periodsforecast = f"""{period['name']}:Temperature: {period['temperature']}°{period['temperatureUnit']}Wind: {period['windSpeed']} {period['windDirection']}Forecast: {period['detailedForecast']}"""forecasts.append(forecast)return "\n---\n".join(forecasts)4. 定义主函数,在云主机部署MCP Server,将以下代码复制到VSCode中,进行服务器部署。if __name__ == "__main__":# Initialize and run the servermcp.run(transport='stdio')5. 在终端输入以下命令,运行脚本,如果能查询到Server进程表示部署成功。uv run weather.pyCline插件上配置MCP Server1. 配置Server。点击之前安装的Cline插件,随后点击上方MCP Server->Installed->Configure MCP Servers。将以下代码替换到cline_mcp_settings.json文件中。{"mcpServers": {"weather": {"disabled": false,"timeout": 60,"command": "uv","args": ["--directory","/home/developer/IDEProjects/mcp-test/weather","run","weather.py"],"transportType": "stdio"}}}2. 替换关键参数。args中的地址需要根据自身实际地址进行替换。在终端输入pwd,获取路径,对args中的路径参数进行替换。3. 将json文件中的路径参数替换之后ctrl+s进行保存,可以看到,MCP Server提供两个工具,分别为get_alerts和get_forecast,至此MCP Server配置完成。Cline插件调用MCP Server工具查询天气1. cline新建会话,点击Auto-approve,设置MCP服务开关配置。2. 选择Use MCP Servers,打开调用开关。再点击上放三角缩放页面。3. 由于本地搭建的Server服务使用的是美国天气服务API,所以这里我们提问:未来三天纽约天气怎么样?点击右侧三角符进行提问。首次提问会询问经纬度坐标,选择默认坐标运行即可。稍等片刻后,返回纽约天气4. 在服务运行过程中可以看到成功调用本地MCP Server提供的工具,表示大模型可以成功自动调用MCP提供的工具,并能根据工具进行结果返回。至此,基于华为开发者空间云主机搭建MCP Server服务到此结束。更多案例,点击案例中心查看~
  • [热门活动] 【中奖名单公示】///【体验有礼】华为开发者空间五一大放送!免费体验新技术,完成案例实践,赢华为无线耳机、手环、云宝手办等多重好礼!
    活动中奖名单公布如下,公示期10天(2025年5月27日-2025年6月7日)请中奖用户填写收货信息到此处【收货信息收集表】公示期结束后,30个工作日内统一邮寄奖品如有问题请与开发者空间论坛版主【开发者空间站】联系感谢大家的关注,欢迎持续在开发者空间创新成长~(活动参与名单请见文末附件)活动一:活动中奖用户昵称(奖品:华为手环9)jiangruitonghw_008618611402550_01活动中奖用户昵称(奖品:华为云云宝手办盲盒)hw_008615862385978_01hypochlorousinortherhw18051350627iaalaiSeth-9ishellhw71567953huge1987815liang_yaojiehid_x1yx7rn8fow8ku8活动二:活动中奖用户昵称(奖品:华为FreeBuds 6i耳机)user_beifeng活动中奖用户昵称(奖品:华为手环9)hid_u3qajov7w1q1fgtyd_238822659活动中奖用户昵称(奖品:华为无线蓝牙鼠标)yd_257821893zhujiatcyd_266931371Witty Kitten活动中奖用户昵称(奖品:华为云云宝手办盲盒)泽宇-Liyd_269394796yd_229901885yd_35788652wangyingzhenjdj3ffyd_214585844wangshuaishuai150yd_289666753ypr189听说很多小伙伴不知道开发者空间近期有很多变化?比如产品特性方面,上线CodeArts IDE仓颉开发环境、支持同步GitCode项目至云主机,课程学习方面,已上线实践案例90+,上新7门新课程,覆盖多个技术AI、大数据、软件开发等多个方向,小编现开启开发者空间五一体验大放送!欢迎你来空间体验和实践完成任一体验或案例均可参与活动抽奖,快叫上小伙伴一起来参加吧~【活动时间】即日起—5月15日【活动报名】参与活动需要先在如下活动报名页报名:点击报名【活动方式】(以下活动均可参与,奖励可叠加)活动一【体验打卡】:体验打卡开发者空间功能,参与华为云开发者定制礼品抽奖参与方式:活动期间,进入开发者空间,体验空间各项能力,比如体验云主机、知识课程、体验案例、应用构建等,活动结束后将在参与活动报名并在活动期间登录名单中抽奖。奖项设置:华为手环9(NFC款)*2个,华为云云宝手办盲盒*10个中奖小妙招:小编会进行2轮抽奖,4月和5月都有体验开发者空间可以增加中奖概率哦~活动二【实践互动】:完成开发者空间案例,赢华为云开发者定制好礼参与方式:活动期间在云主机中,任选案例中心一个或多个案例,依据案例指导,完成案例,并在评论区分享案例截图,活动结束后,将在评论区用户中抽奖。中奖小妙招:案例完成数最多的前三名,将100%获得奖励!完成多个案例的,请在回帖中注明完成了几个案例,以及案例名称。中奖用户我们会对案例完成进行复核,请大家真实完成哦!奖项设置:华为FreeBuds 6i耳机*1个,华为手环9(NFC款)*2个,华为无线蓝牙鼠标*4个,华为云云宝手办盲盒*10个奖品图片示意案例截图示意【活动规则】抽奖方式:活动结束后,我们将从参与活动的用户中(华为云新老用户均可参与),通过巨公平台或Excel 函数形式抽取获奖用户。获奖名单将在活动结束后的5个工作日内公布。活动二仅限于在“华为开发者空间”内体验相关案例项目,其他项目建议不参与此次活动,否则视为无效内容,具体参考案例中心内容。另外活动将根据有效评论数设置获奖人员数量,规则如下: 有效评论数量获奖名额105201030以上17本次活动将根据实际参与情况发放奖励,包括但不限于用户百分之百中奖或奖项轮空的情况。【活动说明】用户限制说明:1、参加本次社区活动的用户必须为华为云注册用户。同时为保证活动公平性,禁止用户以IAM账号身份参与活动,否则将视为无效。2、领取奖品的用户需为华为云实名用户,未完成实名认证的用户将不发放活动奖励。3、本次活动如一个实名认证对应多个账号,只有一个账号可领取奖励。如在同一概率活动中,同一账号重复获奖,只发放首先获奖奖品。4、本次活动一个实名认证账号只能对应一个收件人,如同一账号填写多个不同收件人,不予发放奖励。5、请开发者不要在活动期间随意修改社区昵称和华为云账号,由此产生的统计问题,如过了申诉期,小助手不再处理。(申诉期为活动结果公示3天内。)奖品发放说明:1、获奖开发者用户需在截止时间在获奖信息收集表中填写获奖信息,活动结束且开发者用户填写完整领奖信息后15个工作日内,将统一发出奖品,所有实物奖品包邮,不额外收取任何费用。华为云遵守《中华人民共和国个人信息保护法》规定,将以上个人信息仅用于礼品发放之目的,不会向任何第三方披露,所有信息将在华为云问卷系统留存2个月,礼品发放完毕后即删除。若由于获奖开发者用户自身原因(包括但不限于提供的联系方式有误、身份不符或者通知领奖后超过30天未领取等)造成奖品无法发送的,视为获奖开发者用户放弃领奖。2、为保证活动的公平公正,华为云有权对恶意刷活动资源(“恶意”是指为获取资源而异常注册账号等破坏活动公平性的行为),利用资源从事违法违规行为的开发者用户收回抽奖及奖励资格。3、若发放奖品时,出现库存不足,则优先发放等价值的其他奖品;活动二中华为耳机需要在有效评论>40个开启。4、所有参加本活动的开发者用户,均视为认可并同意遵守《华为云开发者用户协议》,包括以援引方式纳入《华为云开发者用户协议》、《可接受的使用政策》、《法律声明》、《隐私政策声明》、相关服务等级协议(SLA),以及华为云服务网站规定的其他协议和政策(统称为“云服务协议”)的约束。5、如果您不同意本活动规则和云服务协议的条款,请勿参加本活动。
  • [问题求助] 华为“云上先锋”实践赛·开发者空间+DeepSeek赛道结果公布问题
    华为“云上先锋”实践赛·开发者空间+DeepSeek赛道:https://developer.huaweicloud.com/competition/information/1300000052/introduction获奖名单公布是4月21日,具体在哪里查看,有没有公布,好像现在还没找见还在显示评分中
  • [技术干货] 【开发者空间实践指导】基于华为开发者空间定制C/C++开发环境镜像
    1概述1.1案例介绍在云原生与远程协作成为主流的软件开发趋势下,开发环境的快速构建、一致性维护及跨团队共享已成为提升效率的关键挑战。C/C++开发因其对系统工具链(如编译器、调试器、第三方库)的高度依赖,环境配置复杂且易出错,传统的手动配置模式难以满足敏捷开发需求。此外,跨地域团队或开源协作场景中,环境差异常导致“本地正常、云端报错”等问题,严重影响交付效率。通过将C/C++开发环境预置为云主机镜像,开发者可一键获取标准化的开发环境,减少重复配置成本,同时为团队协作、CI/CD流水线提供底层支持,显著提升开发流程的可靠性与可复现性。本案例聚焦于利用华为云开发者空间功能(云主机),结合VS Code的IDE工具,定制包含C/C++全工具链(如GCC/Clang、CMake、Conan包管理器)、调试工具(GDB/LLDB)及常用依赖库的云主机镜像。该镜像可直接部署为云主机实例,开发者通过一键部署即可获得开箱即用的编程环境,无需手动安装配置。云主机的弹性资源特性(按需购买开发者专业会员)进一步支持高性能编译与测试场景,而镜像的版本化管理则确保环境更新可追溯、可回滚,与云平台的计算、存储服务无缝集成。1.2适用对象个人开发者高校学生1.3案例时间本案例总时长预计60分钟。1.4案例流程说明:登录云主机,终端Terminal命令安装编译工具链和调试工具,安装VS Code;在VS Code上编写实验代码,并运行测试实验结果;在开发者空间-工作台-我的镜像制作镜像,重置云主机,配置云主机自定义镜像,登录验证实验程序。1.5资源总览本案例预计花费总计0元。资源名称规格单价(元)时长(分钟)开发者空间(云主机)4vCPUs | 8GB RAM ARM UbuntuUbuntu 24.04 Server 定制版免费60VS Code1.97.2免费60实验环境搭建2 实验环境搭建2.1配置云主机登录开发者空间,参考“10分钟玩转云主机” 案例的2.2小节内容完成华为开发者空间云主机申请与配置,云主机配置参数如下:2.2安装编译工具链C/C++运行时环境需要依赖编译器(GCC/G++)和调试工具GDB。因此,在任务开始前我们首先需要确认云主机是否已经安装GCC/G++和GDB。云主机桌面右键,点击Open Terminal Here打开Terminal Emulator窗口。在窗口中输入如下命令进行验证:gcc --versiong++ --versiongdb --version如果云主机中未安装gdb,可通过如下命令进行部署:sudo apt update #更新软件包列表sudo apt install build-essential gdb -yVS Code安装部署3 VS Code安装部署3.1VS Code安装下载.deb在云主机Terminal Emulator窗口,可以通过命令行下载.deb安装Visual Studio Code:sudo wget -O code.deb https://vscode.download.prss.microsoft.com/dbazure/download/stable/e54c774e0add60467559eb0d1e229c6452cf8447/code_1.97.2-1739406006_arm64.deb注:这里使用wget命令下载的deb包会默认下载到当前目录,并且默认命名为code.deb。如果云主机类型是X86,可以通过以下命令下载:sudo wget -O code.deb https://vscode.download.prss.microsoft.com/dbazure/download/stable/e54c774e0add60467559eb0d1e229c6452cf8447/code_1.97.2-1739406807_amd64.deb安装VS Code下载完成后,使用 dpkg 命令来安装下载好的 .deb 包:sudo dpkg -i code.deb注:若在安装过程中遇到依赖问题,可使用以下命令修复依赖:sudo apt-get install -f运行VS Code安装完成后,可以在云桌面左下角所有应用程序 – 开发 – Visual Studio Code点击启动,也可以通过以下命令打开VS Code:code3.2 安装VS Code插件VS Code作为一个款强大的跨平台编辑器,为开发者提供了非常丰富的拓展插件。开发者可以打开VS Code扩展商店,点击插件管理图标,输入插件名称,点击install安装。插件介绍如下:C/C++:语法高亮、智能补全、代码跳转、调试支持(支持跨平台编译和多环境配置)‌,所有 C/C++ 项目的开发基础,无需额外配置即可直接使用。C/C++ Extension Pack:代码编辑、调试、构建和格式化的核心功能,覆盖从代码编写到编译调试的全流程,尤其适合需要跨平台或依赖 CMake 的中大型项目‌。CMake Tools:集成 CMake 构建系统,支持自动化编译、调试和项目配置‌,简化跨平台项目管理,适用于复杂工程依赖的构建。Code Runner:一键运行代码片段或文件,支持快速测试和调试,无需手动配置编译命令,实时输出结果到终端。GitLens:增强 Git 功能,支持代码历史追溯、差异对比、作者信息查看‌,协作开发时快速定位代码变更和提交记录。C/C++ Snippets:快速插入常用代码模板(如循环、条件语句),减少重复编码‌。3.3 配置开发环境在云主机左下角打开File Manager。在File Manager左上角文件 – 新建文件夹,编辑名称创建所需要的工程目录。点击VS Code左上角File – OpenFolder,选择上一步新建的工程目录cpp_project。在VS Code中,新建 main.cpp 文件,编写示例代码:#include <iostream>using namespace std;int main() {printf("欢迎来到华为云开发者空间!");return 0;}配置构建任务在VS Code中,按 Ctrl+Shift+P 输入 Tasks: Configure Task,选择 Create tasks.json from template → Others。完成上述步骤后,工程目录中自动增加了配置文件tasks.json。双击打开并修改tasks.json:{// See https://go.microsoft.com/fwlink/?LinkId=733558// for the documentation about the tasks.json format"version": "2.0.0","tasks": [{"label": "build","type": "shell","command": "g++","args": ["-g", "-o", "main", "main.cpp"],"group": {"kind": "build","isDefault": true}}]}配置launch.json点击左侧调试图标(或按 Ctrl+Shift+D),选择 Create a launch.json file → C++ (GDB/LLDB)。修改 launch.json:{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "C++ Debug","type": "cppdbg","request": "launch","program": "${workspaceFolder}/main","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": false,"MIMode": "gdb","preLaunchTask": "build"}]}修改完成后,左侧工具栏会发生变化如下:编译与调试开发者可以通过左上角的C++ Debug按钮启动编译调试。也可以通过如下方式进行编译调试:编译:按 Ctrl+Shift+B 或运行终端命令: g++ -g -o main main.cpp调试:按 F5 启动调试,支持断点、变量监视等功能。3.4 常见问题解决问题 1:编译器未找到确保已安装 build-essential,检查 PATH 环境变量:echo $PATH问题 2:调试器无法启动确保已安装 gdb:sudo apt install gdb -y问题 3:VS Code 插件安装失败尝试更换网络环境,或手动下载 .vsix 文件安装。4 镜像制作与使用4.1 制作镜像在制作镜像前,我们首先要确认云主机已处于关机状态。在开发者空间,工作台 – 我的云空间模块,点击我的镜像,进入镜像编辑页面。点击制作镜像,设置镜像名称、镜像描述、选择镜像源。点击确定,开发者空间将自动开始制作镜像,制作镜像需要30分钟,请耐心等待。镜像制作完成后,状态变为“就绪”状态。4.2 使用镜像在加载镜像前,需要先确认云主机当前是可配置状态。点击配置云主机,选择私有镜像,下拉选项中选择之前已经制作好的镜像,点击安装按钮。进入桌面,自定义镜像开始加载。等待镜像加载(约3-5分钟),进入云桌面,Terminal Emulator窗口通过code命令启动VS Code,点击运行程序,这里显示程序运行成功。至此,基于开发者空间,定制C/C++开发环境云主机镜像案例内容全部完成。更多案例,点击案例中心查看~
  • [技术干货] 【开发者空间实践指导】搭建WordPress博客平台
    概述案例介绍WordPress是一款个人博客系统,也可以把 WordPress当作一个内容管理系统(CMS)来使用,它是使用PHP语言和MySQL数据库开发的,用户可以在支持PHP和MySQL数据库的服务器上搭建自己的博客。本案例借助开发者空间提供的免费云上资源环境,直观地展示如何在开发者空间部署一套个人博客系统。通过实际操作,让大家深入了解如何通过命令在开发者空间进行资源搭建的流程方法,体验其在应用开发中的优势。适用对象企业个人开发者高校学生案例时间本案例总时长预计60分钟。案例流程说明:用户开通开发者空间;下载WordPress软件包到开发者空间;在开发者空间上构建LNMP环境并运行WordPress网站。资源总览本案例预计花费总计0元。资源名称规格单价(元)时长(分钟)开发者空间—云主机2 vCPUs | 4 GB RAM免费60GitCode服务免费免费60开发者空间搭建WordPress博客平台云主机申请本案例中,使用开发者空间为环境搭建平台,开发者空间为开发者提供的免费云上资源环境,方便开发者进行环境搭建和项目部署。登录开发者空间页面,点击“配置云主机”进行云主机申请。搭建LNMP应用运行环境WordPress博客系统最新版本需要PHP7.4和MySQL 8.0或者MariaDB 10.5以上的版本来进行运行, 因此本次操作实战决定采用经典架构环境LNMP,L代表Linux,N代表Nginx,M代表MySQL或者MariaDB,P代表PHP。从官方建议网页中可知,虽然还是可以安装低一点版本的PHP和数据库版本,但官方提示担心各种漏洞而受到威胁,因此肯定按着官方建议,安装所要求的版本。安装Nginx登录云主机之后,在云主机桌面单击鼠标右键,选择“Open Terminal Here”,打开终端。本文章以 root 用户来执行操作命令。云主机登录默认账户为developer,所以理论上在每条命令前使用 sudo才有root权限执行,所以我们可使用命令 sudo -i 直接登录到 root 用户。在终端中输入:sudo -i回车,即可切换到root账户。然后在终端中输入:yum -y install nginx回车,进行nginx安装,待终端出现Complete表示 Nginx 安装完成。以下命令进行启动并设置开机自启动:systemctl start nginxsystemctl enable nginx在云主机的浏览器访问地址http://127.0.0.1/,若Nginx 安装成功,则会显示如下页面。安装MySQL在终端中输入:yum -y install mysql-server回车,待终端出现Complete表示 mysql 安装完成。然后输入:systemctl start mysqld启动mysql。在mysql 8.0的后续版本中,初次安装完成后可使用空密码来登录,输入:mysql -uroot -p回车,在“Enter password”时按回车即可登录。登录mysql后,再执行:ALTER USER 'root'@'localhost' IDENTIFIED BY 'Huawei@123';来修改数据库root账户的密码。(本案例使用Huawei@123,开发者可自定义)然后执行:flush privileges;quit刷新并退出mysql。最后在终端中执行:systemctl enable mysqld将数据库设置为开机自启动,然后执行:systemctl status mysqld查看mysql数据库状态显示如下即完成mysql的安装和配置,按ctrl+c退出。安装PHP在终端中输入以下命令:yum -y install php php-tidy php-common php-devel php-pdo php-mysql* php-gd php-ldap php-mbstring php-fpm来安装 PHP 和一些所需的 PHP 扩展,显示如下即表示安装成功。输入:php -v可查看php的版本,然后执行:systemctl start php-fpmsystemctl enable php-fpm来启动php,并将其设置为开机自启动。如果想查看php的监听端口,可通过执行:netstat -l | grep php来查看,执行:grep -v ";\|^$" /etc/php-fpm.d/www.conf | grep listen可从配置文件中可查出具体侦听配置。默认在安装旧的PHP版本后,需要在Nginx中配置好对应的PHP支持,但云主机集成的高版本的yum源安装后,会自动安装好对应的配置支持文件,因此开发者无需自行配置。通过执行:cat /etc/nginx/conf.d/php-fpm.confcat /etc/nginx/default.d/php.conf即可查看对应的配置文件,显示如下。最后测试LNMP的PHP支持,在终端输入:echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/index.php来编辑PHP测试页面,修改完后输入:systemctl reload nginx来对php服务进行重载。使用浏览器访问http://127.0.0.1/index.php,显示如下图页面,说明PHP安装成功。数据库数据初始化登录数据库并创建WordPress系统所用的数据库wordpress和对应的用户wordpressuser,并使用密码Huawei@123。在终端输入:mysql -uroot -p在Enter password处输入root的密码“Huawei@123”,登录数据库后,执行:create database wordpress;创建数据库wordpress,执行:create user 'wordpressuser'@'localhost' identified by 'Huawei@123';创建用户wordpressuser并设置密码为Huawei@123,然后执行:grant all privileges on wordpress.* to 'wordpressuser'@'localhost';来进行授权,最后执行:flush privileges;quit刷新退出即可。然后输入:mysql -uwordpressuser -p回车,使用我们新建的wordpressuser账户登录数据库,密码为“Huawei@123”,登录成功后,输入:show databases;显示如下即完成了数据库的初始化配置。输入:quit退出,至此,WordPress所需要的运行环境已经搭建完毕,接下来可以进行WordPress博客系统的安装。安装并配置WordPress打开WordPress官网的下载页面:https://cn.wordpress.org/download/ ,下载wordpress-6.7.1软件包至本地。跳转到软件包目录。然后输入:cp -a /home/developer/下载/wordpress-6.7.1-zh_CN.zip .将软件包复制到当前目录,然后执行:unzip wordpress-6.7.1-zh_CN.zip来解压zip包,然后执行:mv wordpress /usr/share/nginx/html/chown -R apache:apache /usr/share/nginx/html/wordpress/将解压出来的项目目录移动至nginx页面目录下,并设置目录权限。接下来进行WordPress配置。首先执行:cd /usr/share/nginx/html/wordpress进入到WordPress 项目目录,然后执行:cp -a wp-config-sample.php wp-config.php将wp-config-sample.php文件复制名为wp-config.php的文件用作配置文件,并保留示例配置文件以作备份。然后开始编辑WordPress的配置文件,输入:vim wp-config.php按 “i”进入编辑模式来编辑配置文件,按照下图把DB_NAME(数据库名称)、DB_USER(数据库用户名)、DB_PASSWORD(数据库密码)更改为之前所配置的设置,参数如下:/** The name of the database for WordPress */define( 'DB_NAME', 'wordpress' );/** Database username */define( 'DB_USER', 'wordpressuser' );/** Database password */define( 'DB_PASSWORD', 'Huawei@123' );修改完后,按Esc,输入“:wq”,回车,保存并退出配置文件,然后执行:grep -n "^[a-z]\|^[A-Z]" wp-config.php来查看修改是否成功,显示如下即可。接下来进行安装WordPress。在浏览器地址栏输入http://127.0.0.1/wordpress,即可跳转至安装页面,然后按照提示填写对应的表单信息后,即可点击安装WordPress。若WordPress安装完成,会如下图所示,然后点击登录,输入用户名和密码,即可登录wordpress管理台,可在页面见到网站仪表盘,如下图所示。在浏览器输入http://127.0.0.1/wordpress 即可查看wordpress主页.可以在管理界面选择想要的主题和插件,可使用在线安装的方式进行安装,也可以在线更新各种插件(PS:前提是设置好此前所说的访问权限,不然会弹出授权界面)。安装完成后,点击启用即可使用,并可在已安装插件中查看。至此,已完成整个WordPress项目的部署。更多案例,点击案例中心查看~
  • [技术干货] 在华为开发者空间,基于鲲鹏搭建Termgraph绘图工具
    “【摘要】 本实验将指导开发者如何在鲲鹏服务器搭建一个Termgraph工具,并根据源码提供的测试文件绘制统计图形。”一、案例介绍鲲鹏服务器是基于鲲鹏处理器的新一代数据中心服务器,适用于大数据、分布式存储、高性能计算和数据库等应用。鲲鹏服务器具有高性能、低功耗、灵活的扩展能力,适合大数据分析、软件定义存储、Web等应用场景。Termgraph是一个Python的命令行工具,用于在终端中绘制基本图形。通过灵活地运用Termgraph工具,能够在无需复杂图形界面的情况下,高效地将数据转化为可视化的终端图形,为数据处理与分析工作带来极大的便利与趣味。本实验将指导开发者如何在鲲鹏服务器搭建一个Termgraph工具,并根据源码提供的测试文件绘制统计图形。二、免费领取云主机如您还没有云主机,可点击链接 ,根据领取指南进行操作。如您已领取云主机,可直接开始实验。三、实验流程说明:下载工具;自动部署并连接鲲鹏服务器;安装python3.7;安装绘图工具;使用工具绘图。四、实验资源本次实验预计花费总计0元。资源名称规格单价(元)时长云主机2vCPUs | 4GB RAM免费30分钟五、实验步骤5.1 准备鲲鹏服务器本实验中,使用云主机提供的鲲鹏沙箱资源,只需要执行简单的自动部署命令即可拉起一台免费的鲲鹏服务器。1. 在云主机桌面右键选择“Open Terminal Here”,打开终端命令窗口。2. 输入自动部署命令,命令如下:hcd deploy --password abcd1234! --time 1800命令的参数说明:• password:password关键字后设置的是鲲鹏服务器的root用户密码,命令中给出的默认为abcd1234!,开发者可以替换成自定义密码(至少8个字符)。• time:time关键字后面设置的为鲲鹏服务器的可用时间,单位为秒,至少600秒。当前实验预估需要20分钟,为了保证时间充足,在命令中申请的时间为30分钟,即1800秒。3. 记录下自动部署后生成的弹性公网IP地址。5.2 下载源码1. 使用命令登录到鲲鹏服务器,命令如下:ssh root@鲲鹏服务器公网IP输入密码,密码为步骤5.1中自动部署命令行中“--password”后面的参数,命令中给出的默认为abcd1234!,如果没有修改,就使用abcd1234!进行登录,如果设置了自定义密码,直接输入自定义的密码(注意:输入过程中密码不会显示,密码输入完成按回车键结束)。2. 从GitHub上拉取工具源码,命令如下:git clone https://github.com/mkaz/termgraph5.3 安装Python软件包因为兼容性问题,所以需要下载Python3.7以上版本,本次实验选择使用Python3.7.17版本。1. 下载并解压Python3.7.17源代码,命令如下:wget https://mirrors.huaweicloud.com/python/3.7.17/Python-3.7.17.tgztar xzf Python-3.7.17.tgzcd Python-3.7.172. 编译和安装,配置编译选项并开始编译,命令如下:./configure --prefix=/usr/local/makesudo make altinstall3. 验证python3.7.17和pip安装是否成功,命令如下:python3.7 --versionpip3.7 --version4. 安装termgraph工具pip3.7 install termgraph5.4 绘制图形根据项目中提供的测试数据文件生成统计图形,命令如下:cd /root/termgraphtermgraph data/ex1.dat该工具还提供了其他的命令参数适应的文件,如果感兴趣可以尝试一下。termgraph data/ex4.dat --color {blue,red}termgraph data/ex7.dat --color {yellow,magenta} --stacked --title "Stacked Data"termgraph --calendar --start-dt 2017-07-01 data/cal.dat至此,本次实验全部完成。
总条数:361 到第
上滑加载中