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