余醉科技

导航

 

Linux安装软件及配置

1.下载python压缩包

cd /usr/local
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz

2,解压

tar -zxvf Python-3.6.6.tgz

 

3,进入解压目录,编译

cd /usr/local/Python-3.6.6
./configure --prefix=/usr/local/python3

4,安装

cd /usr/local/Python-3.6.6
make
make install

5,建立python3和pip3的软连接

ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3

6,测试python3和pip3是否可用

python3
python3 -V
pip3 -V
pip3 list

7,更新pip3指令

pip3 install --upgrade pip

2,建目录

mkdir -p /data/env # env保存所有虚拟环境 -p表示递归创建:如果data目录不存在,会自动创
建!
mkdir -p /data/wwwroot # 保存待发布的项目源码

 3,创建虚拟环境

虚拟环境可以使用python自带的venv,也可以使用virtualenv,这里我使用venv

 

# 1. 进入虚拟环境目录
cd /data/env
# 2. 新建
python3 -m venv 虚拟环境名
python3 -m venv my_env01 # 新建的
# 3.激活
cd /data/env/my_env01/bin
source activate # 退出 deactivate
# 4. pip安装软件指令
pip install django==2.1.8
pip list
pip uninstall django
#5. 导出虚拟环境中软件文档列表
pip freeze > 任意文件名.txt
pip freeze > requirements.txt
# 6. 根据依赖包的文本文档导入
pip install -r 文件名.txt
pip install -r requirements.txt

 

4,下载uwsgi

发布web项目需要:uwsgi+nginx [java,php支持]

uwsgi: 是python的第三方模块/库!

nginx: 是web发布服务软件

# 1.进入虚拟环境并激活
cd /data/env/my_env01/bin
source acticate
# 2. 安装
pip install uwsgi # 注意:uwsgi必须进入虚拟环境后才能用!
# 3.为了方便使用,可以添加软连接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi # 可以不创,如果不创建,必须激活虚拟环境才能用!

5,安装nginx

  nginx:强大的web项目发布服务软件

    1. 支持域名解析

    2. 支持流量监控

    3. 对静态资源处理能力强大!

     4. 负载均衡配置. 反向解析等......

 

通过yum安装

# 1.添加nginx的软件源
vi /etc/yum.repos.d/nginx.repo
# 按i进入编辑模式
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
# 保存退出
:wq
# 2. 安装
yum install -y nginx
# 3. 添加为系统服务(可以开机自启动)
systemctl enable nginx
# 4. 启动/停止/重启
systemctl start/stop/reload nginx
# 5. 查看运行的端口
netstat -atunp
# 6. 本地访问nginx默认发布的首页
curl 127.0.0.1:80 # 80可以不写
# 7. 关闭防火墙,外网可以通过Ip访问nginx默认的首页
systemctl stop firewalld.servic

通过源代码安装

# 1. 先下载
cd /usr/local
wget http://nginx.org/download/nginx-1.13.7.tar.gz
# 2. 解压
tar -zxvf nginx-1.13.7.tar.gz
# 3. 编译
cd nginx-1.13.7
./configure
# 4. 安装
make
make insatll
# 5. 启动并访问默认页面
cd /usr/local/nginx/sbin
./nginx #启动-------->启动成功后,可以访问默认的nginx页面
./nginx -s stop #停止
./nginx -s reload #重启
./nginx -t #检查nginx.conf配置文件的语法
# 6. 检查运行状态
netstat -atunp # 查看80端口
curl 127.0.0.1:80 # 本地访问默认页面
http://IP地址:80 # 远程访问nginx默认页面 (前提:云服务器控制台手动打开80端口)

 

 

 

 

 替换nginx默认首页为自己的页面

# 1. 找nginx安装位置
whereis nginx #(安装位置etc 中, 网页在:/usr/share/nginx/html中)
# 2. 上传自己的网站到nginx的html目录
# /usr/share/nginx/html

 

 

6,发布ajango项目

  发布django 项目五个步骤

    1. 本地新建djang项目正常运行

     2. 配置uwsgi

    3. 配置nginx

    4. 同步依赖模块

    5. 上传项目到服务器

1.新建django项目

 

 

 

 setting.py配置修改

#1. 允许任意IP访问
ALLOWED_HOSTS = ['*']
# 2. 导入自己的app
INSTALLED_APPS = [
    ....
    'users'
]
# 3.删除sqlite3的配置或配置连接mysql
# 4. 语言,时区.静态资源配置

LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False

STATIC_URL = '/static/' # 相对路径方式查找
STATICFILES_DIRS = ( # 通过项目绝对路径找
    os.path.join(os.path.join(BASE_DIR, 'static')),
)    

配置uwsgi

 

 没有uwsgi.ini需要创建

 

 然后根据上面方法创建wusgi.log用来保存日志记录

 

 

#添加配置选择
[uwsgi]
#配置和nginx连接的socket连接
socket=127.0.0.1:8000
#配置项目路径,项目的所在目录
chdir=/data/wwwroot/mysite01/
#配置wsgi接口模块文件路径,也就是wsgi.py这个文件所在的目录名
wsgi-file=mysite01/wsgi.py
#配置启动的进程数
processes=4
#配置每个进程的线程数
threads=2
#配置启动管理主进程
master=True
#配置存放主进程的进程号文件
pidfile=uwsgi.pid
#配置dump日志记录
daemonize=uwsgi.log

uwsgi操作指令

# 启动
uwsgi --ini uwsgi.ini
显示 [uWSGI] getting INI configuration from uwsgi.ini 表明uwsgi运行成功
# #
可能通过ps -ef|grep uwsgi 查看确认是否uwsgi启动.
#停止运行uwsgi,通过包含主进程编号的文件设置停止项目
uwsgi --stop uwsgi.pid
#重启uwsgi
uwsgi --reload uwsgi.pid

上传项目到/data/wwwroot/

# 1. 命令启动项目查看是否能正常运行
cd /data/my_env02/bin
source activate #激活虚拟环境
# 2. 进入项目
cd /data/wwwroot/mysite01
python manage.py runserver
# 3. 新打开SSH客户端,内网访问8000
curl 127.0.0.1:8000 #成功表示项目运行良好

写nginx的配置文件

 

 

# nginx的yum安装方式默认安装好的路径为/etc/nginx
# 在/etc/nginx/conf/中先备份一下nginx.conf文件,以防意外。
cp nginx.conf nginx.conf.bak
# 然后打开nginx.conf,把原来的内容删除,直接加入以下内容:
events {
    worker_connections 1024;
}
http {
    include mime.types;
    default_type application/octet-stream;
    sendfile on;
    server {
        listen 80;
        server_name 127.0.0.1:80; 
        charset utf-8;
        location / {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:8000; #端口要和uwsgi里配置的一样
            uwsgi_param UWSGI_SCRIPT mysite01.wsgi; #wsgi.py所在的目录名+.wsgi
            uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite01/; #项目路径
        }
        location /static/ {
        alias /data/wwwroot/mysite01/static/; #静态资源路径
        }  
    }
}

通过./nginx -t命令先检查配置文件是否有错,没错便执行以下命令

重新启动nginx

systemctl   reload   nginx

启动项目

uwsgi启动8000

# 1. 进入虚拟环境,激活
cd /data/env/my_env02/bin
source activate
# 2. 在虚拟环境中进入项目,启动uwsgi
cd /data/wwwroot/mysite01
uwsgi --ini uwsgi.ini #启动
# 显示: [uWsgi] getting INI configuration from uwsig.ini 表示成功
# 端口8000是否启动
netstat -atunp #8000是启动的

 

启动nginx的80端口

# 1. 进入nginx目录
cd /usr/local/nginx/sbin
# 2. 检测语法
./nginx -t #
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
# 3. 启动
./nginx #启动
./nginx -s reload #重启
./nginx -s stop #停止
# 4. 检测80
netstat -atunp
# 5. 本地测试
curl 127.0.0.1:80
# 6. 外网测试
http://172.16.45.53:80 #
#7. 通过域名访问
http://www.xxx.com

 

 

 

 

posted on 2020-11-26 21:03  朝朝。  阅读(418)  评论(0编辑  收藏  举报