Ubantu部署

00——常用命令
重启 nginx
sudo service nginx restart
启动 nginx
sudo service nginx start
关闭 nginx
sudo service nginx stop
查看 nginx 状态
sudo service nginx status

启动 uwsgi   (必须到 uwsgi.ini 文件的那一级)
uwsgi --ini uwsgi.ini
关闭 uwsgi
uwsgi --stop uwsgi.pid

查看 服务状况
ps -ef | grep 服务名(nginx, uwsgi)
查看 端口占用情况
lsof -i:端口号
杀掉端口进程
sudo fuser -k 端口号/tcp
进入虚拟环境
workon 虚拟环境名

01——python3.6安装

1. 安装配备包
apt-get update

apt-get install python-software-properties

apt-get install apt-file

apt-file update

apt-get install software-properties-common

apt-get install vim

2. python3.6安装
sudo add-apt-repository ppa:deadsnakes/ppa
# 出现暂停 按下回车键继续
sudo apt-get update
sudo apt-get install python3.6
如果失败则执行
sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6


3、设置python优先
sudo update-alternatives --config python
# 如果展示下面这段内容 说明没有设置优先级
# update-alternatives: error: no alternatives for python3 

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2
或
sudo update-alternatives  --set python /usr/bin/python3.6

4. 设置python的关联版本
python3 
# bash: /usr/bin/python3: No such file or directory

1. 打开.bashrc
     vim ~/.bashrc
 2. 在.bashrc中添加
     alias python3=python3.6
     或
     alias python3='/usr/bin/python3.6'
 3. 保存并退出文件编辑,使配置生效
     source ~/.bashrc

5. 为python安装对应的pip
curl https://bootstrap.pypa.io/ez_setup.py -o - | python3.6 && python3.6 -m easy_install pip
或者
curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" python3 get-pip.py --user

一、Ubuntu安装python 3. 7
1.准备

在安装之前,请使用以下命令安装Python的先决条件。

sudo apt-get install build-essential checkinstall
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev
libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
2.安装

使用python官方站点的以下命令下载Python。您也可以下载最新版本代替下面指定的版本。

cd /usr/src
sudo wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz

sudo tar xzf Python-3.7.0.tgz

3. 编译

使用下面的命令集来使用altinstall在您的系统上编译python源代码。

cd Python-3.7.0
sudo ./configure --enable-optimizations
sudo make altinstall
   make altinstall用于防止替换默认的python二进制文件/ usr / bin / python。

4.检查Python版本

python3.7 -V
问题:安装python3.7出现ModuleNotFoundError: No module named ‘_ctypes’解决办法

解决办法:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install libssl-dev openssl
sudo apt-get install libffi-dev
二、安装MySQL
1、使用以下命令即可进行mysql安装,注意安装前先更新一下软件源以获得最新版本:

$ sudo apt-get update  #更新软件源
$ sudo apt-get install mysql-server  #安装mysql

上述命令会安装以下包:
apparmor
mysql-client-5.7
mysql-common
mysql-server
mysql-server-5.7
mysql-server-core-5.7

 注意:因此无需再安装mysql-client等。安装过程会提示设置mysql root用户的密码,设置完成后等待自动安装即可。默认安装完成就启动了mysql。

2、启动和关闭mysql服务器:

$ service mysql start
$ service mysql stop

3、确认是否启动成功,mysql节点处于LISTEN状态表示启动成功:

$ sudo netstat -tap | grep mysql

4、进入mysql shell界面:

$ mysql -u root -p

5、解决利用sqoop导入MySQL中文乱码的问题(可以插入中文,但不能用sqoop导入中文)
导致导入时中文乱码的原因是character_set_server默认设置是latin1,如下图。

可以单个设置修改编码方式set character_set_server=utf8;但是重启会失效,建议按以下方式修改编码方式。
(1)编辑配置文件。sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
(2)在[mysqld]下添加一行character_set_server=utf8。如下图

(3)重启MySQL服务。

service mysql restart

(4)登陆MySQL,并查看MySQL目前设置的编码。show variables like "char%";

完成编码方式的修改后,即解决了sqoop导入MySQL中文乱码的问题。至此,ubuntu系统上顺利完成安装mysql数据库。

迁移的时候报错(没有开虚拟环境):

三、Ubuntu16.04下安装和配置Redis
(一)、前提条件
需要连接互联网,然后执行sudo apt-get update更新软件包

(二)、执行安装命令
sudo  apt-get install redis-server 执行后如下图所示,我们输入y 确认安装并使用空间

接下来会执行完成,我们可以看到包括redis的版本信息等,执行service  redis status 可以查看redis服务的状态为running,说明安装完成系统自动启动了服务

(三)、end配置redis服务(不用就不配)
3.1:开启远程连接
找到/et/redis/redis.conf文件修改如下   ,注释掉  127.0.0.1   #bind 127.0.0.1,如果不需要远程连接redis则不需要这个操作

3.2:设置密码
找到/et/redis/redis.conf文件修改如下   ,添加  requirepass kingredis(密码设置为kingredis)

(四)、测试redis服务
步骤三的操作完成后,重启redis服务需要,接下来我们来测试,

4.1:测试密码设置成功
执行redis-cli命令打开redis客户端  set操作的时候要求我输入密码,说明密码设置成功,执行auth 密码验证密码后,可以执行set操作

4.2:测试远程登录
在本地window打开一个客户端 ,cd到redis安装的目录,主要是要有redis-cli.exe的目录输入 redis-cli -h redis服务器IP -p redis服务端口号(默认6379)

如上图所示,访问远程redis服务成功,操作redis成功,说明我们远程的redis安装切配置安全密码成功了

查看redis日志(需要 cd uwsgi_conf)

启动UWSGI日志:

tail -f uwsgi.log

启动redis:

sudo /etc/init.d/redis-server start 

(五)、需要注意的是
如果是阿里云服务器,切记要在安全组、安全策略里面加入服务的端口号,允许所有地址访问,如下图,才可以,即在阿里云服务器的所有服务都需要把端口映射出来才可以,如果没有做这一步,上面的redis-cli命令就会处于一直等待的状态

四、安装虚拟环境:  
1、安装虚拟环境:

​1、pip3 install virtualenv

2、pip3 install virtualenvwrapper
2、让virtualenvwrapper生效:

在~/.bashrc下加上以下几句:

export WORKON_HOME=$HOME/.virtualenvs

export PROJECT_HOME=$HOME/workspace

source /usr/local/bin/virtualenvwrapper.sh
3、让编辑后的文件生效:

source ~/.bashrc
生成requirements文件:

pip3 freeze > requirements.txt
4、创建虚拟环境:

mkvirtualenv -p python3  环境名字
5、进入环境:

workon 环境名字
6、安装所依赖的所有py包,中间出错的包额外安装即可:

pip3 install -r requirements.txt
退出虚拟环境:

deactivate

此处会报错:

解决:

如果是因为setuptools版本过低,就升级版本:

$ pip install --upgrade setuptools
如果升级后依然报错,就安装setuptools-scm

$ pip install setuptools_scm
之后重新安装django-haystack,成功:

pip install django-haystack==2.8.1
此处会报错:

      

解决:

1.先安装 客户端程序:

sudo apt install -y mysql-client
2.基于python安装mysqlclient需要依次安装以下库:

sudo apt-get install libmysqlclient-dev
sudo apt install libssl-dev
sudo apt install libcrypto++-dev
3.使用pip安装mysqlclient

sudo pip3 install mysqlclient
或者在虚拟环境中用如下命令安装指定版本
(cootuu) root@VM-0-6-ubuntu:~# pip install mysqlclient==2.0.1
五、安装nginx
sudo apt-get install nginx #安装
1.1启动Nginx:
    nginx 常用命令
查看文件格式是否出错 sudo nginx -t

查找nginx路径 whereis nginx

启动 service nginx start

停止 nginx -s stop

退出 nginx -s quit

重启加载配置 nginx -s reload

查看接入日志 tail -f /var/log/nginx/access.log

查看错误日志 tail -f /var/log/nginx/error.log

netstat -anptu | grep 8888 # 查看8888端口被哪一个程序占用

ps -ef |grep uwsgi 查看进程

pkill -9 nginx 杀nginx后台

pkill -9 uwsgi 杀uwsgi 后台

1、输入下面命令,查看nginx默认配置文件的目录

nginx -t


2、默认文件目录为/etc/nginx/nginx.conf
      然后cd到/etc/nginx/下

cd /etc/nginx/

cd conf.d

vi nginx.conf 

vim nginx.conf 

3、编辑nginx配置文件:

server {
listen 8000;
server_name 172.19.37.64;

location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3366;
uwsgi_ignore_client_abort on;
}
}

server {
listen 8080; #1.你想让你的这个项?跑在哪个端口
server_name 116.62.12.185; #2.当前服务器ip
location / {
root /opt/dist; #3.dist
文件的位置(我是直接放在home目录下了)
try_files $uri $uri/ /index.html; #4.重定向,内部文件的指
向(照写)
}
}
4、进入到django项目并进行启动且进入虚拟环境

六、安装uwsgi
启动uwsgi命令:

uwsgi --ini uwsgi.ini

重启uwsgi命令:

nginx: sudo service nginx restart

1、安装uwsgi

pip3 install uwsgi

2、查看安装路径 whereis uwsgi ---查看路径都可以使用这个

3、在django项目和Vue同级创建

4、继续下步操作:

[uwsgi]
socket=127.0.0.1:3366
# 使用Nginx连接时使用,Django程序所在服务器地址和端口号
#http=172.19.37.64:8000
# 自定义的ip 和 端口号,socket 用于和nginx进行通信
#私网ip 端口号自定义,http用于用于测试
# 项目目录绝对路径
chdir=/opt/P8
# 项目的绝对路径 manage.py的路径 ,pwd后复制
wsgi-file=P8/wsgi.py
# 相对路径 项目中wsgi.py文件,与setting.py同级
# 进程数(机器核数的1倍)
processes=4
# 线程数
threads=50
# uwsgi服务器的角色
master=True
# 存放进程编号的文件
pidfile=uwsgi.pid
# 日志文件
daemonize=uwsgi.log
# 指定依赖的虚拟环境
virtualenv=/root/.virtualenvs/master

原文地址:https://www.cnblogs.com/Aurora-y/p/14452268.html