linux及项目发布

linux项目发布

1.新建虚拟机

常用虚拟机软件
VMWare
VirtulBox
VMWare安装参考地址
https://blog.csdn.net/java_xinshou1/article/details/100010099
建议手动打开网络开关【忘记打开需要该配置文件】
进入虚拟机root登录

2.查看ip地址

  # window 电脑查看IP 
  ipconfig -all # address /addr 
  # Centos 查看IP地址 
  ifconfig 
  # centos mini 版默认无网络工具, ifconfig 无法识别 
  # 安装网络工具 
  yum -y install net-tools 
  # -y 表示忽略安装提示

3.客户端连接远程服务器
查看linxu的IP地址
linux及项目发布
SSH客户端连接
linux及项目发布
linux及项目发布
linux及项目发布
linux及项目发布
linux及项目发布

4.安装python

centos默认装了2.7.5
# 查看python版本信息
python -V
# 查看python 命令解析流程
which python #查看python命令位置
cd /usr/bin
ls -al python* # 看到解析 python--->python2 --->python2.7
安装Python3.x, 实现方式:添加python3指令--->软件连接指向Python3.6
源码安装

  # 1. 更新系统软件 
  yum update -y # 建议更新完后,制作一个镜像!! 
  # 2. 下载开发工具(包管理器) 
  yum -y groupinstall "Development tools"
  yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel
  # 3. 下载或上传软件到 /usr/local 目录 (所有自己软件我放在了/soft下)
  cd /usr/local
  wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz
  # 解压
  tar -zxvf Python-3.6.6.tgz
  # 进入 Python-3.6.6路径
  cd Python-3.6.6
  # 编译安装到指定路径
  ./configure --prefix=/usr/local/python3
  注意:/usr/local/python3 路径可以自己指定,自己记着就行,下边要用到。
  # 安装python3
  make
  make install
  # 安装完成之后 建立软链接 添加变量 方便在终端中直接使用python3
  ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
  # Python3安装完成之后pip3也一块安装完成,不需要再单独安装
  # 同样给pip3建立软链接
  ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3

5.安装virtualenv

  pip3 install virtualenv
  # 建立软链接
  ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
  # 安装成功在根目录下建立两个文件夹,主要用于存放env和网站文件的。(个人习惯,其它人可根据自己的实际情况处理)
  mkdir -p /data/env
  mkdir -p /data/wwwroot

切换到/data/env下

  virtualenv --python=/usr/bin/python3 pyweb
  # 然后进入/data/env/pyweb/bin 
  # 启动虚拟环境:
  source activate

linux及项目发布

6.虚拟环境里安装Django和uwsgi

  pip3 install django (如果用于生产的话,则需要指定安装和你项目相同的版本)
  pip3 install uwsgi
  # 留意:uwsgi要安装两次,先在系统里安装一次,然后进入对应的虚拟环境安装一次。
  # 给uwsgi建立软链接,方便使用
  ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
  # 退出
  deactivate

7.源码安装nginx

  # 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. 编译 #指定安装目录
  ./configure --prefix=/usr/local/nginx  
  # 4. 安装 
  make 
  make install 
  # 5. 启动
  nginx cd /nginx/sbin/ 
  ./nginx #启动 
  ./nginx -s stop/reload 停止 重新启动 
  # 6.本地测试访问ngixn 
  curl 127.0.0.1:80 
  # 7.关闭防火墙 
  systemctl stop firewalld.service 
  #主机测试 
  http://172.16.44.40:80 #就可以访问到欢迎页面!

linux及项目发布
linux及项目发布
查看软件端口判断软件是否运行

  # 查看端口 
  netstat -atunp 
  # 杀死端口 
  kill pid编号 
  kill -9 pip编号 # 强制关闭 #一般需要关好几遍!

linux及项目发布

8.发布项目

8.1. 项目根目录添加uwsgi.ini配置文件日志

  • uwsgi官方文档

  • https://uwsgi-docs.readthedocs.io/en/latest/ConfigLogic.html
    linux及项目发布
    8.2. 删除项目中sqlite配置
    默认Centos中无sqlite3 ,需要单独安装
    8.3. 项目上传到/data/wwwroot/下 (用WinSCP
    linux及项目发布
    8.4. 配置nginx.conf
    linux及项目发布
    linux及项目发布
    改配置文件
    linux及项目发布

    # 1. 备份 
    cp nginx.conf nginx.conf.bak 
    # 2. 删除nginx默认的内容(注释删除) 
    events { 
          worker_connections 1024; }
    http {
          include mime.types; 
          default_type application/octet-stream; 
          sendfile on; 
          server { 
                listen 80; 
                server_name www.django.cn; #改为自己的域名,没域名修改为127.0.0.1:80 charset utf-8; 
                location / { 
                include uwsgi_params; 
                uwsgi_pass 127.0.0.1:8000; #端口要和uwsgi里配置的一样 
                uwsgi_param UWSGI_SCRIPT web01.wsgi; #wsgi.py所在的目录名+.wsgi 
                uwsgi_param UWSGI_CHDIR /data/wwwroot/web01/; #项目路径 }
                location /static/ { 
                alias /data/wwwroot/web01/static/; #静态资源路径 } } }
    

8.5. 测试django项目是否正常启动

  cd /data/env/my_evn01/bin 
  source activate 
  python manage.py runserver 0.0.0.0:8000 
  # 测试1. 打开浏览访问 
  http://IP地址:8000 #--->成功 
  # 测试2: 打开新的SSH命令界面 
  curl 127.0.0.1:8000 # --->成功显示

linux及项目发布

9.启动uwsgi

uwsgi处理动态请求能力高,但是对于静态请求(静态文件)处理能力就不是很好,就需要结合
nginx使用。

  # 激活虚拟环境,进入项目 
  cd /data/env/my_env01/bin 
  source activate 
  cd /data/wwwroot/web01 
  # 启动 uwsgi --ini uwsgi.ini #启动 
  #显示 [uWSGI] getting INI configuration from uwsgi.ini 表明uwsgi运行成功 
  uwsgi --stop uwsgi.pid 停止 
  uwsgi --reload uwsgi.pid 重启

linux及项目发布
linux及项目发布
linux及项目发布

10.安装mysql(MariaDB)

MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可。开发这
个分支的原因之一是:甲骨文公司收购了 MySQL 后,有将 MySQL 闭源的潜在风险,因此社区采用分支
的方式来避开这个风险。MariaDB完全兼容mysql,使用方法也是一样的
有的centos7已经默认安装了Mariadb,可以查看自己的有没有安装,没有安装的再进行安装,已经安装
了可以不用安装也可以卸载了重装。卸载命令 yum remove mariadb-server
10.1安装MariaDB

  [root@mini ~]# yum install mariadb-server

10.2配置

1)安装完成后首先要把MariaDB服务开启,并设置为开机启动

  [root@mini ~]# systemctl start mariadb # 开启服务 
  [root@mini ~]# systemctl enable mariadb # 设置为开机自启动服务 

2)首次安装需要进行数据库的配置,命令都和mysql的一样

  [root@mini ~]# mysql_secure_installation

3)配置时出现的各个选项

  Enter current password for root (enter for none): # 输入数据库超级管理员root的密码 (注意不是系统root的密码),第一次进入还没有设置密码则直接回车 
  Set root password? [Y/n] # 设置密码,y 
  New password: # 新密码 
  Re-enter new password: # 再次输入密码 
  Remove anonymous users? [Y/n] # 移除匿名用户, y
  Disallow root login remotely? [Y/n] # 拒绝root远程登录,n,不管y/n,都会拒绝root远程 登录
  Remove test database and access to it? [Y/n] # 删除test数据库,y:删除。n:不删除, 数据库中会有一个test数据库,一般不需要 
  Reload privilege tables now? [Y/n] # 重新加载权限表,y。或者重启服务也许

4)测试是否能够登录成功,出现 MariaDB [(none)]> 就表示已经能够正常登录使用MariaDB数据库了

  [root@mini ~]# mysql -u root -p 
  Enter password: 
  Welcome to the MariaDB monitor. Commands end with ; or \g. 
  Your MariaDB connection id is 8 
  Server version: 5.5.60-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB 
  Corporation Ab and others. 
  Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current       input statement. 
  MariaDB [(none)]>

10.3设置MariaDB字符集utf-8
1)/etc/my.cnf 文件
在 [mysqld] 标签下添加

  init_connect=‘SET collation_connection = utf8_unicode_ci‘ 
   init_connect=‘SET NAMES utf8‘ 
  character-set-server=utf8 
  collation-server=utf8_unicode_ci 
  skip-character-set-client-handshake

2)/etc/my.cnf.d/client.cnf 文件
在 [client] 标签下添加

  default-character-set=utf8 

3)/etc/my.cnf.d/mysql-clients.cnf 文件
在 [mysql] 标签下添加

  default-character-set=utf8

4)重启服务

  [root@mini ~]# systemctl restart mariadb

10.4远程连接
mariadb默认是拒绝 root 远程登录的。这里用的是 navicat 软件连接数据库
1)关闭防火墙
① 关闭防火墙 systemctl stop firewalld

  [root@mini ~]# systemctl stop firewalld

2)先查看mysql数据库中的user表

  [root@mini ~]# mysql -u root -p # 先通过本地链接进入数据库 MariaDB
  [(none)]> use mysql; 
  MariaDB [mysql]> select host, user from user; 
  +-----------+------+ 
  | host | user | 
  +-----------+------+ 
  | 127.0.0.1 | root | 
  | ::1 | root | 
  | mini | root | 
  +-----------+------+ 
  3 rows in set (0.00 sec) 

3)将与主机名相等的字段改为 "%" ,我的主机名为mini,

  MariaDB [mysql]> update user set host=‘%‘ where host=‘mini‘;
   Query OK, 1 row affected (0.00 sec) 
  Rows matched: 1 Changed: 1 Warnings: 0 
  MariaDB [mysql]> select host, user from user; 
  +-----------+------+ 
  | host | user | 
  +-----------+------+ 
  | % | root | 
  | 127.0.0.1 | root | 
  | localhost | root | 
  +-----------+------+ 
  3 rows in set (0.00 sec)

4)刷新权限表,或重启mariadb服务,一下二选一即可

  MariaDB [mysql]> flush privileges; 
  Query OK, 0 rows affected (0.00 sec) 
  [root@mini ~]# systemctl restart mariadb

注意:刷新权限表是在数据库中,重启服务是在外部命令行中
6)重新远程链接mariadb
linux及项目发布

linux及项目发布

上一篇:Ubuntu16 安装配置Neo4j


下一篇:Linux网络操作系统常用命令详解--Top命令