在阿里云服务器windows server2012r iis上部署Django项目

环境:window server 2012R

python 3.7

mysql 5.6.49

Django 3.0.2

 

第一步 安装IIS和CGI

概念:

IIS是Internet Information Services的缩写,意为互联网信息服务,是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。

IIS是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。

CGI(Common Gateway Interface)公共网关接口,是外部扩展应用程序与 Web 服务器交互的一个标准接口。服务器端与客户端进行交互的常见方式多,CGI 技术就是其中之一。

实操步骤:

安装IIS

打开服务器管理器,选择添加角色和功能,选择要添加的服务器角色(WEB服务器IIS),然后安装

 

 

 

 

安装CGI

再次选择添加角色和功能,找到之前安装的WEB服务器IIS,点击它。

 

 

 

在展开的选项里找到WEB服务器,点击它,找到应用程序开发点击在展开的列表里找到CGI,勾选,然后下一步,安装它。

安装好CGI之后,我们在浏览器里输入http://127.0.0.1  访问IIS,如果出现如下页面,说明IIS安装成功

 安装wfastcgi

在Windows下,我们没法使用uwsgi,但我们可以使用wfastcgi替代它,打开CMD窗口,输入命令安装wfastcgi:

 pip install wfastcgi

启动:wfastcgi-enable  把里面生成的路径记录下来 上面的路径,是由Python解释器的路径和“|”以及“wfastcgi.py”文件路径组成。

 

如果你执行wfastcgi-enable时出现错误:

ERROR ( message:新 application 对象缺少必需的属性。在组合的密钥属性“fullPath, arguments”分别设置为“c:\python37\python.exe, c:\python37\lib\site-packages\wfastcgi.py”时,无法添加类型为“application”的重复集合项。 )
An error occurred running the command:

 

说明你安装的有问题,但最可能的原因是,wfastcgi已经启动过了,所以再次启动就报错。

若报错,则可以执行wfastcgi-disable来停止wfastcgi服务。然后再开启就可以了

部署环境

pip freeze>requirements.txt 命令把项目环境的软件包信息和依赖软件导出到文件里。

然后打开CMD切换到项目文件夹路径,输入下面命令,安装项目所需要依赖:

 pip install  -r requirements.txt

 
项目根目录里新建一个web.config配置文件
放入一下内容
<?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <handlers>
                <add name="Python FastCGI"
                     path="*"
                     verb="*"
                     modules="FastCgiModule"
                     scriptProcessor="<Path to Python>\python.exe|<Path to Python>\lib\site-packages\wfastcgi.py"
                     resourceType="Unspecified"
                     requireAccess="Script"/>
            </handlers>
        </system.webServer>
        <appSettings>
            <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
            <add key="PYTHONPATH" value="<Path to Django App>" />
            <add key="DJANGO_SETTINGS_MODULE" value="<Django App>.settings" />
        </appSettings>
    </configuration>

 

打开计算机管理

右键创建应用程序池存放我们自己的应用程序

网站右键添加网站

双击网站后 找配置编辑器查看配置是否正确

给静态资源添加虚拟目录

网站能访问了,但我们的前端样式显示有问题。那是因为我们没有在IIS里指定我们的静态资源目录,我们给它添加上虚拟目录就能解决。

 

 

 添加虚拟目录时,别名放与你settings里设置的一致,比如'static',物理路径就是静态资源的实际目录。

在static里新建一个web.config文件,然后写入下面的内容:

<?xml version="1.0" encoding="UTF-8"?>

    <configuration>
      <system.webServer>
      <!-- this configuration overrides the FastCGI handler to let IIS serve the static files -->
      <handlers>
        <clear/>
   <add name="StaticFile" path="*" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="Read" />
     </handlers>
   </system.webServer>
</configuration>
 
重启IIS,访问网站,前端就能正常显示。

IIS启动 net start w3svc

IIS停止 net stop w3svc

 

 参考:https://www.cnblogs.com/djangocn/p/10227006.html

posted @ 2020-03-12 17:46  niusijie  阅读(956)  评论(0)    收藏  举报