初次搭建个人网站和服务器的记录1:安装和配置Django

作者: Compasslg
日期: 2021-07-24

一、前言

之前主要精力都花在写游戏上,只是很久以前在AWS的EC2上搭建过简单的服务器(PHP+Apache)和Sql数据库,现在基本上已经忘光了。最近突然想弄一个简单的个人网站,所以打算顺便记录一下搭建过程和中途遇到的一些问题。如果有人碰到同样的问题可以参考一下,我的配置方式如果有问题有大佬看到也欢迎指正。

二、服务器选择

起初原因是被阿里云的新用户折扣吸引了,包了个入门级的ECS,结果近期朋友买了Orange Pie又顺便帮我在住的地方搭了一个,也挺适合当服务器用的,不过出于稳定考虑我最后选择相信大公司,毕竟说不定什么时候家里停电或者啥时候就要搬家了,而且自己在线下搭的服务器维护起来也比较麻烦。

三、框架选择

个人对网站搭建的了解非常有限,基本上都是学校里那一套(而且由于教授比较老,用的都是很过时的技术),所以做之前肯定是需要研究一番的。由于之前只用过PHP,虽然我对这个语言的感官不怎么样,但查了下目前依旧还算比较流行,搭配 Django 应该算是不错的选择了。

四、配置环境

系统方面我选择的是Centos7,这应该算是比较公认的最适合当服务器的Linux系统了。
一开始我选择自己安装了最新的Python版本,结果编译时遇到了各种依赖的版本问题以及缺失问题,在安装Django后运行时又碰到了sqlite3版本不对的问题,

	django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).

即使更新并重新编译Python也没有解决,最后还是通过将系统盘杀掉重来,使用自带的Python3.6才解决的,具体失败的流程就不细说了,事实上只要有耐心解决其他所有的依赖问题,是可以通过下面第3步的最后一条解决上面这个报错的。这里重点讲一下我最终选择的成功的步骤,相较起来比较省心一点。

1. 将默认 Python 版本从 Python2.7 改成 Python3.6
  • 删除并备份原本的 Python 入口

      mv /usr/bin/python /usr/bin/python.bak
    
  • 通过添加Link来配置 Python3.6 为默认的 Python 入口 (这里是直接配置的自带的Python3.6,如果是通过yum下载或者自行从官网下载编译的,则需要设置其他的路径,通常默认是在/usr/local/bin/python3)

      ln -s /usr/bin/python3.6 /usr/bin/python
    
  • 由于yum依赖于 Python2 才能正常运行,但在引用时是直接使用的/usr/bin/python,所以需要手动修改其配置

      vi /usr/bin/yum
      vi /usr/libexec/urlgrabber-ext-down
    

    将第一行的 !/usr/bin/python 改为 !/usr/bin/python2 即可。

2. 安装最新的 Sqlite3 版本
  • 起初可以通过以下指令看到系统自带的sqlite3版本为 sqlite3.7

      sqlite3 --version
    
  • 如果希望使用较新版本的 Django (2.2以后的版本),就需要将Centos7默认的sqlite3.7升级到sqlite3.8以上。所以我选择在官网下载了最新的稳定版本并本地编译

      wget https://www.sqlite.org/2021/sqlite-autoconf-3360000.tar.gz
      tar zxvf sqlite-autoconf-3360000.tar.gz
      cd sqlite-autoconf-3360000
      ./configure
      make
      sudo make install
    
  • 默认情况下会被安装到 /usr/local/ 路径下,这个时候重复上面修改 Python 入口的步骤就可以依样画葫芦的替换 sqlite3 的版本了。

      mv /usr/bin/sqlite3 /usr/bin/sqlite3.bak
      ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
    
  • 这个时候通过 sqlite3 --version 可以看到默认版本已经改为了最新的 3.36.0,但如果通过

      python -c "import sqlite3; print(sqlite3.sqlite_version)"
    

    查看则会发现python依然引用不到最新的sqlite3版本。这个时候需要通过

      export LD_LIBRARY_PATH=/usr/local/lib
    

    来增加引用的路径。此时再通过 python -c "import sqlite3; print(sqlite3.sqlite_version)" 就可以发现Python已经可以引用到最新的sqlite3版本了。

3. 安装 Django

完成了 Python 和 Sqlite3 的配置,就可以比较轻松的安装 Django 了。这个我直接跟着官网的步骤通过pip完成了。

pip3 install Django==3.2.5

然后

	django-admin startproject mysite
	cd mysite
	python manage.py runserver

就可以发现django是否运行正常了。

五、总结

虽然说有一些波折,但总算是初步将Django搭好了, 之后就是花时间学一下 Django 然后搭建 Apache了,这个下一篇再聊。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个基于Linux环境的Django环境配置、MySQL安装网站部署的步骤示例: 1. 更新系统软件包: ``` sudo apt update sudo apt upgrade ``` 2. 安装Python和pip: ``` sudo apt install python3 python3-pip ``` 3. 创建并激活虚拟环境(可选): ``` python3 -m venv myenv source myenv/bin/activate ``` 4. 安装Django: ``` pip install django ``` 5. 安装MySQL数据库服务器: ``` sudo apt install mysql-server ``` 6. 配置MySQL数据库: - 运行MySQL安全脚本来设置root密码等: ``` sudo mysql_secure_installation ``` - 创建一个新的数据库和用户: ``` sudo mysql CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword'; GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost'; FLUSH PRIVILEGES; EXIT; ``` 7. 在Django项目的`settings.py`文件中配置数据库连接: ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydb', 'USER': 'myuser', 'PASSWORD': 'mypassword', 'HOST': 'localhost', 'PORT': '', } } ``` 8. 运行数据库迁移: ``` python manage.py makemigrations python manage.py migrate ``` 9. 收集静态文件: ``` python manage.py collectstatic ``` 10. 创建超级用户(可选): ``` python manage.py createsuperuser ``` 11. 运行Django开发服务器: ``` python manage.py runserver ``` 12. 现在,你可以通过浏览器访问Django网站,并在MySQL数据库中进行数据存储和查询。 这是一个基于Linux环境的Django环境配置、MySQL安装网站部署的示例。根据你的实际需求和项目要求,可能需要进行一些额外的配置和调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值