美文网首页
AutoDL GPU实例部署Apache Django服务

AutoDL GPU实例部署Apache Django服务

作者: Hardy_ | 来源:发表于2023-04-15 12:45 被阅读0次

想要在AutoDL平台提供的GPU实例上部署一个Django的Apache服务,和之前阿里云的部署还有一些不一样,踩了一些坑,这里分享一下。

之前阿里云的部署流程可以参考:

这篇文章将在上面两篇文章的基础上,大概总结一下AutoDL平台部署时需要注意的地方。

python路径问题

如果按照上面文章的方案安装django和其他依赖,启动apache之后,会发现错误日志里报错:No module named django,好像是因为AudoDL的python和pip安装都是给root用户的,而apache没有root用户的权限。

解决办法只能使用python的virtual env,参考:https://docs.python.org/3/tutorial/venv.html

我们可以把我们的django项目放在/var/www目录下,避免一些不必要的权限问题。然后,在目录下创建一个virtual environment:python3 -m venv venv1,这样就创建了一个名为venv1的虚拟环境,而之后我们安装各种依赖都需要安装到这个虚拟环境当中。

首先,输入source venv1/bin/activate启动虚拟环境,之后,在命令行中使用pip3安装各种依赖,比如:

pip3 install django

依赖都安装好之后,需要在apache的配置文件中指定虚拟环境的路径,让apache的wsgi使用虚拟环境的python解释器。进入到conf文件(参考上面的文章),在最后指定:

WSGIPythonHome /var/www/venv1

端口配置

AutoDL平台的实例并没有开放http默认的80端口,而是要求如果要提供自定义服务的话,需要让服务去监听6006端口。因此,我们需要让apache去监听6006端口。

首先,修改/etc/apache2/ports.conf,将其中的端口从80修改为6006

其次,修改我们自己网站的conf文件(参考之前文章),将第一行的VirtualHost的端口从80改为6006:

<VirtualHost *:6006>

之后重启apache:

sudo service apache2 reload
sudo service apache2 restart

就可以通过AutoDL提供的地址访问了

依赖安装

在virtual env中安装依赖时,因为AutoDL配置的pip源问题,有一些依赖可能下载速度很慢,甚至可能找不到我们需要的版本。

对于下载速度很慢的依赖,我们可以先手动去下载.whl文件,然后上传到服务器上,然后在virtual env中,手动运行pip3 install XXX.whl来安装。

对于找不到依赖对应版本的情况,建议直接更换一个pip源,可以在安装依赖时,使用:

pip3 install XXX --extra-index-url=https://pypi.tuna.tsinghua.edu.cn/simple

这样下载速度就会很快了。

import路径问题

需要注意当django服务运行时,它的主路径是manage.py文件所在的路径,而我们网站代码中的所有import,都需要按照这个路径去import。

所以比如说,我们想要import stable-diffusion-webui中的modules模块,最好就是将modules文件夹放在manage.py同一目录下,避免import问题

相关文章

网友评论

      本文标题:AutoDL GPU实例部署Apache Django服务

      本文链接:https://www.haomeiwen.com/subject/klkxjdtx.html