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

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 感谢阿里云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。所以又增加了一些内容。

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
固态存储 安全 程序员
搭建程序员个人博客网站的服务器配置怎么选?
搭建个人博客网站时,合理选择服务器配置至关重要。推荐1核CPU、2GiB内存、SSD硬盘及2M-10M带宽,适合大多数个人博客。操作系统方面,Linux更为经济高效。建议选择如阿里云等知名云服务商,同时考虑服务器的可扩展性和安全性,确保网站稳定运行与良好体验。
|
弹性计算 关系型数据库 MySQL
个人博客的云端之旅:体验ECS与云数据库RDS MySQL Serverless
借助阿里云的云服务器ECS和RDS MySQL Serverless,搭建属于自己的云端博客。
203 40
|
2月前
|
运维 安全 Linux
怎么使用云服务器搭建个人博客网站
使用云服务器搭建个人博客网站是一个涉及多个步骤的过程,包括购买云服务器、域名注册和备案、环境配置、安装博客系统、部署SSL证书以及网站上线和维护。通过选择合适的云服务提供商(如阿里云、腾讯云等),配置服务器,安装宝塔面板,选择合适的博客程序(如Typecho、WordPress等),并确保安全措施到位,您可以成功搭建并运行自己的个人博客网站。
|
7月前
|
域名解析 弹性计算 数据安全/隐私保护
阿里云ECS免费搭建WordPress个人博客网站
阿里云ECS免费搭建WordPress个人博客网站
725 2
阿里云ECS免费搭建WordPress个人博客网站
|
2月前
|
域名解析 网络协议 数据安全/隐私保护
阿里云轻量应用服务器搭建WordPress个人博客教程
阿里云轻量应用服务器搭建WordPress个人博客教程
|
2月前
|
域名解析 弹性计算 程序员
想要轻松地搭建一个即开即用的WordPress博客吗?借助宝塔面板镜像+阿里云ECS,迅速拥有自己的个人博客
拥有个人博客是每位程序员的梦想,但对服务器不熟悉的初学者而言,搭建博客颇具挑战。本文介绍利用阿里云市场的宝塔面板镜像与ECS云服务器,轻松搭建WordPress博客的方法,让您快速拥有专属博客空间。通过简单的操作步骤,即使是新手也能轻松上手,实现从零到有的博客搭建过程。
219 3
|
5月前
|
关系型数据库 Linux 数据库
如何在Linux云服务器上通过Docker Compose部署安装Halo,搭建个人博客网站?
本文指导用户如何在Linux服务器上使用Docker Compose部署Halo博客系统。首先确保拥有Linux服务器并安装Docker及Docker Compose。接着创建文件夹(例如`~/halo`),用于存放所有Halo相关数据。可以选择不同的Halo Docker镜像源,推荐使用具体版本而非`latest`标签以避免误操作。示例中提供了三种`docker-compose.yaml`配置方法:Halo+PostgreSQL、Halo+MySQL以及使用默认的H2数据库。每种配置都包括网络设置、健康检查和环境变量。
246 1
|
7月前
|
弹性计算 运维 负载均衡
阿里云轻量应用服务器产品简介、收费标准与活动价格、搭建个人博客教程参考
阿里云轻量应用服务器是深受个人和普通企业用户亲耐的一款轻量级云服务器产品,提供精品应用一键部署,支持一站式的域名、网站、安全、运维、应用管理等服务,极大优化搭建简单应用的体验,降低了入门级用户使用云计算产品的门槛。本文来介绍全方位介绍一下阿里云轻量应用服务器的产品知识,以及最新的收费标准与活动价格情况,另外再奉上使用轻量应用服务器搭建个人博客的建站教程,以供参考。
阿里云轻量应用服务器产品简介、收费标准与活动价格、搭建个人博客教程参考
|
弹性计算 关系型数据库 数据库
使用ECS和RDS搭建个人博客及搭建心得
在互联网时代,博客对于个体的价值非常重要。首先博客为个体提供了表达自己的平台。无论是个人的兴趣爱好、专业知识还是独特观点,博客可以让个体有机会将这些想法和经验分享给全世界。通过博客,我们可以借助文字、图片、视频等多种形式,以自由的方式表达自己的观点,丰富网络上的内容。同时博客可以帮助我们建立个人品牌和专业形象,通过持续地发布优质内容,提升个体的声誉和影响力,读者也可以通过评论、订阅等方式与博主进行互动,不仅可以增加博客的曝光度,还可以建立起粉丝群体,形成一个积极的社区。
372 4
使用ECS和RDS搭建个人博客及搭建心得
|
7月前
|
存储 前端开发 搜索推荐
在自己的服务器上部署个人博客和开源项目:实现数字存在感
在自己的服务器上部署个人博客和开源项目:实现数字存在感