今天购买了一台阿里云服务器玩玩(主要是想建站)
找了几个小时教程,网上的东西都过时了,估计我现在写的这篇文章过几个月也不适用了,买东西,一定得看产品说明!!!
适用于2021年11月的阿里云服务器建站全过程---慢慢更新,太多东西不会了(请原谅我很菜)
19号发工资,应该是我得到最多钱的一个月,心痒痒的,想买服务器实战一下,正如标题所描述的时间点,对比了三家(华为,阿里,腾讯)综合下来阿里便宜一下(1块/年 域名+43块/年 轻量应用服务器=44块到手 ,配置1核2G 40G存储 5M峰值带宽),当然还有其他家(我认为入门应该得找个靠谱的运营商)。
正文如下:
使用ssh连接root用户,然后新建一个用户(这里新建的用户,我的是没带root权限的,也就是不能使用sudo命令)
注意!这里是root用户模式下执行的命令:
useradd -d /home/leeyangy -m leeyangy
passwd leeyangy
reboot
使用leeyangy账户登录下载所需文件Tomcat,JDK和MYSQL
jdk17:
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
tar -xzvf jdk-17_linux-x64_bin.tar.gz
mv jdk-17_linux-x64_bin.tar.gz jdk
tomcat8:
wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.73/bin/apache-tomcat-8.5.73.tar.gz
tar -xzvf apache-tomcat-8.5.73.tar.gz
mv apache-tomcat-8.5.73 tomcat
切换root用户配置环境变量:
vim /etc/profile
JAVA_HOME=/home/leeyangy/jdk
PATH=/home/leeyangy/jdk/bin:$PATH
CLASSPATH=.:/home/leeyangy/jdk/lib/dt.jar:/home/leeyangy/jdk/lib/tools.jar
CATALINA_HOME=/home/leeyangy/tomcat
export JAVA_HOME PATH CLASSPATH CATALINA_HOME
编辑完成后:
. /etc/profile
分别在root用户和非root用户模式下输入java,javac,java -vsersion,正常输出信息java版本即为配置成功
至此server端配置完成
下面到阿里云工作台开放8080端口(8080记得转内网)
找了我半天,太头疼了,阿里云这个管理后台,对于我这种萌新属实不太友好。
首先打开我们阿里云的工作台,我很确认的说是工作台!
产品服务搜索 轻应用服务器,即可进入后台,然后看到之前购买的服务器,点进去左手边(别问我左手边在哪,自己看)
至此配置tomcat完成
输入阿里云提供的ip+8080/看到那熟悉的tomcat界面,tomcat也就配置成功了。
----------log: 2021/12/7-------------
今天备案通过审核了,网站可以正常访问80端口了
install nodejs
mkdir temp
cd temp
curl -sL https://deb.nodesource.com/setup_18.x -o nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt install nodejs
node -v
## Run `sudo apt-get install -y nodejs` to install Node.js 18.x and npm
## You may also need development tools to build native addons:
## sudo apt-get install gcc g++ make
## To install the Yarn package manager, run:
## curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
## echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
## sudo apt-get update && sudo apt-get install yarn
安装nginx
我在安装配置过程中的问题:
nginx官方下载页面
nginx官方下载页面
wget 文件地址
tar -xzvf nginx--xxxxx-xxxx.tar.gz
mv nginx--xxxxx-xxxx nginx
cd nginx
./configure #配置nginx
make #编译nginx
make install #安装
./configure过程中的报错问题
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.
提示缺少 PCRE library
手动安装一下
apt install libpcre3 libpcre3-dev
查找已安装的nginx
$:whereis nginx
nginx: /usr/local/nginx
$:cd /usr/local/nginx
$:cd /sbin
$:./nginx
浏览器地址栏输入服务器ip,即可看到welcome nginx
自启动nginx?
自ubuntu1604之后不再使用initd管理系统,改用systemd,使用systemctl替换原来service 和 chkconfig功能
systemd 默认读取/etc/systemd/system 下的配置文件,该目录下的文件会链接/lib/systemd/system/下的文件
建立服务文件
vim /lib/systemd/system/nginx.service
复制如下内容写入到nginx.service中
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target
[Unit]:服务的说明
Description:描述服务
After:依赖,当依赖的服务启动之后再启动自定义的服务
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令(需要根据路径适配)
ExecReload为重启命令(需要根据路径适配)
ExecStop为停止命令(需要根据路径适配)
PrivateTmp=True表示给服务分配独立的临时空间
注意:启动、重启、停止命令全部要求使用绝对路径
[Install]服务安装的相关设置,可设置为多用户
Type
Type=simple(默认值):systemd认为该服务将立即启动。服务进程不会fork。如果该服务要启动其他服务,不要使用此类型启动,除非该服务是socket激活型。
Type=forking:systemd认为当该服务进程fork,且父进程退出后服务启动成功。对于常规的守护进程(daemon),除非你确定此启动方式无法满足需求,使用此类型启动即可。使用此启动类型应同时指定 PIDFile=,以便systemd能够跟踪服务的主进程。
Type=oneshot:这一选项适用于只执行一项任务、随后立即退出的服务。可能需要同时设置 RemainAfterExit=yes使得systemd在服务进程退出之后仍然认为服务处于激活状态
Type=notify:与 Type=simple相同,但约定服务会在就绪后向systemd发送一个信号。这一通知的实现由 libsystemd-daemon.so提供。
Type=dbus:若以此方式启动,当指定的 BusName 出现在DBus系统总线上时,systemd认为服务就绪。
PIDFile : pid文件路径
ExecStartPre :启动前要做什么,上文中是测试配置文件 -t
2.保存目录
/usr/lib/systemd/system
3.设置开机自启动
systemctl enable nginx.service //任意目录下执行
4.使用命令
systemctl start nginx.service //启动nginx服务
systemctl enable nginx.service //设置开机自动启动
systemctl disable nginx.service //停止开机自动启动
systemctl status nginx.service //查看状态
systemctl restart nginx.service //重启服务
systemctl list-units --type=service //查看所有服务
redis:
# 安装
wget https://download.redis.io/redis-stable.tar.gz
tar -xzvf redis-stable.tar.gz
cd redis-stable
make
sudo make install
# 在当前redis-stable目录 复制一份 redis.conf 到 安装后的目录
sudo cp redis.conf /usr/local/bin
# 修改配置,使其能在后台运行 daemonize no -> yes
daemonize yes
# 添加密码
requirepass [you password]
# 配置开机自启动
sudo vim /etc/systemd/system/redis.service
# 粘贴一下内容
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /usr/local/bin/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target # 保存退出 # 重新加载系统服务systemctl daemon-reload
# 启动 redis
systemctl start redis
# 查看状态systemctl status redis
# 开机自启动
systemctl enable redis
#ubuntu-server2004 bash tab补全命令
# 这是注释,别复制。 安装 bash-completion
$: sudo apt-get install bash-completion
#: source /etc/bash_completion
#编辑
$: sudo vim /etc/bash.bashrc
#粘贴如下代码到末尾
[plain]
if [ -f /etc/bash_completion ]; then
/etc/bash_completion
fi
安装docker配置hadoop
#查看架构
$ uname -a
#输出如下信息?
Linux raspberrypi 5.15.0-1014-raspi #16-Ubuntu SMP PREEMPT Thu Aug 25 09:50:55 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux
#执行更新操作
$ sudo apt update
$ sudo apt upgrade
$ sudo apt full-upgrade
#安装必要的证书并允许 apt 包管理器使用以下命令通过 HTTPS 使用存储库
$ sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
#运行下列命令添加 Docker 的官方 GPG 密钥
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
#添加 Docker 官方库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker. List > /dev/null
#更新源
sudo apt update
#最后,运行下列命令在 Ubuntu 22.04 LTS 服务器中安装最新 Docker CE
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
#安装其它版本?sudo apt-cache madison docker-ce
#检查运行状态(自行判断是否成功?)
官方实例测试
sudo docker run hello-world
自行判断吧?
啊啊啊啊,Hadoop实验环境真是太难搭了。
由于我用的是树莓派,在一些兼容上,可能有些差距,但毕竟是个伪集群。
backupfile
docker 一些常用指令
docker
commit [-a "作者名" -m "注释信息" REPOSITORY[:tag] ]
save
load
export
cp [OPTIONS] [CONTAINER_ID]:[SRC_PATH] [DEST_PATH]
在docker中 开启ssh
apt-get install openssh-server
sudo ps -e |grep ssh
service ssh start
vim /etc/ssh/sshd_config
#add PermitRootLogin yes
PermitRootLogin yes
#commit PermitRootLogin without-password
PermitRootLogin without-password
docker manager tool ==>> portainer
docker pull portainer/portainer:latest
docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name prtainer-test portainer/portainer
-------------------2022--09--17--01:00----------
systemctl status docker
没用的log !!!
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-09-16 21:43:23 CST; 3h 26min ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 906 (dockerd)
Tasks: 9
Memory: 78.6M
CPU: 7.037s
CGroup: /system.slice/docker.service
└─906 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
9月 16 21:43:21 raspberrypi dockerd[906]: time="2022-09-16T21:43:21.169304661+08:00" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
9月 16 21:43:21 raspberrypi dockerd[906]: time="2022-09-16T21:43:21.424007994+08:00" level=info msg="[graphdriver] using prior storage driver: overlay2"
9月 16 21:43:21 raspberrypi dockerd[906]: time="2022-09-16T21:43:21.520504512+08:00" level=info msg="Loading containers: start."
9月 16 21:43:22 raspberrypi dockerd[906]: time="2022-09-16T21:43:22.045142901+08:00" level=warning msg="Could not load necessary modules for IPSEC rules: protocol not supported"
9月 16 21:43:22 raspberrypi dockerd[906]: time="2022-09-16T21:43:22.451817141+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
9月 16 21:43:22 raspberrypi dockerd[906]: time="2022-09-16T21:43:22.639355400+08:00" level=info msg="Loading containers: done."
9月 16 21:43:23 raspberrypi dockerd[906]: time="2022-09-16T21:43:23.128649234+08:00" level=info msg="Docker daemon" commit=e42327a graphdriver(s)=overlay2 version=20.10.18
9月 16 21:43:23 raspberrypi dockerd[906]: time="2022-09-16T21:43:23.129690604+08:00" level=info msg="Daemon has completed initialization"
9月 16 21:43:23 raspberrypi systemd[1]: Started Docker Application Container Engine.
9月 16 21:43:23 raspberrypi dockerd[906]: time="2022-09-16T21:43:23.258209845+08:00" level=info msg="API listen on /run/docker.sock"
常用命令?
开启docker服务
sudo systemctl start docker
开机自启
sudo systemctl enable docker
sudo apt remove --autoremove python3.10
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
切换jdk
sudo update-alternatives --config java
新建用户
useradd -m leeyangy -c "leeyangyang group" -d /home/leeyangy -s /bin/bash