IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 清障记-1(2022-07-29)- 阿里云、centos8、nginx、nodejs、react nextjs、go、git、mysql8、mongodb -> 正文阅读

[开发工具]清障记-1(2022-07-29)- 阿里云、centos8、nginx、nodejs、react nextjs、go、git、mysql8、mongodb

纯流水账记录:
问:今天干了什么?学到了什么?还差什么?
答:
今天干了什么?
今天主要用最原始的方式,从购买阿里云,到搭建nginx,安装各种所需要的服务,搭建了前端和后端,让前端react 能和后端go的api交互。涉及到下面这些centos8、nginx、nodejs、react nextjs、go、git、mysql8、mongodb。
今天学到了:
1,如何最原始的方式安装各种软件
2,nginx 配置react (见第5部分)
3,reactnextjs 如何发布运行 ,不同环境怎么区分
还差什么?
如何用docker 还有jenkins来使得这些更加自动化些?nginx的配置太简单了

======================================================

1,购买阿里云(试用,此处省略)并配置密码,可以让ssh登录

2,安装nginx

yum update
yum info nginx
yum install nginx
systemctl start nginx
systemctl status nginx

3,安装nodejs,yarn

curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -  
yum install -y nodejs
wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
yum install yarn

4,安装git,在需要安装代码的目录下git clone 前端的代码库

yum install git 
git clone git@github.com:xyxyxyx/ababab.git

然后可以在代码目录下运行 可以执行

yarn install

安装好后,如果运行 yarn dev ,没有错,基本上应该没问题了,毕竟本地已经测试过了。
我react 是基于nextjs的。

5,那么开始搞nginx的配置,让打开阿里云的ip(没有钱买域名)的时候 直接显示这个react的站点。

这里我是这样改的,首先备份原来的nginx.conf(一般在 /etc/nginx/目录下),然后修改他,
在http 这个块下面添加下面的

upstream stockdemo {
  server localhost:3000;
}  

然后删掉原来http块里的server 80那段默认的。
然后在conf.d目录下 我建一个新的conf文件 比如stockdemo.conf,此处配置最简单的,什么配置都没有相当于,后续会来更新优化。

server {
    listen 80;
    location / {
        proxy_pass http://stockdemo;
    }
}    

保存完后重启nginx

systemctl restart nginx

这时如果你打开你的ip地址,那么就应该出现了简单的前端页面:
在这里插入图片描述

6,开始搞后端的,先装go 吧

wget https://golang.google.cn/dl/go1.18.4.linux-amd64.tar.gz
tar -zxf go1.18.4.linux-amd64.tar.gz  -C /usr/local
vim /etc/profile

然后在文件的最后添加

#go 环境变量
export GO111MODULE=on
export GOROOT=/usr/local/go
export GOPATH=/home/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

保存完后,退出,然后重新载入profile 查看go version

source /etc/profile
#查看go是否安装好
go version 

7,安装mysql mongodb

wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
yum install mysql-server
systemctl start mysqld.service
#查看是否有mysqld的进程
ps -ef|grep mysqld
#第一次登录进去不要输入密码
mysql -uroot -p
#进入mysql后 改root密码,新建db,用户等
create database stock;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newrootpassword';
create user 'stock'@'localhost' identified by 'stock123';
#grant all priviliges on stock.* to 'stock'@'localhost';  
grant all privileges on stock.* to 'stock'@'%' ;

然后导入本地的sql,此处不说了
开始安装mongodb
我按照这个文章mongodb.com/docs/manual/tutorial/install-mongodb-on-red-hat/
摘抄如下
Create a /etc/yum.repos.d/mongodb-org-6.0.repo file so that you can install MongoDB directly using yum: 我们要vim /etc/yum.repos.d/mongodb-org-6.0.repo 里面写上下面这段:

mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc

保存后,就可以用 yum install了 如下:

sudo yum install -y mongodb-org
sudo systemctl start mongod
sudo systemctl status mongod

这样就安装好mongodb了
这里有个地方要注意,centos上装好的mongodb 的client端 命令是mongosh 而不是 本地mac上的 mongo
然后我再导入本地的mongdb文件 此处也不赘述。

8,go 的站点启动 遇到了些问题

go build 的时候总是出现:
Go get 太慢, 然后到这个页面看到解决方法https://goproxy.io/zh/

export GOPROXY=https://proxy.golang.com.cn,direct

速度提高多了。
因为我用了比较老的orm: xorm,之前本地调试都没问题,不知道为啥在正式服务器上就老是显示:

common/db.go:6:2: reading github.com/go-xorm/xorm/go.mod at revision v0.7.9: git ls-remote -q origin in /home/gopath/pkg/mod/cache/vcs/516cff95263076be8ff66fbbae295f8235963b00c4f114bcea50f99a51def272: exit status 128:
        ERROR: Repository `go-xorm/xorm' is disabled.
        Please ask the owner to check their account.

        fatal: Could not read from remote repository.

        Please make sure you have the correct access rights
        and the repository exists.

以上这段错误,说明xorm 换地址了?
于是我baidu了下,最后发现
xorm 真的换地址了
https://gitea.com/xorm/xorm
我把代码中之前用到import github 下的xorm改成了xorm.io的,然后就ok了。

go get xorm.io/xorm

然后我

nohup go run 

go 服务就起好了。然后我再打开我的ip地址,现在api里都能访问到go的api了,也能返回数据了。

9,react nextjs中配置env 的问题

我不是全职做前端的,所以其实这都是我自己瞎摸的,可能真正的方法不是这样。
得装下 "cross-env": "^7.0.3"

 "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint",
    "build-next-prd": "cross-env ENV=next-prd next build"
 }

这样的话,可以在next.config.js中来配置env
process.env.ENV 这个就是 next-prd,根据这个来判断到底应该用那个apihost 就可以了

const apiHostMapping = {
  'next-prd': 'xxx.xxx.2xx.xxx',
  'next': 'localhost'
};
env: {
    APIHOST: process.env.ENV ? apiHostMapping[process.env.ENV] : 'localhost'

  },

这样 yarn build-next-prd 再 yarn start ,这时候 服务器上调用的api 就是xxx.xxx.xxx.xxx了 而不是我们之前测试的localhost。

========================================
障碍太多了,今天只扫了一个地方。
还差的地方,要看下次再补上。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 11:04:10  更:2022-08-06 11:07:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:54:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码