将本地django项目部署到服务器上

14 篇文章 0 订阅
3 篇文章 0 订阅

一.将本地项目上传至服务器或者发布到Github

二.登录服务器

1.先升级一下库的版本

sudo apt-get update
sudo apt-get upgrade

2.安装virtualenv

pip3 install virtualenv

3.进入到部署项目文件夹,从 GitHub 中拉取项目代码

git clone https://github.com/shibangCLL/my_blog.git

4.在服务器生成虚拟环境

virtualenv --python=python3.7 env

5.进入虚拟环境

source env/bin/activate

6.安装项目依赖

进入requirements.txt 目录

pip3 install -r requirements.txt

这里报错

Using cached mysqlclient-2.0.1.tar.gz (87 kB)
    ERROR: Command errored out with exit status 1:
     command: /home/site/like2learn.online/env/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ui4j2m4z/mysqlclient/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ui4j2m4z/mysqlclient/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-k1ul2tp7
         cwd: /tmp/pip-install-ui4j2m4z/mysqlclient/
    Complete output (12 lines):
    /bin/sh: 1: mysql_config: not found
    /bin/sh: 1: mariadb_config: not found
    /bin/sh: 1: mysql_config: not found
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-ui4j2m4z/mysqlclient/setup.py", line 15, in <module>
        metadata, options = get_config()
      File "/tmp/pip-install-ui4j2m4z/mysqlclient/setup_posix.py", line 65, in get_config
        libs = mysql_config("libs")
      File "/tmp/pip-install-ui4j2m4z/mysqlclient/setup_posix.py", line 31, in mysql_config
        raise OSError("{} not found".format(_mysql_config_path))
    OSError: mysql_config not found
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

执行这个代码

sudo apt-get install python3.7-dev libmysqlclient-dev

7. 收集静态文件

python3 manage.py collectstatic

8.生成数据库

python3 manage.py makemigrations
python3 manage.py migrate

三.配置nginx

1.启动nginx

sudo service nginx start

2.重新写 Nginx 的配置文件

cd /etc/nginx/sites-available
touch like2learn.online

编写 like2learn.online

server {
  charset utf-8;
  listen 80;
  server_name like2learn.online;  # 改成你的 IP

  location /static {
    alias /home/site/like2learn.online/my_blog/collected_static;
  }

  location /media {
    alias /home/site/like2learn.online/my_blog/media;
  }

  location / {
    include proxy_params;
    proxy_pass http://unix://home/site/like2learn.online/my_blog/like2learn.online.sock;
  }
}

这个配置文件链接到在用配置上去

sudo ln -s /etc/nginx/sites-available/like2learn.online /etc/nginx/sites-enabled

四.Gunicorn及测试

1.安装gunicorn

pip3 install gunicorn

2.重启nginx

sudo service nginx reload

3.启动Gunicorn

gunicorn --bind unix:/tmp/like2learn.online.socket blog.wsgi:application

还可以这样

gunicorn blog.wsgi:application -w 4 -b 0.0.0.0:8001

五.进程托管

1.systemd

进入文件夹新建文件

cd /etc/systemd/system
touch like2learn.online.service

编辑like2learn.online.service

[Unit]
Description=like2learn.online service
After=network.target

[Service]
User=root
Group=root
WorkingDirectory=/home/site/like2learn.online/my_blog
ExecStart=/home/site/like2learn.online/env/bin/gunicorn --access-logfile - --workers 2 --bind unix:/home/site/like2learn.online/my_blog/like2learn.online.sock blog.wsgi:application
[Install]
WantedBy=multi-user.target

2.执行

systemctl enable like2learn.online
$ systemctl status like2learn.online    # 查看进程状态
$ systemctl stop like2learn.online    # 终止my_blog进程
$ systemctl start like2learn.online    # 启动my_blog进程
$ systemctl restart like2learn.online    # 重新启动my_blog进程

六.后期维护

之后的项目维护中,如果更改了 gunicorn 的配置文件,那么需要依次执行下面两条语句去重启服务,如果只是修改了 Django 项目的内容,只需要单独执行第二条重启命令即可:

~$ sudo systemctl daemon-reload
~$ sudo systemctl restart like2learn.online

如果修改了 Nginx 的配置文件,那么需要依次执行下面两条语句去重启服务:

~$ sudo nginx -t
~$ sudo systemctl restart nginx

参考链接

在 Linux 服务器上使用 Nginx + Gunicorn 部署 Django 项目的主要流程

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 将django项目部署到本地服务器需要准备一台本地服务器,然后安装Python和Django,接着创建一个数据库,并且将项目文件复制到服务器上,最后运行Django的manage.py文件以启动服务器。 ### 回答2: 将Django项目部署到本地服务器需要以下步骤: 1. 确保本地服务器已安装好必要的软件和工具,例如Python、Django和数据库管理系统(MySQL、PostgreSQL等)。 2. 在本地服务器上创建一个文件夹作为项目的根目录,并进入该目录。 3. 打开命令行,使用以下命令创建一个虚拟环境: ``` python -m venv venv ``` 4. 激活虚拟环境: ``` source venv/bin/activate (Linux/Mac) venv\Scripts\activate (Windows) ``` 5. 安装Django: ``` pip install django ``` 6. 创建一个新的Django项目: ``` django-admin startproject myproject ``` 7. 进入myproject文件夹,并使用以下命令创建数据库(假设使用SQLite数据库): ``` python manage.py migrate ``` 8. 运行开发服务器: ``` python manage.py runserver ``` 9. 在浏览器中访问`http://localhost:8000`,确认服务器是否成功运行。 10. 如果有静态文件(如CSS、JavaScript和图像文件),需要在项目中创建一个名为`static`的文件夹,并将文件放入该文件夹。 11. 更新Django项目的配置文件`settings.py`,指定静态文件的路径: ``` STATIC_URL = '/static/' STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] ``` 12. 如果需要使用数据库,需要在`settings.py`中配置数据库连接。 通过完成以上步骤,你就可以成功将Django项目部署到本地服务器,并在浏览器中进行访问和测试。 ### 回答3: 将Django项目部署到本地服务器需要以下步骤: 1. 确保本地服务器已经安装好Python和Django。如果没有安装,需要先安装这些软件。 2. 在本地服务器上创建一个目录,用于存放Django项目的文件。 3. 打开命令行工具,切换到上一步创建的目录下。 4. 使用Django提供的命令行工具创建一个新的Django项目。可以使用以下命令:`django-admin startproject projectname`,将"projectname"替换为你想要的项目名称。 5. 进入项目的目录,使用以下命令创建一个Django应用:`python manage.py startapp appname`,将"appname"替换为你想要的应用名称。 6. 在settings.py文件中配置数据库连接和其他需要的设置。 7. 运行以下命令创建数据库表:`python manage.py makemigrations`,然后运行`python manage.py migrate`。 8. 创建一个超级用户以便能够登录到Django管理后台:`python manage.py createsuperuser`,根据提示输入用户名和密码。 9. 启动本地服务器:`python manage.py runserver`。这将在本地启动一个开发服务器,可以通过浏览器访问你的Django项目。 10. 打开浏览器,输入指定的本地服务器地址(例如:http://localhost:8000)来访问你的Django项目。 通过以上步骤,你就可以成功将Django项目部署到本地服务器,并通过浏览器进行访问和管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cll_869241891

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值