昨晚开了个腾讯云,做一个店群的在线商品库。这是我第一次使用云服务器,第一次接触centos,第一次配置服务器环境。花了六七个小时才搞定,遇到很多坑,很多问题非常小白,还是很有趣的经历,特此记录。
用的系统是CentOS 7.4 64位。
1、Python3.65。
准备编译环境。
yum groupinstall 'Development Tools'
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel
yum install sqlite-devel
sqlite-devel 第一次没有先安装,是个大坑。nginx+uwsgi设置好以后,运行报错,找不到模块sqlite3。重头再来。
下载Python3.6.5
wget --no-check-certificate https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
创建目录,解压,编译
sudo mkdir /usr/local/python3
tar -zxvf Python-3.6.5.tgz
cd Python-3.6.5/
./configure --prefix=/usr/local/python3
make
make install
Linux里原来的python命令还是指向Python2,这里创建python3的软链接指向Python3,这样Python2和Python3就都可以用了。
也保留pip指向Pip2,创建pip3的软链接指向Pip3
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
pip3 install --upgrade pip
2、uwsgi
pip3 uwsgi
uwsgi 这里花了最多的时间,其实是一个小问题,目录设置的问题。但是因为第一次配置,对于目录设置连猜带蒙,设置错了导致运行报错,无法导入APP模块。
flask项目文件放置在 /root/www/app/ 下面。
在此目录下创建uwsgi.ini
cd www/app/
vim uwsgi.ini
按i进入编辑模式。
配置文件如下:
[uwsgi]
socket = 127.0.0.1:8001
chdir = /root/www/
wsgi-file = run.py
callable = app
processes = 1
threads = 2
master = true
stats = 127.0.0.1:9191
按esc, :wq退出。
chdir 要写上一级目录,我第一次设置为/root/www/app 导致无法运行,from app import app ,找不到app模块。
此目录下
uwsgi uwsgi.ini
以ini配置启动服务。
如果配置有更改,需要重启服务——
查看进程:ps -ef|grep uwsgi
杀死进程:killall -9 uwsgi
重新运行 uwsgi uwsgi.ini
3、nginx
yum install nginx
编辑配置文件。
vim /etc/nginx/nginx.conf
就简单配置了一下。如下:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name 你的云服务器公网IP;
root /root/www/app;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8001;
uwsgi_param UWSGI_SCRIPT run:app;
}
root目录输入nginx 启动服务。
重启命令:nginx -s reload
至此配置完毕,用WinSCP把本地app文件夹上传到/www/app。输入公网IP,网站正常运行。
如果报错403,试一下python3 import sqlite3 如果报错,说明sqlite3没有安装上。进入Python-3.6.5文件夹,使用下面命令重新安装Python3.6.5。
./configure --enable-loadable-sqlite-extensions
make
make install
完毕。很多事情没有想像中难,一直想搞一个云服务器,总以为会很麻烦,并且很贵。真正去了解了,实施了,发现不过如此。找了个学生证,带域名128一年,花了一个工作日的时间,部署完毕,虽然只是一个小CASE,对于个人来说,技能GET了,这一个领域,不再是完全未知。