开发者社区> 徐洲更> 正文

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

简介: 感谢阿里云9.9服务器学生计划,让我有机会实现自己小时候的梦想。为了能够写出这篇教程,我就默默把服务器(Ubuntu14.04 64位)重置了,从头开始。
+关注继续查看

感谢阿里云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访问网站了,我们来发表第一篇文章吧。
首先是根据刚才创建的用户登录。


img_8ab69a270317a74ed75e9b44a1899d85.png
登录界面

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


img_856942a1c45fd0224e8ed3802b17eaf2.png

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

img_510758dbec8a08c1ef750ec9887697cb.png
发表页面

img_754d63d2fa0d3c959df02c1f306b995e.png
成功页面

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


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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
个人如何选择阿里云服务器
如今上云服务器已经成为企业和个人部署站点的首选,成本非常低,可以升降配。阿里的云市场有各种业务的解决方案。阿里云最近推出了云服务器活动,ECS云服务器2折起,优惠配置多选1 阿里云服务器详情入口 https://promotion.
1130 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
25147 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
18806 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
20534 0
iOS开发中 关于阿里云服务器的使用与安全策略 韩俊强的博客
使用背景:         云服务已经很多年了,早期没能加入使用云大军中的一员,后来后悔莫及。2015年记得当时没办法租用的虚拟主机三天两天挂了,导致我认认真真的考虑了一次,觉得还是要使用云服务器! 从免费的主机屋学习版到各种虚拟机的实验,再到之前是用300元左右买的别人的虚拟主机,空间有几G,感觉还行,正好又值他们搞活动,买两年送一年!预存还有返还!心动了,就没有任何考虑就预存了一千块! 开始的几个月感觉还行,速度什么的还过得去,就没去管网站的事了。
1677 0
云服务器 ECS 建站教程:部署Ghost博客(CentOS 7)
Ghost是一个免费的开源博客平台,使用JavaScript编写,基于Node.js,旨在简化个人博客和在线出版物的在线发布过程。
1628 0
+关注
徐洲更
生信媛公众号编辑、生信必修课之软件安装课程作者
284
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载