Linux(三)—— 项目部署环境搭建
项目部署环境搭建
[TOC]
一、linux上网
安装好linux系统后,就配置好了
二、rpm包管理
1、光盘挂载
mount /dev/cdrom /mnt # 挂载
cd /mnt # 进入mnt目录
ls # 查看
2、安装卸载rpm包
- 进入Packages中才能安装软件
rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm(包名-版本号.平台) # 安装
rpm -Uvh vsftpd-3.0.2-22.el7.x86_64.rpm # 有就更新,没有就安装
rpm -e vsftpd-3.0.2-22.el7.x86_64 # 卸载
3、查询是否安装
rpm -q vsftpd(软件包名) # 查询
rpm -qa |grep vsf # 模糊查询
4、查看软件包
which vim # 查看命令的具体路径 /usr/bin/vim
rpm -qf /usr/bin/vim # 查看命令来自哪个软件包
5、互相依赖关系的软件包
rpm -ivh a b c d e # 所有软件包一起安装
三、yum包管理
1、使用aliyun的yum源
# 1.安装BASE源
cd /etc/yum.repos.d/ # 切换到源的配置文件
mv *.repo /tmp # 将系统自带的源清除
wget http://mirrors.aliyun.com/repo/Centos-7.repo # 下载安装centos
# 2.安装EPEL源
yum install -y epel-release
2、使用yum安装软件
[root@python3 ~]# yum install openssl
yum install openssl-devel
3、查看yum源的软件包
yum list
yum list |grep vsftpd() # 查看vsftpd开头的所有软件包
yum grouplist # 查看所有的组
yum groupinstall "Developement Tools" # 安装一个组的软件包
4、删除软件包
yum remove aaaa(软件包名)
5、优化yum源
(1)使用本地源
# 1.将原来的包移除
mv *.repo ali
# 2.创建源
vim local.repo
# 3.编辑,内容如下:
[local]
name=localios
baseurl=file:///mnt
gpgchech=0
# 4.清空原来的源
yum clean all
# 5.下载
yum install -y vsftpd
(2)局域网yum源配置
# 1.安装ftp软件
yum install -y vsftpd
# 2.启动ftp服务
[root@python3 ~]# systemctl start vsftpd
[root@python3 ~]# systemctl enable vsftpd
# 3.创建站点目录,并将光盘软件拷贝到其中
mkdir /var/ftp/pub/centos7
[root@python3 ~]# cp -a /mnt/* /var/ftp/pub/centos7
# 4.生成ftp站点的yum源配置文件
vim ftp.repo # 创建并进入编辑
# 编辑内容如下:
[ftp]
name=centos7
baseurl=ftp://10.0.0.100/pub/centos7
gpgcheck=0
# 5.安装测试软件
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ openssl-devel zlib zlib-devel -y
四、源码包应用
0、源码包解压缩
# .zip文件解压缩
unzip xxx.zip
# .tar / .tar.gz / .tgz / .tar.bz2 / .tar.xz解压
tar xf xxx.tar
# .iso使用
mount -o loop xxx.iso /test # .iso文件使用,必须要先挂载到某处再使用
# .cpio(早起文件的打包方式)
cpio -idcmv < xxx.cpio
1、python3.6安装
# 1.现将源码文件压缩包拖入在opt目录中
cd /opt # 进入opt目录
ls # 查看opt目录下所有的文件,显示为红色的压缩包
# 2.python使用c编译,现状gcc环境
[root@py3 opt]# yum install gcc* # 安装所有gcc包
# 3.安装openssl,支持访问http站点
[root@py3 opt]# yum install -y openssl
# 4.解压
[root@py3 opt]# tar xf Python-3.6.1.tar.xz
# 5.进入目录,配置
[root@py3 opt]# cd Python-3.6.1/
[root@py3 Python-3.6.1]# ./confugure # 定制功能,检查是否满足软件包的安装
# 6.编译c源码生成二进制
make
# 7.完善编译,完成拷贝授权
make install
2、mysql源码包安装
cmake # 定制功能
make # 编译
make install # 授权拷贝
3、redis源码包安装
# 1.现将源码文件压缩包拖入在opt目录中
cd /opt # 进入opt目录
ls # 查看opt目录下所有的文件,显示为红色的压缩包
# 2.解压
[root@py3 opt]# tar xf redis-3.2.10.tar.gz
# 3.进入目录
[root@py3 opt]# cd redis-3.2.10/
# 4.编译c源码生成二进制
[root@py3 redis-3.2.10]# make
# 5.设置环境变量
vim /etc/profile
# 在文件最后一行加上
export PATH=/opt/redis-3.2.10/src:$PATH
# 6、生效
source /etc/profile
# 7.启动
[root@py3 ~]# redis-server &
# 8.python连接redis
[root@py3 opt]# unzip redis-py-master.zip # 解压驱动包
cd redis-py-master # 进入驱动目录
[root@py3 redis-py-master]# python3 setup.py install # 手动安装python包
# 9.测试python连接redis
python3
>>>import redis
>>>r = redis.StrictRedis(host='localhost', port=6379)
>>>r.set('name', 'oldguo')
True
>>>r.get('name')
'oldguo'
五、二进制包使用(mysql安装)
例如:mysql5.7.20二进制包安装
useradd mysql
mkdir /opt/mysql/data
chown -R mysql.mysql /opt/mysql# 1.现将源码文件压缩包拖入在opt目录中
cd /opt # 进入opt目录,手动拖入
ls # 查看opt目录下所有的文件,显示为红色的压缩包
# 可以设置一个软链接(快捷方式)
[root@py3 opt]# ln -s mysql-5.7.20-linux-glibc2.12-x86_64 mysql
# 2.设置环境变量
vim /etc/profile
# 编辑环境变量,添加内容如下:
export PATH=/opt/mysql/bin:$PATH
# 3.生效配置
source /etc/profile
# 4.卸载自带的mariadb
yum remove mariadb-libs
# 5.生成配置文件
vim /etc/my.cnf # 进入配置文件
#内容如下:
[mysqld]
basedir=/opt/mysql
datadir=/opt/mysql/data
socket=/tmp/mysql.sock
user=mysql
log_error=/var/log/mysql.log
log_bin=/opt/mysql/data/mysql-bin
server_id=100
[mysql]
socket=/tmp/mysql.sock
# 6.创建用户和数据目录,并授权
[root@py3 ~]# useradd mysql # 创建用户
[root@py3 ~]# mkdir /opt/mysql/data # 创建目录
[root@py3 ~]# chown -R mysql.mysql /opt/mysql # 授权
# 7.初始化数据
[root@py3 ~]# touch /var/log/mysql.log # 创建空文件
[root@py3 ~]# chown -R mysql.mysql /var/log/mysql.log # 授权
[root@py3 ~]# mysqld --initialize-insecure --basedir=/opt/mysql --datadir=/opt/mysql/data --user=mysql # 初始化
# 8.启动mysql数据库
cd /opt/mysql/support-files
[root@py3 support-files]# ./mysql.server start
[root@py3 support-files]# cp mysql.server /etc/init.d/mysqld # 方便以后启动
# 拷贝完以后,启动mysql
/etc/init.d/mysqld restart
# 或者使用systemctl启动
# 生成配置文件
vim /etc/systemd/system/mysqld.service
# 编辑内容如下:
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/opt/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
# 启动关闭
[root@py3 support-files]# systemctl start mysqld
[root@py3 support-files]# systemctl restart mysqld
[root@py3 support-files]# systemctl stop mysqld
# 注意不能两种启动凡是混合使用
# 9.测试mysql
[root@py3 ~]# mysql
# 10.python连接mysql测试
mysql>grand all on *.* root@'10.0.0.100' idenitfied by '123'; # 授权用户
mysql>create database bbs charset utf8; # 创建数据库
# 安装python连接mysql的包
[root@py3 ~]# pip3 install --upgrade pip # 更新pip
[root@py3 ~]# pip3 install pymysql # 安装pymysql
# 测试python程序
vim test.py
# 测试内容
import pymysql
db = pymysql.connect("10.0.0.100","root","123","bbs" )
cursor.execute("SELECT VERSION()")
data = cursor.fetchone()
print ("Database version : %s " % data)
db.close()
# 执行python文件
[root@py3 ~]# python3 test.py
六、运行Django项目
1、安装依赖包
[root@web01 ~]# yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ openssl-devel zlib zlib-devel -y
2、安装测试Django框架和uwsgi
(1)安装Django框架和uwsgi
# 方式一:从官网下
pip3 install uwsgi
pip3 install django
pip3 install other
pip3 install bs4
# 方式二:从国内下
vim re.txt
# 内容:
asn1crypto==0.24.0
beautifulsoup4==4.6.3
bs4==0.0.1
certifi==2018.4.16
cffi==1.11.5
chardet==3.0.4
Click==7.0
cryptography==2.3.1
Django==1.11.9
Flask==1.0.2
Flask-Cors==3.0.6
gevent==1.3.6
greenlet==0.4.15
idna==2.7
ItsDangerous==1.1.0
Jinja2==2.10
lxml==4.2.6
MarkupSafe==1.0
numpy==1.15.3
Pillow==5.3.0
pycparser==2.18
PyMySQL==0.9.2
pytz==2018.7
requests==2.19.1
selenium==3.141.0
six==1.11.0
urllib3==1.23
virtualenv==16.1.0
Werkzeug==0.14.1
wordcloud==1.5.0
# 从豆瓣上下载Django和uwsgi等包
pip3 install -i https://pypi.doubanio.com/simple/ -r re.txt
(2)测试uwsgi
# 测试uwsgi
# 普通用户测试
[root@py3 ~]# useradd test
[root@py3 ~]# cd /opt
[root@py3 opt]# vim test.py
[root@py3 ~]# su - test # 切换用户,用普通启动uwsgi
[test@py3 ~]# cd /opt
# 内容:
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello Django"]
[test@py3 opt]# uwsgi --http :8001 --wsgi-file test.py & # 运行test文件
# 启动uwsgi以后,运行test.py,浏览器访问10.0.0.100:8001,成功则访问到Hello Django
(3)测试Django项目
# 测试Django
[root@web01 ~]# django-admin.py startproject demosite # 生成一个空的Django项目
[root@web01 ~]# cd demosite # 进入demosite项目
[root@web01 demosite]# python3 manage.py runserver 0.0.0.0:8002 # 启动Django项目
# 将项目中的setting.py文件中的 ALLOWED_HOSTS=[]修改为ALLOWED_HOSTS=['*'],使所有地址都可以访问
# 在浏览器中,测试是否运行成功,10.0.0.100:8002 ,成功则访问到空Django页面
3、配置uwsgi与nginx
uwsgi
Django 所提供的是一个开发服务器,这个开发服务器,没有经过安全测试,而且使用的是 Python 自带的 simple HTTPServer 创建的,在安全性和效率上都是不行的 而uWSGI 是一个全功能的 HTTP 服务器,他要做的就是把 HTTP 协议转化成语言支持的网络协议。比如把 HTTP 协议转化成 WSGI 协议,让 Python 可以直接使用
nginx
Nginx是一个轻量级、高性能、稳定性高、并发性好的HTTP和反向代理服务器正向代理:某些情况下,代理我们用户去访问服务器,需要用户手动的设置代理服务器的ip和端口号。
反向代理:是用来代理服务器的,代理我们要访问的目标服务器。
代理服务器接受请求,然后将请求转发给内部网络的服务器(集群化),
并将从服务器上得到的结果返回给客户端,此时代理服务器对外就表现为一个服务器
(1)配置uwsgi
# 1.配置
[root@web01 demosite]# vim /root/demosite/uwsgi.ini # 编辑uwsgi的配置文件
# 内容如下:
[uwsgi]
socket = 127.0.0.1:9999
master = true
workers = 2
max-requests = 1000
buffer-size = 30000
pidfile = /run/uwsgi.pid
daemonize = /var/log/uwsgi.log
# 2.启动uwsgi
[root@web01 demosite]# uwsgi --ini /root/demosite/uwsgi.ini &
(2)配置nginx
# 1.配置nginx
[root@web01 demosite]# vim /etc/nginx/conf.d/py.conf
# 编辑内容:
server {
listen 80;
server_name 10.0.0.100;
client_max_body_size 100M;
location / {
index index.html;
include uwsgi_params;
uwsgi_pass 127.0.0.1:9999;
uwsgi_param UWSGI_SCRIPT demosite.wsgi; # demosite.wsgi 是
uwsgi_param UWSGI_CHDIR /root/demosite; # /root/demosite 是项目目录
}
}
# 2.重启nginx
[root@web01 demosite]# systemctl restart nginx
(3)测试
浏览器访问10.0.0.100,不用输端口号,就可以访问Django的项目的页面
Linux(三)—— 项目部署环境搭建的更多相关文章
- Linux下分布式项目部署环境搭建与使用(druid-1.0.25.jar)数据库连接加密
一.JDK安装 1.执行命令:cd Downloads/ 2.上 传:jdk-8u111-linux-x64.tar.gz 到Downloads 3.执行命令:tar -zxvf jdk-8u111- ...
- atitit.研发管理--标准化流程总结---java开发环境与项目部署环境的搭建工具包总结
atitit.研发管理--标准化流程总结---java开发环境与项目部署环境的搭建工具包总结 1. ide系列(只开发环境需要,但部署环境也做好放上,很有用) 1 2. web服务器+sdk+网站程序 ...
- Hadoop项目开发环境搭建(Eclipse\MyEclipse + Maven)
写在前面的话 可详细参考,一定得去看 HBase 开发环境搭建(Eclipse\MyEclipse + Maven) Zookeeper项目开发环境搭建(Eclipse\MyEclipse + Mav ...
- Qt4.8在Windows下的三种编程环境搭建
Qt4.8在Windows下的三种编程环境搭建 Qt的版本是按照不同的图形系统来划分的,目前分为四个版本:Win32版,适用于Windows平台:X11版,适合于使用了X系统的各种Linux和Unix ...
- java项目测试环境搭建
java项目测试环境搭建 2019-03-06 13:45:26 木瓜小少年 阅读数 691更多 分类专栏: 测试 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原 ...
- 基于【 springBoot +springCloud+vue 项目】三 || 项目部署
前言 今天所要讲的项目部署,并非正式环境部署,而是作为开发中的测试环境部署.随着项目模块的增多,启动的模块也随之增多,本人的电脑启动四个模块就已经卡的不行了,为了减轻电脑压力,不得不自己学着搭建一个项 ...
- Eclipse+Tomcat+MAVEN+SVN项目完整环境搭建
1.JDK的安装 首先下载JDK,这个从sun公司官网可以下载,根据自己的系统选择64位还是32位,安装过程就是next一路到底.安装完成之后当然要配置环境变量了. ————————————————— ...
- Qt在Windows下的三种编程环境搭建
尊重作者,支持原创,如需转载,请附上原地址:http://blog.csdn.net/libaineu2004/article/details/17363165 从QT官网可以得知其支持的平台.编译器 ...
- 【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)
深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,假设对这个课程有兴趣的,能够加我的QQ2059055336和我联系 ...
随机推荐
- Windows server 2016远程桌面登录和修改3389端口
- MVC5使用SignalR进行双向通信 (1)
@a604572782 2015-08-10 09:01 字数 2133 阅读 1245 MVC5使用SignalR进行双向通信 (1) 配置SignalR 在NuGet中通过 install-pac ...
- Hadoop本地环境安装
一.服务器环境 本人用的是阿里云的ECS的入门机器,配置1核2G,1M带宽,搭了个Hadoop单机环境,供参考 Linux发行版本:Centos7 JDK:阿里云镜像市场中选择JDK8 二.安装步骤 ...
- koa2入门笔记
[TOC] 一 什么是koa koa是基于nodejs的web框架, 是一个中间件框架. 二 中间件 Koa 中间件是简单的函数,它是带有 (ctx, next)形参 的函数. 可以采用两种不同的方法 ...
- Session的load和get方法区别是什么?
①如果没有找到符合条件的记录,get方法返回null值,而load方法会抛出异常: ②get方法直接返回实体类对象,load方法返回实体类对象的代理: ③在Hibernate3之前,get方法只在一级 ...
- RFCN理解,不完整待补全
RFCN的核心是通过修改roi pooling的位置,来增加共享参数的层,减少运算时间: roi pooling位置的影响如下: 越靠近 Input - 对应 ROI-Wise 检测子网越深,准确度也 ...
- Hadoop(一)阿里云hadoop集群配置
集群配置 三台ECS云服务器 配置步骤 1.准备工作 1.1 创建/bigdata目录 mkdir /bigdatacd /bigdatamkdir /app 1.2修改主机名为node01.node ...
- QUIC协议学习记录
QUIC(Quick UDP Internet Connections,快速UDP互联网连接)是Google提出的一种基于UDP改进的通信协议,其目的是降低网络通信的延迟,提供更好的用户互动体验. Q ...
- testNG之组测试
@Test(groups = {""}) 在执行测试用例的时候,往往一个功能依赖多个测试用例,比如流程的测试,那么这个时候就可以用到组测试,把流程涉及到测试用例都分到同一组里,按组 ...
- PHP getcwd() 函数
获取当前工作目录: <?phpecho getcwd()?> 结果: /home/php 定义和用法 getchwd() 函数返回当前工作目录. 语法 getcwd(); 技术细节 返回值 ...