阿里云ECS本地部署DeepSeek-R1
直入主题,先购买阿里云ECS服务器(此处不详细展开说明,本人购买香港机房)。
只是为了学习部署用,故购买CPU类型ESC即可,模型选 1.5b
打开浏览器,输入:https://ollama.com/ 进入ollama官网
说明:ollama 可以看作跑AI的壳子
deepseek-r1(1.5b 7b 8b)、deepseek-v3 是模型
如下图所见:
点击 “Download”,选择Linux
友情提醒,这里的下载安装,速度很慢,本人大概用了3-4小时 才下载安装好,需要耐心等待一下。
ollama 壳子安装完成后,我们就可以安装 各种模型了,本人此处硬件配置低,故只能安装1.5b 模型,如下图:
复制上面的命令,按回车,如下图:
安装模式速度很快,座等几分钟即可。
PS:如果退出,需要重新进入Ollma命令上,参考如下:
查看ollama安装的模式列表: ollama list
进入ollama命令行客户端:ollama run 模型名称;比如:ollama run deepseek-r1:1.5b
退出命令行客户端: 按 Ctrl + D
重启:systemctl daemon-reload
systemctl restart ollama
卸载ollama和模型:ollama rm xxxxxx
ollama rm 模型名称
如下图:
好了,至此 本地安装全部完成,让我们开始新的旅程吧。
PS: 别忘记安装nginx哦,如果不知道怎么安装,请看如下地址
https://www.cnblogs.com/jimmyshan-study/p/11515945.html
配置ollama远程访问,一定要修改,否则,自己的应用程序无法使用 http api接口调用(postman同理)
打开终端并运行以下命令来编辑Ollama的systemd服务: sudo systemctl edit ollama.service
这将打开一个编辑器。
在[Service]
部分下,为每个环境变量添加一行:
[Service] Environment="OLLAMA_HOST=0.0.0.0:11434" Environment="OLLAMA_ORIGINS=*"
在命令行输入:
curl http://ip地址:11434
出现如下图,标识可以远程访问API了
===================================================================================================
本人选择简易版本,学习够用了(ollama-webui-lite)
步骤如下:
cd ~ git clone https://github.com/ollama-webui/ollama-webui-lite.git cd ollama-webui-lite # 编译 npm ci
如果出现错误,可能是node版本引起,请看下面 ===== 以下内容进行安装(红色字体 找 安装node20.10.0 内容)
编译成功后,执行: npm run dev
然后,打开浏览器,输入: http://ip地址:3000 即可访问
应该会出现报错,链接不到 deepseek api
编辑 vi /root/ollama-webui-lite/src/lib/constants.ts (本人下载安装 ollama-webui-lite 的路径)
export const OLLAMA_API_BASE_URL = `http://外网IP:11434/api`; export const WEB_UI_VERSION = "v0.0.1-lite";
还要解决 跨域问题,修改nginx配置,如下
vi /etc/nginx/conf.d
server { listen 80; server_name localhost; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } location /api/ { proxy_pass http://127.0.0.1:11434; proxy_set_header origin http://127.0.0.1:11434; proxy_buffering off; proxy_cache off; proxy_set_header Connection ''; proxy_http_version 1.1; chunked_transfer_encoding off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; add_header 'Access-Control-Allow-Origin' '*' always; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always; add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization' always; add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range' always; if ($request_method = 'OPTIONS') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization'; add_header 'Access-Control-Max-Age' 1728000; add_header 'Content-Type' 'text/plain; charset=utf-8'; add_header 'Content-Length' 0; return 204; } } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} }
service nginx stop
service start stop
重启下NGINX,好了,全部完工。
PS: 上面我们用 npm run dev 启动前端工程,当我们关闭命令行窗口后,进程就会停止,不能继续访问了,解决如下:
安装pm2工具 管理前端工程进程,
安装:npm install pm2 -g
运行:pm2 start npm --name "ollama-webui-myweb" -- run dev
相关命令:pm2 list --查看应用进程列表
pm2 stop all --停止所有应用进程
pm2 restart all --启动所有应用进程
pm2 reload all --软启用所有应用进程
pm2 delete 0 --删除ID为0的应用进程
pm2 delete all --删除所有应用进程
===================================================================================================
以下安装有点麻烦,本人就当笔记记录一下,主要是安装python3.11.0 node-20.10.0 ,上面如果安装成功了,可以忽略以下的内容
上面我们已经安装好,但是使用很不方便,不能让使用者进入服务器敲打命令行吧,这里,我们需要安装一下webUI界面,
从GITHUB上找了开源的项目,本人这里选择 open-webui,本人按照官方教程(GITHUB)使用docker安装,报镜像不存在
以为是服务器国内问题,换国际服务器也同样相同问题,无奈,只能从GITHUB下载源码编码了,但是,open webUI需要 python3.11.0及 nodejs 20以上,
本人购买的的服务器是centos7.6 64位,不想换服务器,只能手动升级了。
centos7.6自带python2.7,那就让我们手动升级到3.11.0版本,并同时支持python2 python3,因为yum需要python2的支持,开始安装。
重命名原来的文件:
cd /etc/yum.repos.d/ mv CentOS-SCLo-scl.repo CentOS-SCLo-scl.repo.bak mv CentOS-SCLo-scl-rh.repo CentOS-SCLo-scl-rh.repo.bak
运行 vim 或 vi 命令并粘贴下方内容:
vi CentOS-SCLo-rh.repo
黏贴如下信息
[centos-sclo-rh] name=CentOS-7 - SCLo rh baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
安装openssl1.1.1(python3.11需要1.1.1版本以上的openssl)
cd ~
wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1w.tar.gz
tar zxvf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
./config --prefix=/usr/local/openssl
make && make install
安装 pyenv 管理工具,这个工具可以方便管理python版本
安装依赖 sudo yum install -y git gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel findutils curl https://pyenv.run | bash echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc source ~/.bashrc 这里,本人没有安装成功,所以,换一种方式安装,从源码编译安装(推荐)
手动安装如下:
安装依赖
sudo yum groupinstall -y "Development Tools"
sudo yum install -y openssl-devel bzip2-devel libffi-devel zlib-devel xz-devel tk-devel
下载并解压 Python 3.11 源代码:
cd /usr/src sudo wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz sudo tar xzf Python-3.11.0.tgz cd Python-3.11.0 sudo ./configure --enable-optimizations sudo make altinstall
输入:python3.11 --version 查看版本
python --version
问题:此处系统中的默认python版本还是 Python 2.7.5,我们需要更换默认版本。
输入命令:whereis python 查询 python所在的安装目录
使用cp,将 python3.11的文件,拷贝到 /usr/bin/ 目录下
如:cp /usr/local/bin/python3.11 /usr/bin/python3.11
cp /usr/local/bin/python3.11-config /usr/bin/python3.11-config
将原来的链接备份
mv /usr/bin/python /usr/bin/python.bak
添加python3的软连接
cd /usr/bin
ln -s python3.11 python
查看python文件情况
ll python*
验证下是否安装成功
python --version
看到 Python 3.11.0 表示已经安装成功
重要:修改 yum 配置,因为yum使用的是 python2,不修改会导致yum不能正常使用
vi /usr/bin/yum 将第一行的 #!/usr/bin/python 修改为 #!/usr/bin/python2 vi /usr/libexec/urlgrabber-ext-down 将第一行的 #!//usr/bin/python 修改为 #!//usr/bin/python2
安装nodejs20.10.0及以上
cd /opt wget https://nodejs.org/dist/v20.10.0/node-v20.10.0-linux-x64.tar.xz tar xvf node-v20.10.0-linux-x64.tar.xz
mv node-v20.10.0-linux-x64 ./nodejs
添加环境变量,vi /etc/profile,内容如下
## set nodejs export NODE_HOME=/opt/nodejs export PATH=.:$NODE_HOME/bin:$PATH
输入:node -v
如果出现版本号,表明安装已经成功。
如果出现如下信息:
node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node) node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node) node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node) node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by node) node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by node) node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node)
那我们需要升级类库,步骤如下:
更新glibc
wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz tar xf glibc-2.28.tar.gz cd glibc-2.28/ && mkdir build && cd build ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
可能会出现错误信息,如果出现下面的错误:
configure: error:
*** These critical programs are missing or too old: make compiler
*** Check the INSTALL file for required versions.
更新系统软件包:
sudo yum update
解决办法:升级gcc与make
# 升级GCC(默认为4 升级为8)</span> yum install -y centos-release-scl yum install -y devtoolset-8-gcc* mv /usr/bin/gcc /usr/bin/gcc-4.8.5 ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc mv /usr/bin/g++ /usr/bin/g++-4.8.5 ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++ # 升级 make(默认为3 升级为4) wget http://ftp.gnu.org/gnu/make/make-4.3.tar.gz tar -xzvf make-4.3.tar.gz && cd make-4.3/ ./configure --prefix=/usr/local/make make && make install cd /usr/bin/ && mv make make.bak ln -sv /usr/local/make/bin/make /usr/bin/make
这时 所有的问题 都已经解决完毕 再重新执行上一步 更新glibc即可
cd /root/glibc-2.28/build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
查看 bison 版本
bison --version
如果出现,表示已经安装,如果没有,需要手动安装,如下:
cd /root/glibc-2.28/build ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin yum install -y bison
好了,继续更新,下一步
make && make install
验证下 是不是已经OK
node -v
npm -v
发现还有3个错误
node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node)
输入命令:strings /usr/lib64/libstdc++.so.6 | grep CXXABI
再次查看一下版本
继续更新(更新libstdc++.so.6.0.26)
cd /root wget https://cdn.frostbelt.cn/software/libstdc%2B%2B.so.6.0.26
备份原有的软连接
mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak
替换系统中的/usr/lib64
cp /root/libstdc++.so.6.0.26 /usr/lib64/ cd /usr/lib64/ ln -snf ./libstdc++.so.6.0.26 libstdc++.so.6
好了,验证一下
node -v
npm -v
OK,完工。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器