我是一名来自华南农业大学软件工程专业的学生,现在就读于大三,由于要完成的linux实验要求可以外网访问,并且将数据从数据库显示到网页,所以需要云服务器。我在网上找了很多家平台,都没有提供免费的、较长时间的试用服务。终于,在一个博客的推荐下,我了解到了这个飞天加速计划,解决了我的燃煤之急。
我在云服务器使用的过程中,发现他可以可视化的控制端口的开启,方便的了我的观察,让我不需要在后台直接打指令;在使用中,由于我的实验跟数据库有管,所以需要安装一个数据库。可是当我安装玩Mysql 8.0之后我才发现,由于aliyun第一个推荐的云服务器系统可能是根据CentOs 8 系统二次开发的,所以数据库的RPM key会找不到,需要自行修改,但对我来说非常麻烦。幸运的是,我发现ecs可以自由切换系统,免除了我自己找安装包的烦恼,于是我装上了CentOs 7 正式开始了我的云服务器esc的实践之路。
这个实验对我来说可是收获颇丰,但也遇到了很多问题。
首先第一个问题,云服务器我从来没了解过,所以搜索了好久终于找到了一个免费两周的阿里云服务器,胡乱的装了一个他推荐的操作系统,结果因为他是基于centOS 8 版本进行二次开发的,所以会有这个问题:Centos系列 Curl error (37): Couldn‘t read a file:// file for file:///etc/pki/rpm-gpg/RPM-GPG-KEY-XXXX
解决办法:可能是因为阿里云的linux系统是根据centreOs 8的基础上开发的 ,所以才会出现这个问题;由于我不会更改/etc/pki/rpm-gpg路径下的文件,只好换成centreOs7的系统。
其次第二个问题,是我了解的范畴大多在前端,着实没真正写过Java的SpringBoot程序,所以有很多问题,我总结出了一个简单的判断Bug的方法
1.springboot的配置文件里数据库 的密码和用户名是否和云服务器内的一致
- 是否有能让Tomcat启动后调用该程序的类
3.程序的结构是否按照springboot的要求进行分包
4.是否删除了tomcat/webapps里的文件,以免占有端口
5.端口是否打开,是不是8080端口
- nginx的配置是否按照自己的要求,有没有搞错域名。
第三个问题:PHP的安装实在是太麻烦了,首先由于缺少了很多必要的安装库,疯狂的失败,但是后来根据很多博客和教学,总结出了一个安装的流程。 - 安装必要的库文件
2.下载PHP
- 新建一个php-fpm用户
- 初始化参数 这里是最难的,但是我随便复制了一串字符歪打正着过了
- 启动php
- ps -ef | grep php 判断是否开启了服务
第四个问题:PHP语言也是最难写的服务器语言,当时报了一个
这样的错误php空指针调用成员函数报错,致命错误:在null上调用成员函数query(),我忘记怎么解决的了。
第五个问题:配置PHP的nginx 。
解决方法:按照location /{#mystart xxxxx #my end}的格式,内容也有要求
第六个问题:go get github.com/go-sql-driver/mysql一直不能执行 后来发现是缺少了 命令参数。
第七个问题: no require module provides package github.com/xxx
问题根源是golang的第三方包的引用错误
解决办法:关于golang第三方包的引用报错:no required module provides package : go.mod file not found in current directory or any parent directory; 执行:go env -w GO111MODULE=auto
第八个问题:nodejs的安装,
1.通过ftp上传nodejs的压缩包,解压和安装在指定目录,将node、npm指令建立软链接在/bin文件夹
问题 nodejs 找不到 module ’mysql‘模块,即找不到该依赖包
解决办法
1.npm init 构建一个package.json在对应的文件夹,以此标注mysql依赖包的位置
2.直接在nodejs的目录下npm install mysql ,结果还是报了 找不到package.json错误
最后卸载了npm 与 nodejs直接 yum install npm 和 yum install nodejs.x86_64 然后在对应目录 执行 npm install mysql。
最终,耗时整整一个星期,我最终完成了这个实验,虽然很累,但总归是圆满完成了。我了解了go、php语言,了解了网站的部署方式,熟练了很多linux指令,这都感谢阿里云服务器给我提供了这个平台,万分感谢