DjangoProjectLinux远程部署日志Django项目部署。项目名称为shop-search,配置端口号为9000,以下为配置过程记录。远程拷贝工程文件scp-r~/Source/Project/Python/shop-searchroot@122.51.xx.xx:/source/python/deployment/远程账号登录sshakashi@122.51.xx.xx注意:最后部署项目时最好不要使用root用户部署。root权限过高,直接部署项目存在安全隐患。注意:IP地址部分已隐藏:xx.xx,引用时填写对应地址,以下对应隐藏内容将不会提示。远程虚拟环境启动启动对应项目下的虚拟环境:pipenvshellpipenvinstall同步,迁移数据表之前已经远程创建了项目数据库,这里不再介绍。您可以使用mysqldump快速导入和导出数据。基本数据库操作命令:#登录mysql-uroot-pxxx#显示数据库列表showdatabases;#选择并打开库usexxx;#显示表显示表;#builddatabase创建数据库库名;#建表:使用库名;createtable表名(字段设置列表);#删库删表:dropdatabaselibraryname;删除表表名;一些参考资料:mysqldumpmongodbmigratemysqlDjangoconnecttomysql使用Django命令来同步和迁移数据库。如果报错django.core.exceptions.ImproperlyConfigured:mysqlclient1.3.13ornewerisrequired;你有0.9.3。迁移过程中,是因为2.x之后的Django版本兼容问题。原因请参考文档。目前比较好的方案是做版本欺骗,简单高效。在apps下相应角色目录下的__init__.py中添加:importpymysqlpymysql.version_info=(1,3,13,"final",0)pymysql.install_as_MySQLdb()同时安装相应的依赖:pipenvinstallpymysqlto同步迁移数据表:pythonmanage.pymakemigrationspythonmanage.pymigrateuwsgi项目启动使用uwsgi启动项目:uwsgi--http-socket:9000--pluginpython--moduleshop-search.wsgi如果没有报错,则启动状态结束。配置后台启动文件。ini文件配置在项目根目录新建一个配置文件shop-search-uwsgi.ini进行配置:touchshop-search-uwsgi.inisudovimshop-search-uwsgi.ini配置如下:#配置域[uwsgi]#工作目录chdir=/source/python/deployment/shop-search#modulemodule=shop-search.wsgi#请求端口http-socket=:9000#mastermaster=True#processprocesses=4#threadthreads=1#是否退出是清理相关内容vacuum=true配置日志和pid新建日志文件和pid存放位置:mkdirlog&&mkdirpid在shop-search-uwsgi.ini中添加相应配置,用于后台启停。#后端运行uwsgidaemonize=%(chdir)/log/uwsgi-9000.loglog-maxsize=1024*1024*1024pidfile=%(chdir)/pid/uwsgi-9000.pidstartsudouwsgi--inishop-search.inistart之后可以在后台查看正在运行的进程:ps-aux|grepshop-search注意:本项目依赖虚拟环境,需要在虚拟环境中启动才能成功启动。注意检查是否启用了虚拟环境。如果使用远程主机的本地环境,可以忽略。启动完成后退出虚拟环境:exit配置Nginx启动nginxsudonginx修改对应nginx安装目录下的配置文件nginx.conf以下是我的路径参考:cd/etc/nginxsudovimnginx.conf在http下添加配置:注意:在Moremorethan60lines中,可以在vim下输入:setnu来显示行数。#Shop-Search站点配置upstreamshop-search{server122.51.xx.xx:9000;}server{listen80;server_namesearch.akashi.xx;字符集utf-8;access_log/var/log/nginx/nginx.log;location/{proxy_passhttp://shop-search;}location/static{别名/source/python/deployment/shop-search/static;}}配置完成,重启nginx:sudonginx-sreloadmorenginx配置,比如加密部署,高可用服务部署等,可以参考我的另一篇文章:Python应用uWSGI+Nginx部署。至此,项目远程部署完成。
