利用阿里云服务器建立简单的个人博客

感谢阿里云9.9服务器学生计划,让我有机会实现自己小时候的梦想。为了能够写出这篇教程,我就默默把服务器(Ubuntu14.04 64位)重置了,从头开始。你可以查看下网页效果

克隆git远程库

由于服务器刚刚重置,属于全新的,所以没有装git。

~# sudo apt-get update #获取最新软件包
~# sudo apt-get upgrade # 执行更新操作。
~# sudo apt-get install git # 安装git
~# git clone https://github.com/xuzhougeng/mysite #这时候就可以克隆用于进一步操作的远程库

创建虚拟环境并安装依赖库

创建虚拟环境是为了不和其他python版本冲突。

~# sudo apt-get install python-virtualenv #安装第三方工具virtualenv
~# virtualenv env_flask  #为flask创建虚拟环境(env)
~# source env/bin/activate #启动虚拟环境
(env_flask)mysite@yourserver:~#                         #启动虚拟环境后的shell 。
 后面没有明确说明,都表示在虚拟环境下进行操作。
~# pip install -r requirement #安装依赖库,过程中会出现很多编译问题,可以自己解决,可以先去看我的解决方法。
~# python manage.py runserver #没有问题,不过在服务器本地你也看不到东西。
~# python manage.py runserver -h 0.0.0.0 -p 80 #在本地浏览器打开x.x.x.x(服务器的公网ip地址)。

从错误中学习是最快的学习方法

  • SSLError: The read operation timed out:下载时间太久,重新下载
    *no previously-included directories found matching 'docs/build/output : 可以无视
  • 安装依赖库的时候老出现"error: command 'x86_64-linux-gnu-gcc' failed with exit status 1",
    • 这是由于依赖库需要gcc进行编译,但是编译过程中缺少某个头文件,例如我安装misaka的时候提示<b> c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory</b>,说明我少了ffi.h。
    • 然后我去ubuntu软件包库中搜索含ffi.h的软件包,找到了libffi-dev,于是返回root权限下执行sudo apt-get install libfii-dev 进行安装就行了
  • pip install -r requirement.txt:安装完之后pip list找不到刚才的安装包
    • 不知道什么原因,手动安装以下包:
      Flask==0.10.1
      Flask-Bootstrap==3.3.5.7
      Flask-Login==0.3.2
      Flask-Mail==0.9.1
      Flask-Markdown==0.3
      Flask-Migrate==1.8.0
      Flask-Misaka==0.4.1
      Flask-Moment==0.5.1
      Flask-PageDown==0.2.1
      Flask-Script==2.0.5
      Flask-SQLAlchemy==2.1
      Flask-WTF==0.11

最后结果是安装了所有需要的依赖库


安装数据库

即便安装了所有的依赖库,事实上也是打不开网页的,因为我们还没有安装后台需要的数据库。我们使用的postgre作为后台数据库支持。

sudo apt-get install postgresql-client #安装PostgreSQL客户端。
sudo apt-get install postgresql #安装PostgreSQL服务器。
##添加新用户和新数据库##
sudo adduser dbuser #新建一个Linux新用户
sudo su - postgres #切换到postgres用户
psql 使用psql命令登录PostgreSQL控制台
\password postgres #为postgres用户设置一个密码
CREATE USER flask WITH PASSWORD 'password'; #创建数据库用户dbuser
CREATE DATABASE flask_db OWNER flask; #创建用户数据库,并指定所有者为flask
GRANT ALL PRIVILEGES ON DATABASE flask_db to flask;将flask_db数据库的所有权限都赋予flask,
\q # 退出

重新回到mysite路径,激活虚拟环境,我们需要创建一个用户用于登录网站并发表文章。

(env)root@xxxxxxx:~/mysite# python manager.py shell
In [1]: db.create_all()
In [2]: user = User(email='admin@admin.com',username='admin',password='password')
In [3]: db.session.add(user)
In [4]: db.session.commit()

用Gunicorn替代原先的单线程开发服务器

其实从某种意义上说flask自带的服务器是够我们自娱自乐的,但是梦想还是要有的,我们需要更加专业的服务器---gunicron

(env):~/mysite$gunicorn manage:app --bind=0.0.0.0:80

sudo apt-get install screen
screen gunicorn manage:app --bind=0.0.0.0:80 #后台运行
这时候就可以通过你的公网Ip访问网站了,我们来发表第一篇文章吧。
首先是根据刚才创建的用户登录。


登录界面

登陆后会出现写文章一栏。


第一篇文章就写这篇文章吧。成功页面如下

发表页面

成功页面

这篇教程用来纪念半个月依赖与bug不断抗争,自己的梦想支持到这一步。这里没有涉及到如何写前端和后端,以后再写吧。


最近在首页看到一篇文章Django的部署:Nginx+Gunicorn+virtualenv+supervisor+PostgreSQL。感觉和这篇文章有很大类似,唯一不同的就是我用flask,他用django且多了一个Nginx。所以又增加了一些内容。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,204评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,091评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,548评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,657评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,689评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,554评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,302评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,216评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,661评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,851评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,977评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,697评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,306评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,898评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,019评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,138评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,927评论 2 355

推荐阅读更多精彩内容