# 服务器环境

服务器配置初始化

安装特定版本的JDK

1
2
3
4
5
6
7
8
9
10
11
12
13
# 用于安装特定版本的JAVA
把JDK解压之后

vi /etc/profile

JAVA_HOME=/usr/local/jdk/jdk1.8.0_181
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME PATH CLASSPATH

source /etc/profile

ln -s /usr/local/jdk1.8.0_181/bin/java /usr/local/bin/java

安装docker

直接复制然后保存为sh文件,加上执行权限执行就可以了。注意不要在windows环境编辑脚本再上传,不然要进行文件格式转化。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/bin/bash

# 卸载旧版本的 Docker
yum remove -y docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

# 安装依赖包
yum install -y yum-utils

# 添加 Docker 的 YUM 源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装 Docker 引擎、客户端和容器管理工具
yum install -y docker-ce docker-ce-cli containerd.io

# 启动 Docker 服务
systemctl start docker

# 显示已安装的 Docker 镜像
docker images

# 设置 Docker 开机自动启动
systemctl enable docker

# 创建 Docker 配置目录
mkdir -p /etc/docker

# 配置镜像加速器地址
cat <<EOF > /etc/docker/daemon.json
{
"registry-mirrors": ["https://kru7klna.mirror.aliyuncs.com"]
}
EOF

# 重新加载系统守护进程
systemctl daemon-reload

# 重启 Docker 服务
systemctl restart docker

echo "Docker 安装和配置完成"

下载mysql

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
docker pull mysql:5.7

mkdir /mydata /mydata/mysql /mydata/mysql/log /mydata/mysql/data /mydata/mysql/conf

docker images

# 密码是root

docker run -d \
--restart=always \
-p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

# 不添加权限,mysql数据就无法持久化
chmod 777 /mydata/mysql/log
chmod 777 /mydata/mysql/data
chmod 777 /mydata/mysql/conf

# 修改mysql配置
cat << EOF > /mydata/mysql/conf/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
EOF

docker restart mysql

redis环境搭建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

docker pull redis


mkdir -p /mydata/redis/conf


touch /mydata/redis/conf/redis.conf



docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

docker restart redis

vim redis.conf

# 使用 ? 向后搜索: 按下 ? 键,然后输入你要搜索的文本。 例如,如果你要搜索单词 "example",则输入 ?example

安装es和kibana和ik分词器

1
2
# 先创建关联网络
docker network create es-net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
docker pull elasticsearch:7.12.0


mkdir -p /usr/local/es/data /usr/local/es/config /usr/local/es/plugins


chmod 777 /usr/local/es/data
chmod 777 /usr/local/es/config
chmod 777 /usr/local/es/plugins



docker run -d \
--restart=always \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /usr/local/es/data:/usr/share/elasticsearch/data \
-v /usr/local/es/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:7.12.0


docker exec -it es /bin/bash


cd config

echo 'xpack.security.enabled: false' >> elasticsearch.yml

docker restart es

# 如果有发现docker ps中的es容器一直在重启可以
docker logs es
# 来查看报错原因

kibana环境搭建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

docker pull kibana:7.12.0

mkdir -p /usr/local/kibana/config /usr/local/kibana/data

chmod 777 /usr/local/kibana/data
chmod 777 /usr/local/kibana/config

docker run -d \
--restart=always \
--name kibana \
--network es-net \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
kibana:7.12.0

到本地虚拟机的这个目录
/usr/local/es/plugins

把我给的ik分词器安装包拖入
/usr/local/es/plugins/analysis-ik
解压
注意目录结构
如下图,不然无法识别

unzip elasticsearch-analysis-ik-7.12.0.zip
==================================
//如果没有这个命令就安装
yum list | grep zip/unzip

yum install zip

yum install unzip


===================================
docker restart es


curl localhost:9200
看看有没有正常显示


Logstash安装

1
2
3
4
docker pull docker.elastic.co/logstash/logstash:7.9.1



内网穿透nps

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//下面来配置内网穿透
//安装npc
docker pull ffdfgdfg/npc

//下载conf文件夹,解压
https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/ehang-io/nps/tree/master/conf

//创建映射目录
mkdir /usr/local/npc /usr/local/npc/config

//解压config文件夹
docker run -d --name npc --net=host -v /usr/local/npc/config:/conf ffdfgdfg/npc -config=/conf/npc.conf


//安装nps
docker pull ffdfgdfg/nps


mkdir /usr/local/nps /usr/local/nps/config
//下载conf文件夹,解压


docker run -d --name nps --net=host -v /usr/local/nps/config:/conf ffdfgdfg/nps


sudo yum install golang

docker部署nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# docker 部署nginx



mkdir -p /usr/local/nginx/conf
mkdir -p /usr/local/nginx/log
mkdir -p /usr/local/nginx/html


# 生成容器
docker run --name nginx -p 9001:80 -d nginx
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /usr/local/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /usr/local/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /usr/local/nginx/


# 直接执行docker rm nginx或者以容器id方式关闭容器
# 找到nginx对应的容器id
docker ps -a
# 关闭该容器
docker stop nginx
# 删除该容器
docker rm nginx

# 删除正在运行的nginx容器
docker rm -f nginx


docker run \
-p 9002:80 \
--name nginx \
-v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /usr/local/nginx/log:/var/log/nginx \
-v /usr/local/nginx/html:/usr/share/nginx/html \
-d nginx:latest


curl 127.0.0.1:9002



服务器部署nps

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
mkdir -p /usr/local/nps/config

docker pull oldiy/nps-server

docker run -d --name nps --net=host -v /usr/local/nps/config:/nps/conf oldiy/nps-server

docker stop nps

vim /usr/local/nps/config/nps.conf



====================================================
打开后重点关注下面这几项:
ini复制代码...
bridge_port=8024 # 客户端连接端口
...
web_username=admin # 后台管理用户名
web_password=123 # 后台管理密码
web_port = 8080 # 后台管理端口
...

以上是默认的配置,建议改掉。
========================================================
docker start nps

网页端访问 <ip_addr>:<web_port>,并通过用户名 <web_username> 和密码 <web_password> 登录后台管理界面了



//后面换教程了,这一段作废

服务器部署nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel


wget http://nginx.org/download/nginx-1.25.1.tar.gz


mkdir /usr/local /usr/local/nginx


mv nginx-1.25.1.tar.gz /usr/local/nginx


cd /usr/local/nginx

tar -zxf nginx-1.25.1.tar.gz

cd nginx-1.25.1


./configure


make && make install


cd /usr/local/nginx/sbin

ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx

./nginx


# 如果之前就配置过nginx,80端口费被占用,接下来就是修改下配置了

server {
listen 81;
server_name localhost;

后台运行项目

1
2
3
nohup java -jar hemei-admin.jar > outputjava.log &

nohup python spider.py > outputpy.log &

linux安装python环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 #安装py环境
wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz
#安装openssl
yum -y install gcc make zlib zlib-devel libffi libffi-devel readline-devel openssl-devel openssl11 openssl11-devel

# 下面的要导入到/etc/profile中
export CFLAGS=$(pkg-config --cflags openssl11)
export LDFLAGS=$(pkg-config --libs openssl11)

ldconfig -v
显示出相关内容



# 解压到/usr/local/src目录
tar zvxf Python-3.11.0.tgz -C /usr/local/src
cd /usr/local/src/Python-3.11.0
# 编译前配置
./configure prefix=/usr/local/python3/Python3.11.0 --with-ssl
# 编译构建
make && \\make install
# 链接构建产出的Python可执行文件到/usr/local/bin目录
ln -s /usr/local/python3/Python3.11.0/bin/python3 /usr/local/bin/python
# 链接构建产出的pip3可执行文件到/usr/local/bin目录
ln -s /usr/local/python3/Python3.11.0/bin/pip3 /usr/local/bin/pip
# 链接构建产出的Python动态库 ????????好像不用这步
ln -s /usr/local/python3/lib/libpython3.11.so.1.0 /usr/lib/libpython3.11.so.1.0
# 配置动态库
ldconfig

python --version
Python 3.11.0 # 正常输出,表示安装成功


#pip默认是到pypi官方源下载第三方依赖包,下载速度可能会比较慢,可以考虑调整为腾讯云的pypi下载源,调整方式:
mkdir ~/.pip/
echo "extra-index-url = https://mirrors.cloud.tencent.com/pypi/simple" >> ~/.pip/pip.conf



#运行爬虫项目还需导入缺失的爬虫模块
pip install Flask
pip install requests
pip install pandas

pip3 install PyExecJS

查询端口占用情况

1
2
3
lsof -i:端口号
kill -9 pid

安装nps

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
把安装包拖入

解压
tar -xslf



./nps install

修改配置文件
cd /etc/nps/conf
配置文件在安装目录的不生效,上面的路径才生效


如果发现运行不成功可以通过
nps
进行调试

记得把所有端口都开给它
记得有
8080
8024
443
80


nps start

启动GitLab

1
docker run  -itd  -p 9443:443  -p 9980:9980  -p 9922:22  -v /home/gitlab/etc:/etc/gitlab   -v /home/gitlab/log:/var/log/gitlab  -v /home/gitlab/opt:/var/opt/gitlab  --restart always  --privileged=true  --name gitlab  gitlab/gitlab-ce

安装nodejs环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
wget https://nodejs.org/dist/v16.19.1/node-v16.19.1-linux-x64.tar.xz


tar xf node-v16.19.1-linux-x64.tar.xz

mkdir /usr/local/lib/node

mv node-v16.19.1-linux-x64 /usr/local/lib/node/nodejs

sudo vim /etc/profile

export NODEJS_HOME=/usr/local/lib/node/nodejs
export PATH=$NODEJS_HOME/bin:$PATH

source /etc/profile

node -v

npm -v

下载WordPress建站

1
2
3
4
docker pull wordpress

docker run --name wordpress --link mysql:mysql -p 80:80 -d\
-v wordpress:/var/www/html wordpress

windows的shell文件转化到linux环境的

1
2
3
yum install dos2unix
# 像下面的这个一样转化就好了
dos2unix install_docker.sh

常用运维命令大全

1
2
3
4
5
6
7
8
9
10
# 查看上一个命令的执行结果,如果是0则为成功。可用于shell编程
echo $?
# 查看之前服务器运行的命令 可如history | grep 'docker run'查看之前运行的docker run的参数
history | grep 'keyword'
# 寻找按照文件名寻找文件 find 【文件夹路径】 -name "【文件名】"
find / -name "keyword"
# 列出服务器参数
lscpu
vim删除全部
ggdG