Linux学习,部署django项目到服务器,及安装python,uwsgi等
- 开启网络
- vi /etc/sysconfig/network-script/ifcfg-eth0
- onboot=yes 退出保存
- service network restart
- ping www.baidu.com
更新系统软件包
yum update -y
在进行安装前,先大概了解一下在Linux下如何安装应用软件?
作为一个刚开始学习Linux的小白,对于一些基础性问题却总是理不清,比如,我的软件安装在什么地方,安装以后如何运行,怎么查找我安装的具体位置等.
这里,主要安装以tar打包的应用为主,大致分为这几步,从网上下载需要安装的软件压缩包,解压,安装,清除安装包.
一些命令,参数解释
1 ./configure 用来生成Makefile, --prefix=/usr/*** 指定该软件将安装在哪里
2. make 执行编译
3. make install 执行安装
4. make clean 清除产生的临时文件
5. ln 创建软连接,相当创建快捷命令,可以直接调用
接下来安装一些基础库,软件管理包和可能使用的依赖关系,一般编译软件的时候需要,个人习惯装完系统就安装一下
yum -y install gcc gcc-c++ openssl-devel zlib-devel pcre pcre-devel
yum -y groupinstall
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel (这是从网上直接copy的,有些不是必须的,可根据自己的需求选择下载)
安装python3.5.3
yum install wget
wget https://www.python.org/ftp/python/3.5.3/Python-3.5.3.tgz
tar -zxvf Python-3.5.3.tgz
cd Python-3.5.3
./configure --prefix=/usr/local/python3 --enable-shared
make && make install
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
python3 -v
python3.5安装报错
python3.5: error while loading shared libraries: libpython3.5m.so.1.0: cannot open shared object file: No such file or directory 原因是因为python运行时没有加载到libpython3.5m.so.1.0 这个库文件 将其复制到响应目录OK 解决方法: [root@www Python-3.5.0]# cd /root/test/Python-3.5.0 进入解压后的编译目录 [root@www Python-3.5.0]# cp libpython3.5m.so.1.0 /usr/local/lib64/ [root@www Python-3.5.0]# cp libpython3.5m.so.1.0 /usr/lib/ [root@www Python-3.5.0]# cp libpython3.5m.so.1.0 /usr/lib64/
安装setuptools
wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
tar -zxvf setuptools-19.6.tar.gz
cd setuptools-19.6
python3 setup.py build
python3 setup.py install (如有报错: RuntimeError: Compression requires the (missing) zlib module,则需要安装yum install zlib-devel,安装后要重新编译 python3.5: make && make install)
安装pip
wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb
tar -zxvf pip-8.0.2.tar.gz
cd pip-8.0.2
python3 setup.py build
python3 setup.py install
使用pip安装包测试:
如报错,则缺少yum install openssl-devel,安装完成后一样需要重新编译python3.5(make&&make install)
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
安装django
pip3 install django==2.1.1
安装uwsgi:
export LDFLAGS="-Xlinker --no-as-needed"
$ pip3 install uwsgi
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3
安装:pip install uwsgi
启动:uwsgi -x 'uwsgi.xml'
报错:uwsgi: invalid option -- 'x' 原因:centos下,在没有安装libxml2时,pip安装的uwsgi无法支持xml格式的配置文件
解决:
yum install libxml*
pip uninstall uwsgi
pip install uwsgi 注意删除 ~/.cache/pip pip安装缓存文件
关闭防火墙 或者 放开80端口
service iptables stop
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
测试uwsgi是否可用
#python中
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]
[root@lxh ~]# uwsgi --http :9001 --wsgi-file app.py
将你的django项目放到你想放的路径下,例如/home/www/,假设我们的Django项目名为"myproject",里面有一个应用叫"myapp" 在你的django项目下新建 myproject.xml,即和manage.py同级。
(上传你的项目可以通过git,ftp之类上传,本人只是学习测试,直接下载Xshell 关联,然后通过rz上传项目,具体自行百度)
内容如下:
<uwsgi>
<socket>127.0.0.1:8997</socket><!-- 内部端口,自定义 -->
<chdir>/home/www/myproject</chdir><!-- 项目路径 -->
<module>myproject.wsgi</module>
<processes>4</processes> <!-- 进程数 -->
<daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
</uwsgi>
安装nginx和配置nginx.conf文件
wget http://nginx.org/download/nginx-1.13.7.tar.gz tar -zxvf nginx-1.13.7.tar.gz cd nginx-1.13.7 ./configure make && make install nginx一般默认安装好的路径为/usr/local/nginx
在/usr/local/nginx/conf/中打开nginx.conf,在http{}中加入以下内容 server {
listen 8996; #暴露给外部访问的端口
server_name localhost;
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8997; #外部访问8996就转发到内部8997
}
location /static/ {
alias /home/www/myproject/myapp/static/; #项目静态路径设置
}
} wq保存后进入/usr/local/nginx/sbin/目录 执行./nginx -t命令先检查配置文件是否有错,没有错就执行以下命令: ./nginx 终端没有任何提示就证明nginx启动成功,
然后打开浏览器输入链接查看nginx是否启动成功:
http://192.168.1.111 (请将该ip替换成你的服务器ip)
注意django项目配置了venv,需要配置虚拟环境
# 安装virtualenv
pip3 install virtualenv virtualenvwrapper ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv virtualenv venv
访问项目页面
进入你的django项目路径,执行以下命令:
uwsgi3 -x myproject.xml
以上步骤都没有出错的话,打开你的浏览器,输入以下链接,记得关闭系统防火墙或者开放8996端口
http://192.168.1.111:8996 (请将该ip替换成你的服务器ip)
网站访问成功!
显示 Internal Server Error
需要把这个django项目中用到的模块在虚拟机上重新下载部署。
并且如果使用的是mysql即不是自带的数据库,需要在mysql上远程关联本地数据库
Linux学习,部署django项目到服务器,及安装python,uwsgi等的更多相关文章
- Linux 下部署Django项目
Linux 下部署Django项目 说明:本文所使用的环境为CentOS 6+Python2.7+Django1.11 安装Django.Nginx和uWSGI 1.确定已经安装了2.7版本的Py ...
- linux中部署django项目
通过Nginx部署Django(基于ubuntu) Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器 ...
- Linux下部署Django项目
目录 安装python3.X环境 安装部署开启django 由于Linux系统默认自带的是2.X环境,所以我们需要去安装3.X环境的python. 安装python3.X环境 1.使用下面的命令下载P ...
- 在裸机centos7系统中部署django项目的过程
概要 本文用一台安装了centos7.5系统的裸奔Linux机器(当然是虚拟机)详细讲解从无到有部署django项目的过程. 安装必要的工具 配置yum源 至于什么是yum源大家请自行百度,本人用的是 ...
- mac osx 上面部署Django项目 apache+mysql+mod_wsgi
1.安装Xcode command line tools 首先,编译mysql和Homebrew需要用到Xcode command line tools,所以首先安装command line tool ...
- CentOS 6.8 部署django项目一
CentOS 6.8 部署django项目二 1.安装python3.5(默认是2.6) 参考:http://blog.csdn.net/shaobingj126/article/details/50 ...
- 6.linux下部署 web 项目
安装java 1.下载 linux 环境的jdk 2.上传该压缩包到 linux 系统中并且解压 tar -zxvf 压缩包名 3.配置环境变量并且刷新配置 export JAVA_HOME=/ali ...
- 在centos8使用Docker部署Django项目
引言 在本文中将介绍在Docker中通过django + uwsgi + nginx部署方式部署Django项目, 由于记录的是学习过程,使用的都是目前较高的版本. python 版本为3.8.3 d ...
- 腾讯云服务器部署 django项目整个流程
CentOS7下部署Django项目详细操作步骤 前记:购买腾讯云服务器,配置自选,当然新用户免费体验半个月,我选择的系统是centos7系统版本, 接下来我们来看整个配置项目流程. 部署是基于:ce ...
随机推荐
- 51nod 1101 换零钱 完全背包的变型 动态规划
题目: 思路: ;i < ; i++){ for(int j = a[i];j <= n; j++){ dp[j] = (dp[j] + dp[j-a[i]])%mod; } } a[i] ...
- JavaScript在不同环境下的全局对象
Node.js 环境下,全局的对象是 global. 浏览器下 window === self 而不是 global,今天才发现的,我惊呆了!
- Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?
解决方法: 1.进入启动文件目录 2.将用户加入到docker 组 sudo gpasswd -a ${USER} docker 3.使用root用户 sudo su 4. 切换当前用户 su ${ ...
- vue项目打包后想发布在apache www/vue 目录下
使用的是vue-element-admin做示例,可以参考Vue项目根据不同运行环境打包项目,其他项目应该大同小异. 使用vue-router的browserHistory模式,配置mode: 'hi ...
- 紫书 习题 11-1 UVa 821 (Floyd)
水题, Floyd一遍就完了. #include<cstdio> #include<algorithm> #define REP(i, a, b) for(int i = (a ...
- MYSQL锁表问题的解决方法
本文实例讲述了MYSQL锁表问题的解决方法.分享给大家供大家参考,具体如下: 很多时候!一不小心就锁表!这里讲解决锁表终极方法! 案例一 mysql>show processlist; 参看sq ...
- C++根据扩展名获取文件图标、类型
简述 在Windows系统中,根据扩展名来区分文件类型,比如:.txt(文本文件)..exe(可执行程序).*.zip(压缩文件),下面,我们来根据扩展名来获取对应的文件图标.类型. 简述 源码 源码 ...
- [Mobx] Using mobx to isolate a React component state
React is great for diffing between Virtual-DOM and rendering it to the dom. It also offers a naïve s ...
- jquery-easyui的datagrid在checkbox多选时,行选中不正确应,去除高亮的解决方法
jquery-easyui的datagrid在checkbox多选时,行选中不正确应,去除高亮的解决方法 工作中用到一个具有多选功能的easyui-datagrid在处理cell的点击事件时,不同 ...
- python Flask 学前班
0.Flask简单介绍 Flask是一个用Python编写的轻量级的Web应用框架.本文第一部分将简单解说Flask的安装,接着展示一个Flask的样例,第一个样例非常easy但也存在缺陷-- ...