ubuntu裸机启动python博客项目

关注公众号“轻松学编程”了解更多。

在linux的ubuntu(18.04)中正确安装python的命令:

sudo apt clean
sudo apt update
sudo apt upgrade
sudo apt install python3
sudo apt install python3-venv
sudo apt install python3-dev
sudo apt install python3-pip
sudo pip3 install --upgrade pip
sudo apt install nginx
sudo apt autoremove
sudo apt-get install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev
sudo apt install redis-server

允许外部访问Mysql

1、登录云服务器的控制台,然后配置安全组,开通3306端口允许外部访问
2、在服务器上找到/etc/mysql/mysql.conf.d中的mysqld.cnf文件,
把bind-address		= 127.0.0.1改成
bind-address		= 0.0.0.0

3、找到/etc/mysql中的debian.cnf查看里面的登录用户与密码,比如我的是
user     = debian-sys-maint
password = eSHSYdfO3fdBvqqG
然后执行命令:
mysql -u debian-sys-maint -peSHSYdfO3fdBvqqG
回车,进入mysql命令行后,继续输入:
use mysql;
update mysql.user set authentication_string=password('你的密码') where user='root' and Host ='localhost';
update user set plugin="mysql_native_password"; 
flush privileges;
create database my_web charset=utf8;
exit;

4、然后重启mysql
sudo /etc/init.d/mysql restart
查看3306端口是否允许外部访问:
netstat -lnp|grep 3306
如果显示的是0.0.0.0开通的端口则说明允许外部访问
在上面的语句中创建了一个与项目相关的数据库my_web,这个改为你实际的

虚拟环境

在/home下创建一个my_web文件夹,把自己的项目导进来

在/home下创建一个文件夹venv,然后进去使用命令python3 -m venv my_web创建一个虚拟环境

使激活虚拟环境:source /home/venv/my_web/bin/activate

导包:pip3 install -r /home/my_web/requirements.txt -i http://mirrors.aliyun.com/pypi/simple/
几个国内常用的镜像

清华:-i https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:-i http://mirrors.aliyun.com/pypi/simple/
中国科技大学 -i https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:-i http://pypi.hustunique.com/
山东理工大学:-i http://pypi.sdutlinux.org/ 
豆瓣:-i http://pypi.douban.com/simple/

导uwsgi:pip3 install uwsgi

数据迁移与创建后台管理员

python manage.py  makemigrations
python manage.py migrate
python manage.py createcachetable
python manage.py createsuperuser

uwsgi配置:

[uwsgi]
# 使用nginx连接时 使用8000端口
socket=0.0.0.0:8000
# 直接作为web服务器使用
#http=127.0.0.1:8010
# 配置工程目录
chdir=/home/my_web
# 配置项目的wsgi目录。相对于工程目录
wsgi-file=MySites/wsgi.py
virtualenv =/home/venv/my_web
#配置进程,线程信息
processes=2
threads=4
enable-threads=True
master=True
pidfile=uwsgi.pid
daemonize=uwsgi.log


启动uwsgi服务:uwsgi --ini uwsgi.ini

nginx配置:

在/etc/nginx/sites-available创建一个文件my_web,内容如下:

    #设定虚拟主机配置
        server {
            #侦听80端口
            listen 80;
            #listen 443 ssl;
            #定义使用 www.nginx.cn访问
    		#ssl on;
            server_name  xxx.xxx.com;
            #定义服务器的默认网站根目录位置
            root /home/my_web; 
    		#ssl_session_timeout 5m; 
            #ssl_certificate   /etc/nginx/cert/xxx.pem;
            #ssl_certificate_key  /etc/nginx/cert/xxx.key;
            #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
            #ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            #ssl_prefer_server_ciphers on;
            #设定本虚拟主机的访问日志
            #access_log  logs/nginx.access.log  main;
     
            #默认请求
            location / {
                #倒入了uwsgi的配置
                include uwsgi_params; 
    		    client_max_body_size	50m;
                #连接uwsgi的超时时间
               # uwsgi_connect_timeout 30; 
     	    #设定了uwsig服务器位置
     	    	uwsgi_pass 127.0.0.1:8000;
            }
            
            location /static{
          	alias /home/my_web/static;
            }
    	location /media {
    	alias /home/my_web/media;
    	}
     
    }

其中xxx.xxx.com表示域名.如果没有https,就使用#把ssl注释掉就可以了。

然后把test映射到/etc/nginx/sites-enabled

命令

ln -s /etc/nginx/sites-available/my_web /etc/nginx/sites-enabled/my_web

即可
注意:
uwsgi中配置listen=1024时,启动uwsgi时可能会报错:

django + uwsgi + nginx 日志Listen queue size is greater than the system max net.core.somaxconn (128).

解决方法:

修改系统参数

/proc/sys/net/ipv4/tcp_max_syn_backlog  原来2048    改为8192
/proc/sys/net/core/somaxconn	原来128     改为262144

重启nginx

nginx -s reload

注:启动nginx的命令为

nginx -c /etc/nginx/nginx.conf

如果获取不到静态资源,可能与项目目录权限有关:

chmod 777  my_web/

ubuntu18.04开机自启动脚本

步骤 

1.编写脚本。
vi start.sh
比如添加以下内容:
source /home/venv/my_web/bin/activate
uwsgi --ini /home/my_web/uwsgi.ini
nginx -s reload
2.给脚本赋权限。

chmod 777 start.sh
3.进入到/etc/init.d/目录下。

cd /etc/init.d
4.将脚本迁移过来。(必须在该目录下的脚本才能执行)

mv 创建脚本路径/start.sh .
5.通过命令行增加。

# 100表示优先级,数越大执行的越靠后。
update-rc.d start.sh defaults 100
6.去除开机启动脚本

update-rc.d start.sh -f start.sh remove

后记

【后记】为了让大家能够轻松学编程,我创建了一个公众号【轻松学编程】,里面有让你快速学会编程的文章,当然也有一些干货提高你的编程水平,也有一些编程项目适合做一些课程设计等课题。

也可加我微信【1257309054】,拉你进群,大家一起交流学习。
如果文章对您有帮助,请我喝杯咖啡吧!

公众号

公众号

赞赏码

关注我,我们一起成长~~

posted @ 2020-04-06 00:19  轻松学编程  阅读(141)  评论(0编辑  收藏  举报