1.升级python到2.7版本(通过源码包重新安装一个2.7版本的python):
wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
tar -zxf Python-2.7.9.tgz
./configure --prefix=/usr/local/python27/
make && make install
which python(查看可执行文件的位置)
ln -s python2.7 python(建立软链接)

2.让yum使用旧版2.6版本的python
vim /usr/bin/yum
把首行注释修改为 #!/usr/bin/python2.6

3.安装pip
wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate
python get-pip.py
提示错误:zipimport.ZipImportError: can't decompress data; zlib not available
此时需要:
a-安装依赖zlib、zlib-devel
b-重新编译python:
./configure
在这里把Modules/Setup文件中的454行左右的,
#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
去掉注释
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
make && make install
重新做软链接,让系统路径的python指向新编译的python2.7版本
python get-pip.py
又失败了,提示:pip is configured with locations that require TLS/SSL
需要安装2个依赖:yum -y install openssl openssl-devel
再编译安装一次。。。。。
python get-pip.py(终于成功!)
pip被安装在python的可执行文件的同一目录。
做软链接 ln -s /usr/local/python27/bin/pip /usr/bin/pip

4.安装虚拟环境virtualenv和flask
pip install virtualenv(安装)
virtualenv --no-site-packages venv(建立虚拟环境,不安装任何系统中的第三方包)

5.安装nginx
yum install nginx(提示没有可用的源)
解决方法:
安装EPEL源(yum install epel-release)
又报错:Cannot retrieve metalink for repository: epel. Please verify its path and try again
解决方法:
编辑/etc/yum.repos.d/epel.repo 取消baseurl的注释,把mirrorlist注释掉。
设置nginx开机启动:
chkconfig nginx on
开启80端口,并重启iptables:
vim /etc/sysconfig/iptables   然后一定在第一个-A的行的上面一行添加一行,不然会失败:-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
service iptables restart
启动nginx:
service nginx start

6.安装gunicorn
pip install gunicorn(安装)
gunicorn -w 4 -b 127.0.0.1:端口号 文件名:app(直接运行gunicorn)
vim /etc/nginx/conf.d/default.conf(配置nginx):
server {
    listen 80;

    location / {
        proxy_pass http://127.0.0.1:888; # 这里是指向 gunicorn host 的服务地址
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

}
重启nginx,ok!可以直接从80端口访问网站。

7.使用supervisor
最后一步,用进程管理工具supervisor把gunicorn作为服务来管理:
pip install supervisor
echo_supervisord_conf > supervisor.conf   # 生成 supervisor 默认配置文件
vim supervisor.conf                       # 修改 supervisor 配置文件,添加 gunicorn 进程管理
添加:
[program:入口文件名]
command=/root/aff/venv/bin/gunicorn -w4 -b0.0.0.0:888 入口文件名:app
directory=/root/aff

supervisord -c supervisor.conf(启动supervisor)
supervisorctl shutdown (关闭supervisor)
再启动时出现错误:Shut this program down first before starting supervisord.
解决办法:
unlink /tmp/supervisor.sock
再启动。

supervisor的基本使用命令

supervisord -c supervisor.conf                             通过配置文件启动supervisor
supervisorctl -c supervisor.conf status                    察看supervisor的状态
supervisorctl -c supervisor.conf reload                    重新载入 配置文件
supervisorctl -c supervisor.conf start [all]|[appname]     启动指定/所有 supervisor管理的程序进程
supervisorctl -c supervisor.conf stop [all]|[appname]      关闭指定/所有 supervisor管理的程序进程

8.安装mysql:
yum install -y mysql-server mysql mysql-devel (安装)
service mysqld start (启动)
chkconfig mysqld on (开机自启动)
mysqladmin -u root password 'new-password' (给root设置密码)

------------------------------------------
9.vim配置

vim配置(/etc/vimrc):
set nu(显示行号)
set expandtab(把tab转成空格)
set ts=4(一个tab等于4个空格)
set softtabstop=4(按退格时删除4个空格)
set autoindent(自动缩进)
解决vim没有颜色的方法:
原因是securecrt使用的终端是VT100,而vim的配置中只有终端是xterm才有颜色。
解决方法(修改配置文件):
vim ~/.bashrc
TERM=xterm
export TERM
然后用source命令重载一下配置文件。

10.重建数据库
直接使用flask的数据库模型重建:
python admin.py shell
from admin import db
db.create_all()

在linux上部署web环境的更多相关文章

  1. 在Linux上部署Web项目

    You believe it or not there is a feeling, lifetime all not lost to time. 在Linux上部署Web项目 这个是普通的web项目, ...

  2. Linux上部署web服务器并发布web项目-转

    Linux上部署web服务器并发布web项目   近在学习如何在linux上搭建web服务器来发布web项目,由于本人是linux新手,所以中间入了不少坑,搞了好久才搞出点成果.以下是具体的详细步骤以 ...

  3. Linux上部署web服务器并发布web项目

    近在学习如何在linux上搭建web服务器来发布web项目,由于本人是linux新手,所以中间入了不少坑,搞了好久才搞出点成果.以下是具体的详细步骤以及我对此做的一些总结和个人的一些见解,希望对跟我一 ...

  4. Linux Ubuntu部署web环境及项目tomcat+jdk+mysql

    1,下载文件 在官网下载好 tomcat.jdk.mysql的linux压缩包 后缀名为.tar.gz 并通过xftp上传到服务器 或者直接通过linux命令 下在wget文件的下载地址 例如: wg ...

  5. 在Linux上部署Kettle环境

    首先我们有一个正常安装的,桌面版的Linux. Kettle的应用程序是Linux版本与Windows版本在同一个文件夹下共存的,所以可以直接把本机上的Kettle解压,通过FTP工具上传到Linux ...

  6. 6.linux下部署 web 项目

    安装java 1.下载 linux 环境的jdk 2.上传该压缩包到 linux 系统中并且解压 tar -zxvf 压缩包名 3.配置环境变量并且刷新配置 export JAVA_HOME=/ali ...

  7. 在linux CentOS6上安装web环境

    感谢浏览,欢迎交流=.= 都说linux作为服务器优于window,近期也是学习了下linux. win7下安装了linux虚拟机,购买linux阿里云主机,开启linux之旅. 进入正题,在linu ...

  8. 在linux上部署自己开发的web项目

    在linux上部署自己开发的web项目 前言:相信有很多做开发的小伙伴和我之前一样,只会在windows环境下,利用开发工具开发运行web项目,但是却不知道怎么把开发好的项目部署到linux服务器上去 ...

  9. Linux上部署SVN

    Linux上部署SVN author:headsen chen  2017-10-16  16:45:04 前提:通过yum来安装,必须是centos6.5的桌面版的.否则会出现某些的安装包不全而导致 ...

随机推荐

  1. Android使用ndk-stack获取so奔溃堆栈

    利用NDK做开发,因为各种原因的不小心,导致了闪退问题,没有stack的话,很难查到问题的所在.这时候ndk-stack出场了. 先看看如下DUMP信息: ********** Crash dump: ...

  2. Window Azure ServiceBus Messaging消息队列技术系列1-基本概念和架构

    前段时间研究了Window Azure ServiceBus Messaging消息队列技术,搞了很多技术研究和代码验证,最近准备总结一下,分享给大家. 首先,Windows Azure提供了两种类型 ...

  3. centos 7 系统服务auditd kdump tuned irqbalance

    tuned是红帽推出的一个动态调优方案,用户可以在不同的时间段内采用不同的调优方案.由于以服务进程形式存在,就可以很方便的和crontab结合!Tuned 是监控并收集各个系统组件用量数据的守护进程, ...

  4. JavaScript界面传值与前后台互调

    话说曾在校时,前端的第一门课程HTML静态网页设计,其老师,真是应了他的名字: 路遥知马力. 整个学期硬是全部在 Dreamwear 中进行拖拽控件来教学,未曾教授一句代码.成功忽悠了全体学生,课上一 ...

  5. Contains Duplicate III 下标范围<=k 值范围<=t

    set妙用 1.维护一个大小最大位k的set set中数据是有顺序的 2.每次新加一个数据,只需要比较该数据加入 有没有带来变化 3.找到 >= 新数据-t的数据对应的迭代器 pos 4.如果找 ...

  6. Java设计模式(一)——代理模式

    有高手云:了解设计模式才算是入门级的程序员. 所以为了入门我打算把我学习到的设计模式逐条总结下来.和别人的文章不同,我几乎只提供了测试源码与细节分类.原因是,我相信对于设计来说,你永远无法给出终极答案 ...

  7. 工作中总结的常用PHP代码

    [目录] ◆PHP常用的代码 ◆HTML常用代码 [值传递 和 引用传递] [单例模式] [魔术常量] [代码调试(自定义一个简单的debug函数)] [thinkphp多表查询] [获取客户端IP地 ...

  8. Python—操作redis

    Python操作redis 连接方式:点击 1.String 操作 redis中的String在在内存中按照一个name对应一个value来存储 set() #在Redis中设置值,默认不存在则创建, ...

  9. Active MQ 传输 ObjectMessage 异常

    <bean id="targetConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFa ...

  10. python 学习笔记十五 web框架

    python Web程序 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. Python的WEB框架分为两类: 自己写socket,自 ...