huggingface托管streamlit只能服务两天,所以将自己的streamlit项目部署到云服务器上,以便长期访问。
参考:https://blog.csdn.net/qq_51392112/article/details/131416783
pip install pipreqspipreqs ./在自己购买服务器的平台上放行一个端口(或者叫添加端口规则、添加安全组规则、添加防火墙规则),端口号随意写一个不常用端口,比如8800。协议选TCP。
远程连接服务器后,安装宝塔。宝塔安装链接:https://www.bt.cn/new/download.html
安装教程可参考:https://blog.csdn.net/SoloVersion/article/details/123984445
首次进入宝塔面板。
1.在首页安装推荐套件![[图片]](/uploadfile/202501/02ac457c4fc88c4.png)
项目路径选择刚刚的文件夹,
名称随意,
运行文件选择streamlit的运行文件,
项目端口写刚刚在服务器放行的端口
python版本选刚刚安装好的
框架选python
运行方式选python
依赖包选上![[图片]](/uploadfile/202501/135697823b10a31.png)
点击确定![[图片]](/uploadfile/202501/084a1866b2308be.png)
这时候显示未启动,不要着急,点击设置会弹出黑色控制台信息,可以看到运行日志在滚动。等待一会儿,控制台会自动关闭,项目状态就会变为运行中。
4. 确认端口放行:
点击侧边栏的“安全”,确认项目的端口被放行,如果没有则手动添加端口规则。![[图片]](/uploadfile/202501/867fdbfb15701a9.png)
![[图片]](/uploadfile/202501/64349fe983e0c58.png)
点击"域名管理",输入域名,点击"添加"。![[图片]](/uploadfile/202501/0b7b689c9542e8.png)
![[图片]](/uploadfile/202501/f25ff4b19bf93ba.png)
点击外网映射![[图片]](/uploadfile/202501/88c5374ed61b.png)
点击“配置文件”,找到下面这一行![[图片]](/uploadfile/202501/7275dd79881e9ad.png)
将Host 127.0.0.1:$server_port 改为Host $host(这一步是为了直接通过域名访问项目,否则就需要域名+端口号才能访问)![[图片]](/uploadfile/202501/2f4cb93b73a7a6b.png)
如果此时网站状态变为“未启动”,可以手动打开![[图片]](/uploadfile/202501/a9c97284a9a33ea.png)
![[图片]](/uploadfile/202501/5b15bb282ca9.png)
输入streamlit run 你的项目文件.py, 控制台输出信息正常。(此时streamlit默认使用8501端口)![[图片]](/uploadfile/202501/5de2ec24654eaba.png)
点击外部连接,看看能不能正常访问。
关闭终端,点击“设置”,点击“项目日志”,看看日志中有没有error错误,如果没有就没问题。
关闭设置,再点击“终端”,将任务挂起,输入以下内容nohup streamlit run test.py --server.port=8800
(端口号应设置为你创建项目时用的端口号,比如我这里用8800)控制台会返回:![[图片]](/uploadfile/202501/e2301cad983a7dc.png)
这个作用是为了关闭终端的时候不会关闭streamlit项目进程,运行日志存储在项目文件夹下的nohub.out文件里
双击看看nohup.out的内容是否正常。如果正常,则直接访问域名,看看项目运行结果。
实验成功。