项目简介
本项目是基于 Flask 和 SocketIO 构建的极客晨星课程记录网站。Flask 是轻量级 Python Web 框架,SocketIO 用于实现实时双向通讯。该网站可实现实时数据传输和交互,方便用户记录和查看极客晨星相关课程信息。
项目的主要特性和功能
- 支持用户在网页端进行实时聊天,消息即时传输。
- 服务器可响应客户端触发的事件,并实时反馈。
- 借助 SocketIO 实现前后端双向数据传输。
- 可展示极客晨星相关课程的记录信息。
安装使用步骤
前提条件
- 拥有腾讯云服务器,操作系统为 Ubuntu Server 18.04.1 LTS 64bit。
- 在腾讯云控制台添加 TCP 所有端口或者需要开放端口的访问权。
- 修改文件
/etc/ssh/sshd_config
:- 注释掉
PermitRootLogin prohibit-password
这行。 - 新建一行添加
PermitRootLogin yes
。 - 重启服务:
sudo service ssh restart
。 - 将
PasswordAuthentication no
修改为PasswordAuthentication yes
。 - 重启 ssh 服务:
service sshd restart
。
- 注释掉
- 使用 Python 3.x 版本。
- 通过 pip 安装 Flask 和 SocketIO 模块。
使用步骤
- 添加 Nginx 库到 apt-get source 中:
sudo add-apt-repository ppa:nginx/stable
。 - 安装前提软件:
sudo apt-get install python-setuptools
。wget https://bootstrap.pypa.io/ez_setup.py -O - | python
。sudo easy_install pip==20.2.4
。sudo pip install virtualenv
。
- 升级已有的包,安装 uWSGI 所需的编译器和工具:
sudo apt-get update && sudo apt-get upgrade
。sudo apt-get install build-essential python python-dev
。
- 安装并运行 Nginx:
sudo apt-get install nginx
。sudo /etc/init.d/nginx start
。
- 安装 uWSGI:
sudo pip install uwsgi
。 - 创建应用文件夹并初始化虚拟环境:
sudo mkdir /var/www/demoapp
。sudo chown -R ubuntu:ubuntu /var/www/demoapp/
。cd /var/www/demoapp
。virtualenv venv
。. venv/bin/activate
。pip install flask
。
- 执行脚本:
python swbApp.py
,可通过浏览器访问服务器的 5000 端口查看应用。 -
配置 Nginx:
- 删除 Nginx 的默认配置文件:
sudo rm /etc/nginx/sites-enabled/default
。 - 创建新配置文件
/var/www/demoapp/demoapp_nginx.conf
: ``` server { listen 80; server_name localhost; charset utf-8; client_max_body_size 75M;
location / { try_files $uri @yourapplication; } location @yourapplication { include uwsgi_params; uwsgi_pass unix:/var/www/demoapp/demoapp_uwsgi.sock; } }
- 将配置文件符号链接到 Nginx 配置文件文件夹中并重启 Nginx:
sudo ln -s /var/www/demoapp/demoapp_nginx.conf /etc/nginx/conf.d/ sudo /etc/init.d/nginx restart9. 配置 uWSGI: - 创建新的 uWSGI 配置文件 `/var/www/demoapp/demoapp_uwsgi.ini`:
ini [uwsgi]application's base folder
base = /var/www/demoapp
- 删除 Nginx 的默认配置文件:
python module to import
app = app module = %(app)
home = %(base)/venv pythonpath = %(base)
socket file's location
socket = /var/www/demoapp/%n.sock
permissions for the socket file
chmod-socket = 666
the variable that holds a flask application inside the module imported at line #6
callable = app
location of log files
logto = /var/log/uwsgi/%n.log
- 创建存放 uWSGI 日志的文件夹并更改所有权:
sudo mkdir -p /var/log/uwsgi
sudo chown -R ubuntu:ubuntu /var/log/uwsgi
10. 执行 uWSGI:`uwsgi --ini /var/www/demoapp/demoapp_uwsgi.ini`。
11. 配置 uWSGI Emperor:
- 创建文件 `/etc/init/uwsgi.conf`:
description "uWSGI"
start on runlevel [2345]
stop on runlevel [06]
respawn
env UWSGI=/usr/local/bin/uwsgi env LOGTO=/var/log/uwsgi/emperor.log
exec $UWSGI --master --emperor /etc/uwsgi/vassals --die-on-term --uid www-data --gid www-data --logto $LOGTO
- 创建文件夹并建立符号链接:
sudo mkdir /etc/uwsgi && sudo mkdir /etc/uwsgi/vassals
sudo ln -s /var/www/demoapp/demoapp_uwsgi.ini /etc/uwsgi/vassals
- 更改应用和日志文件夹的所有者:
sudo chown -R www-data:www-data /var/www/demoapp/
sudo chown -R www-data:www-data /var/log/uwsgi/
``
- 修改 uWSGI 配置文件,将
chmod-socket值由 666 更改为 644。
12. 若使用 uWSGI Emperor 启动失败,可使用兼容办法:
- 运行
python app.py。
- 在程序根目录设置权限给所有用户:
sudo chmod -R 777 程序根目录。
- 执行
nohup./back_run.sh &`。
最后,打开浏览器访问服务器的公共 IP 地址即可使用应用。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】