Djangoウェブサイトの導入
- 原則
すべての原則について話し合う必要があります。図に示すように、それが全体の原理です。詳しくはビリビリアップの講義をご覧いただけます!!!
(https://www.bilibili.com/video/BV1rx411272x)の画像
- 概観
-
サーバーの購入
ここで使用されているエディターはAlibaba Cloudの学生サーバーです(結局、それは大きな工場であり、コミュニティーは完璧で、品質は問題ありません)、価格は美しく、使いやすいです(Alibaba Cloudのクラウドウィングプランは、より良心的です)。サーバーの購入プロセスを紹介します。最初にAlibaba Cloudにログインし、実名認証を実行してから、学生認証を実行します。
認定後、Cloud Wing Projectに参加できます。応募すると、この外観が表示されます。
次に、注文とチェックアウトを行うサーバータイプを選択します。(ご注文いただいた瞬間からインターネット上に掲載されます)
その後、アリさんからたくさんのメールが届きます。独自のサーバーを用意したら、コンソールをクリックして... クラウドサーバーECSに
入ります。インスタンスでは、パブリックIPアドレスとプライベートIPアドレスを確認できます。「ルールの構成」をクリックします。独自のセキュリティグループルールを設定する私によれば、大きな問題はないはずです。この時点で、サーバーの購入とセットアップは終了しています。
-
ドメイン名の購入
まず、ドメイン名とは何か、それとURLとIPアドレスの違いを明確にする必要があります。ドメイン名とは何かの下にリンクを配置します。明白了什么是域名之后,我们就开始购买域名。进入万网挑选自己的域名,点击购买,之后解析域名,绑定到自己服务器上。(这样说好像不太专业)由于小编已经解析号域名,没法给大家解释了,就放个链接给大家看一下域名解析。
域名解析好之后,我们需要申请一个免费的ssl证书(这个证书的作用后面再详细解释),ssl证书申请入口
购买之后,下载并保存相应服务器类型的证书
小编的系统的Nginx的,所以就下载了nginx的证书。
下面是最最最重要的域名备案,我们国家所有的网站域名都必须进行备案,这个时间需要20多天,所以购买完域名之后一定尽快备案。备案入口。
备案完成之后便完成了购买云服务器和域名的全过程。 -
远程连接
- 方法一
进入ECS控制台,点击实例->远程连接
- 方法一
之后会看到登录界面,用户名默认为root,密码为自己设置的密码。(如果没有设置密码,在更多->密码/密匙可自行设置)
点击确定就可以进入服务器系统。
- 方法二
利用远程连接工具xshell进行连接。首先打开fshell,点击文件->新建,出现下面这个页面。(主机一栏为你的公网ip地址)
点击确定之后会让你输入你自己设置的密码(也就是登录阿里云远程连接的密码)。之后便可连接。进入服务器之后我们需要对我们现有的环境进行更新。 - 更新python环境
首先更新一下我们ubuntu的安装工具:
sudo apt-get update
由于ubuntu自带python2.7和3.6(默认python环境是2.7),如果不满足我们生产的需要,我们可以自行更新。
查看python默认环境
python -V
安装python3.x环境
sudo apt install python3.8 //安装3.8版本的python
修改ubuntu默认环境
sudo rm /usr/bin/python //删除原有的软连接
sudo ln -s /usr/bin/python3.5 /usr/bin/python //建立新链接
此时再次查看python默认版本
python -V
- 安装Nginx
sudo apt install nginx
安装完成后,用你的电脑浏览器访问你服务器的公网ip地址,看到如下界面,说明安装成功。
这也说明nginx部分已经和浏览器之间可以正常工作啦!!!(内心是不是很激动,其实我们还差的远呢)
- 安装虚拟环境
我们为什么要使用虚拟环境,我们的服务器上不可能就我们一个project,用虚拟环境隔开,防止混乱嘛。
虚拟环境和Django的关系
安装虚拟环境
sudo apt-get pip install virtualenv
下面我们就建立虚拟环境,,ubuntu的默认安装路径是/usr,我们换一个路径
cd /var/www/
virtualenv your_env_name //建立虚拟环境
source your_env_name/bin/activate//激活虚拟环境
python -V//查看虚拟环境内的python环境是否和外部一样
到此我们已经搭建了虚拟环境并且激活了它。
pip freeze > requiremnets.txt
此时在你本地的项目目录下,就会多出一个requirements.txt文件。记事本打开就能看到我们所用的库。
然后将此文件上传到服务器项目目录下(即和manage.py在同一个目录)
执行命令即可安装所用项目用到的包
pip install -r requirements.txt
此时运行项目
python manage.py runserver 0.0.0.0:8000//端口为8000
在浏览器上输入你的公网ip+:8000(端口号),即可访问您的项目。(如果运行失败,请检查自己的8000端口是否放行或仔细检查自己项目是否有错)
- 安装uwsigi
概念:Web服务器面向外部世界。它可以直接从文件系统提供文件(HTML,图像,CSS等)。但是,它无法直接与Django应用程序对话;它需要一些东西来运行应用程序,从Web客户端(例如浏览器)获取请求并返回响应。Web服务器网关接口WSGI可以完成此任务。WSGI是Python标准。uWSGI是WSGI实现。在本教程中,我们将设置uWSGI,以便它创建Unix套接字,并通过uwsgi协议将响应提供给Web服务器。最后,我们完整的组件堆栈如下所示:
安装uwsgi
sudo apt-get install python-dev//这一步很重要
sudo pip3 install uwsgi
执行uwsgi命令
uwsgi --http :8000 --module xxx.wsgi//xxx为你含wsgi.py的目录名称
此时浏览器输入你的公网ip+:8000即可访问
- 配置nginx.conf
输入
cd /etc/nginx
vim nginx.conf #vim打开nginx配置文件
你会看到
(可能你的和我的不一样,按我这个改就可以了,server_name哪里改成自己的域名,还有的同学可能不会vim,请自行百度)
- 配置uwsgi.ini
cd /var/www/
vim uwsgi.ini
次のコードをにコピーします
- uwsgi_paramsを追加
cd /var/www/
vim uwsgi_params
次のコードをにコピーします
- 仮想環境外にuwsgiをインストールする
cd ..
deactivate #退出虚拟环境
pip install uwsgi
- 起動を設定
- コピーコマンド(スタートアップパラメータの設定)
vim /lib/systemd/system/rc.local.service
2.コードをコピーします(次のコードの場合はEscキーを押してから、wq enterを押します)。
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=no
GuessMainPID=no
#这一段原文件没有,需要自己添加
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
3.コマンドをコピーします(ソフト接続をセットアップして起動し、/ etc / ...に戻ってファイルを検索します)。
ln -s /lib/systemd/system/rc.local.service /etc/systemd/system/rc.local.service
- コピーコマンド(rc.localファイル自体はありませんが、それが必要な場合は存在すると神は言われました)
vim /etc/rc.local
- コピーコマンド(実行権限の追加)
sudo chmod +x /etc/rc.local
6.コードをコピーします(スクリプト、サービス、またはその他の操作を開始するには、このスクリプトにコマンドを書き込みます)
#!/bin/bash //这点很重要,一定不要漏掉
echo "hello" > /etc/test.log
/etc/init.d/webserver start
exit 0
7.再起動するだけです。
(記事参照:https://blog.csdn.net/idiot_qi/article/details/86527052)
(つづく...)